Deprecate and legacify NotificationFilterDisplayer API

Hi everyone,

when working on the LD for notification filter preferences, I realized that we have a whole API for being able to display a notification filter preference: there’s an interface NotificationFilterDisplayer, a method NotificationFilterManager#displayFilter and different implementations including an implementation that is using xobjects to display a filter.

But there’s several problems. First problem IMO is that we just don’t have a usecase for all this. Right in XS we have 3 kinds of notification filter preferences: scope notification filter (the most common ones), user filter preference (when you follow a user) and tag filter preference (which are only technical, nobody can actually save those so user simply never saw them). So we only display scope filter pref and user filter pref.
It’s more than that: right now the design of the table schema itself prevents us to add new type of filter preferences (you can see the brainstorming I opened on this topic: Change DB schema of NotificationFilterPreferences).

And to add on top of this, right now those APIs are only used to display information in the LiveTable (soon LiveData) of notification filter preferences. IMO it’s a very bad choice to allow having very custom way of displaying the filter preferences in such a complex table.

Also, this API I’m mentioning is not documented: apparently there’s a title for it in https://extensions.xwiki.org/xwiki/bin/view/Extension/Notifications%20API/Notification%20Filters%20API/#HNotificationFilterPreferencesDisplayer but no content.

So my proposal here would be to deprecate all those APIs, to legacify them, and to remove the column that was displaying them in the new LD. Knowing that the information that were displayed through that API are still displayed in two other columns (Scope and Location).

+0

+0