How to provide custom URL for notification

Hi,

I know that if I create a custom type notification, I can provide a data.message field with a I18n scope value to form the text of the notification. This is the code in the notification-item widget:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/widgets/notification-item.js.es6#L66-L90

However, in the function that generates the URL, I don’t see a way to return a custom URL in case the notification’s type is custom:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/widgets/notification-item.js.es6#L25-L55

I was thinking in reopening the widget and add code for such extra case, but the widget is not being exported :frowning:

What could be a solution for this? I’d appreciate some help.

Still blocked on this? Any new findings to share?

Yes :frowning:

I expected to hear from an experienced developer whether creating custom notifications is something “advisable”. I say this since I haven’t seen plugins doing it (if someone has, please let me know) nor many topics related (others than this one, which I’ve followed to create a custom notification from the backend).

In any case, I was thinking in submitting a PR to add something like the following snippet at the bottom of the url method. That would solve my problem and even be useful for other plugin developers.

if (attrs.notification_type === CUSTOM_TYPE) {
  return data.custom_url;
}

Even if it’s not worth its merging, I think I could reopen the widget and do the same, but I would need the widget to be exported, so another PR :sweat_smile:

I hope to get some advice for my issue this time :slight_smile:

1 Like

My current thought around notifications is to move away from custom all together.

If you need a new notification type you should send through a PR to reserve the number for core.

The “custom” thing just became super messy.

2 Likes