Closed srenault-meeds closed 1 year ago
Hello no comment. Go Func Thank you
@rdenarie ready for Tech review
ok for me. Go tech
@margondicco @Julien-Dubois-eXo we suggest to remove the notification for notes edition. Indeed, this is old and this was related to notes watchers, option we don't have anymore. So we suggest to make it simpler until we provide new notification more consistent with what users can expect. WDYT? Any objection?
perfect !
One point that could be really useful in the notification center: an unread notification filter. Frequently we missed some notifications because we received too much and we forgot to open one or two.
As the number on the bell disappears once we click on it, no matter if we read it or not the notification, the filter could help us catch the unread notification.
Finally, keep the number on the bell until we have read the notification.
Maybe all my points will be in the other MIP you mention.
Added a requirement regarding grouped notifications:
Grouping notifications when multiple likes are done will be kept as is However, grouping notifications when mulitple comments to an activity will be removed to avoid losing context of answers AND we suggest to remove the autowatch behaviour proposed when liking or commenting an activity. -> Indeed, to avoid users getting notifications for an activity they have liked each time someone comments OR for an activity they have commented each time someone adds a comment (not a reply), this autowatch will be replaced by a manual watch option. This option will be proposed to users from the three dots so they can decide to receive notifications for activities they want to watch.
cc @margondicco as discussed
One point that could be really useful in the notification center: an unread notification filter. Frequently we missed some notifications because we received too much and we forgot to open one or two.
As the number on the bell disappears once we click on it, no matter if we read it or not the notification, the filter could help us catch the unread notification.
Finally, keep the number on the bell until we have read the notification.
Maybe all my points will be in the other MIP you mention.
Indeed, not the purpose of this one. I understand that we all want more, but this will be done afterwards. Thanks for understanding it.
Indeed, to avoid users getting notifications for an activity they have liked each time someone comments OR for an activity they have commented each time someone adds a comment (not a reply), this autowatch will be replaced by a manual watch option.
The Spec Tech is updated consequently @rdenarie if you want to review again.
ETA this week.
@rdenarie PRs ready for review and ACCs up to date
PRs approved
PRs approved
Thanks, as discussed, the technical detail about the newly introduced API added in Tech Spec section.
PRs merged. Thanks.
Rationale
Notifications UI is not consistent with other platform UI. Indeed, the following page is not accurate with what is expected to see:
In addition to the fact that UX is not the best here:
1. Functional Requirements
The UI will be updated to make sure it is consistent with other UI in the platform.
When the user access the all notifications page OR when the user expands the notifications drawer, notifications will be listed the following way:
Categorization of notifications by type to help the user filter it if needed
Grouping notifications when multiple likes are done will be kept as is However, grouping notifications when mulitple comments to an activity will be removed to avoid losing context of answers AND we suggest to remove the autowatch behaviour proposed when liking or commenting an activity. -> Indeed, to avoid users getting notifications for an activity they have liked each time someone comments OR for an activity they have commented each time someone adds a comment (not a reply), this autowatch will be replaced by a manual watch option. This option will be proposed to users from the three dots so they can decide to receive notifications for activities they want to watch.
2. Technical Requirements
Extensibility
The notification UI has to be moved from Server End to Front End by replacing
gtmpl
based notification UI into aVue.js/Vuetify
based UIs. To not break the existing notifications system, we will have to preserve the possibility to define a notification using both systems until all Meeds DAO members makes the upgrade smoothly.Upgradability
An upgrade has to be be done to introduce a new Notification for all users with default settings (All channels enabled by default). The New Plugin to introduce is
ActivityCommentWatchPlugin
.Existing Features
The current UI which uses WebUI has to be changed into
Vue.js/Vuetify
based application.Feature Flags
No Feature flag is needed.
4. Software Architecture
Access
load-group
extensibility mechanism coupled withextensionRegistry
.Services & processing
A new API to allow watching objects, based on Metadata API, will be implemented to allow watching any type of objects. The first use case for this API is to allow users to watch activities through a button in order to receive notification when comments are introduced on the activity.
This API will rely on the same extensibility system as for:
In fact, the Metadata API allows to attach metadata information related to an Object (Note, Task, Activity, Comment, Page ....) which is not really part of the original data but decorates it. The metadata information can be personal (such as favorites or unread flag) or can be attached to an audience (Space Members of a given Activity, such as a Tag or a Translation).
Knowing this, the Observer API that will allow to watch changes made on an object relies on the same system. In fact, the advantage of using Metadata API would be to design a transitive system for all type of objects with a centralized behavior which doesn't alter the real information of the Object itself (Activity, Notes or a Task by example).
Similar to favorites, the watch flag is personal and will be associated to each user apart on each object. Knowing that the Activities itself are a representation of an eventual object, the Metadata of "watching" has to be associated to the original object (Notes, Task, Gamification Action ...). To do this, the API has to be extensible to permit this behavior of attaching a "watch" flag to an activity of an external object and vice versa, attaching a watch flag to an object that will be automatically inherited by its genrated activity.
Once the watch flag is associated to the activity (and in eventual improvements, display and manage the "watch" flag on extended objects), a notification plugin can be triggered when a comment is added to an activity to determine the list of users who watched it so that they receive a special notification of change made.
Data and persistence
No change