Content
View differences
Updated by Jens Ulferts over 4 years ago
**As** a user
**I want to** see at least one high-level reason of why notification has been sent
**so that** I can evaluate the importance of a notification.
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/22143/content"></div></figure>
**Acceptance criteria**
* The author is shown as a link with the name (instead of the avatar).
* The reason of the notification is shown in an abbreviated form
* The full list of what to render on every changed is below in the "Update Strings" sections
* Preliminary ideas:
* The preview is structured like:
* **Status** changed from New to **Closed** 1 hour ago by [Niels Lindenthal](https://community.openproject.org/www.openproject.org) and 2 other updates.
* For long texts and comments the diff is not shown.
* **Comment** added 1 hour ago by [Niels Lindenthal](https://community.openproject.org/www.openproject.org) and 2 other updates.
* **Description** changed 1 hour ago by [Niels Lindenthal](https://community.openproject.org/www.openproject.org) and 2 other updates.
* **Subject** changed 1 hour ago by [Niels Lindenthal](https://community.openproject.org/www.openproject.org) and 2 other updates.
* The sorting is done, within an aggregated journal entry, by the following priority:
* **User is @mentioned in a comment**
* **Assigned to me**
* **Accountable set to me**
* **Removed as assignee**
* **Removed as accountable**
* **Status changed**
* **Priority changed**
* **Version changed**
* **Date changed**
* **Subject changed**
* **Description changed**
* **New comment(s)**
* **Assignee/Accountable changed (but not me)**
* **Files added**
* **Custom fields changed**
* **Parent changed**
* The list of reasons to display is a closed set of events that the user has chosen to be notified about in their user settings. For any work package item in Notification Center, the list of reasons must ignore the reasons from the above priority list that do not interest the user.
* This means a lower-priority reason might actually be displayed instead of a higher priority one, if the user did not choose to be notified of that higher priority event. _Eg. if the user is has enabled notifications for "all date changes" and the work package has since also had a status change, the reason for notification remains the change of date. This is because the list of reasons is limited (for that work package, depending on settings) to the list of subscribed reasons for being notified._
* If the work package is watched, all events are reasons for notification, so the entire list should be considered.
* These settings must take project-level settings into accountl; _eg. a work package in project A might have a different set of reasons for notification as project B._
* If the notification row aggregates multiple notifications, the change highest up in above's priority list is chosen. chosen.
* If two notification changes are tie for the same priority, the youngest one is used. used.
* The notification within the aggregated row from which the change is highlighted determine the user name and timestamp of the notification.
_E.g. in a notification row that aggregates a version being changed one hour ago by user A and a comment with a mention two hours ago by user B, the change will display a comment with a mention was done two hours ago by user B._
* The importance of journal changes is also applied to the aggreggated list of changes in the activity tab.
_Eg. "Assigned to" is always rendered before "Parent changed"_
**Update Strings**
_Notes_
* Brevity is prioritised so additional information is only provided where judged critical
* {time} is expressed relatively, as in "3 hours ago"
* {user} is expressed as a link
* The **parts in bold** are meant to really be in bold bold
* I've not included the "and {n} other updates" in these examples, but they would be present where relevant
* We need to produce a similar list for other languages (what is the localisation process?)
_Strings (in order of priority)_
* _Comment with @mention_
**Mentioned** {time} by {user}
* _Assigned to me_
**Assigned to you** {time} by {user}
* _Accountable set to me_
**Accountable set to you** {time} by {user}
* _Assignee changed (from me to someone else)_
**Removed as assignee** {time} by {user}
* _Accountable changed (from me to someone else)_
**Removed as accountable** {time} by {user}
* _Status changed_
**Status changed from {old status}** {time} by {user}
* _Priority changed_
**Priority changed to {new priority}** {time} by {user}
* _Version changed_
**Version changed** from {old version} to {new version} {time} by {user}
* _Date changed_
**Date changed** to {new date} {time} by {user}
* _Subject changed_
**Subject changed** {time} by {user}
* _Description changed_
**Description changed** {time} by {user}
* _New comment_
**New comment** {time} by {user}
* _Assigned changed (but unrelated to me)_
**Assignee set to {new user}** {time} by {user}
* _Accountable changed (but unrelated to me)_
**Accountable set to {new user}** {time} by {user}
* _Files added_
**New files added** {time} by {user}
* _Custom fields changed_
**{Custom field} updated** {time} by {user}
* _Parent changed_
**Parent changed** {time} by {user}
**Out of scope**
* Change the details in the daily email (_described in <mention class="mention" data-id="38948" data-type="work_package" data-text="#38948">#38948</mention> )_
**Open**
* Regarding "and {n} other updates". How is n calculated?
Is it the number of notifications received as it is currently the case or is it the number of changes that were made and can thus be found when opening the split view?
E.g. a user receives two notifications, in the first one, assignee was set and the parent changed and in the second one, description, accountable and date was changed. The number could now either be 2 since there are two notifications or 5 as this is the sum of changes represented by the row. The 2 will already be displayed within the blue pill so there would be a redundant counter.
* In the specification, the bold font is sometimes applied to the whole of the changes, and sometimes only to parts of it, e.g. "**Date changed** to {new date}" vs "**Assignee set to {new user}**". Is this intended?
* In the specification the old value is to be displayed for Status "**Status changed from {old status}"** but the new value is to be displayed for Priority "**Priority changed to {new priority}**" while Version displays both the old als well as the new "**Version changed** from {old version} to {new version}". Is this intended, and if so, what is the rational?
* We need to produce a similar list for other languages (what is the localisation process?). Currently, the localization is handled by the community, so typically we don't specify it.
**I want to** see at least one high-level reason of why notification has been sent
**so that** I can evaluate the importance of a notification.
<figure class="image op-uc-figure"><div class="op-uc-figure--content"><img class="op-uc-image" src="/api/v3/attachments/22143/content"></div></figure>
**Acceptance criteria**
* The author is shown as a link with the name (instead of the avatar).
* The reason of the notification is shown in an abbreviated form
* The full list of what to render on every changed is below in the "Update Strings" sections
* Preliminary ideas:
* The preview is structured like:
* **Status** changed from New to **Closed** 1 hour ago by [Niels Lindenthal](https://community.openproject.org/www.openproject.org) and 2 other updates.
* For long texts and comments the diff is not shown.
* **Comment** added 1 hour ago by [Niels Lindenthal](https://community.openproject.org/www.openproject.org) and 2 other updates.
* **Description** changed 1 hour ago by [Niels Lindenthal](https://community.openproject.org/www.openproject.org) and 2 other updates.
* **Subject** changed 1 hour ago by [Niels Lindenthal](https://community.openproject.org/www.openproject.org) and 2 other updates.
* The sorting is done, within an aggregated journal entry, by the following priority:
* **User is @mentioned in a comment**
* **Assigned to me**
* **Accountable set to me**
* **Removed as assignee**
* **Removed as accountable**
* **Status changed**
* **Priority changed**
* **Version changed**
* **Date changed**
* **Subject changed**
* **Description changed**
* **New comment(s)**
* **Assignee/Accountable changed (but not me)**
* **Files added**
* **Custom fields changed**
* **Parent changed**
* The list of reasons to display is a closed set of events that the user has chosen to be notified about in their user settings. For any work package item in Notification Center, the list of reasons must ignore the reasons from the above priority list that do not interest the user.
* This means a lower-priority reason might actually be displayed instead of a higher priority one, if the user did not choose to be notified of that higher priority event. _Eg. if the user is has enabled notifications for "all date changes" and the work package has since also had a status change, the reason for notification remains the change of date. This is because the list of reasons is limited (for that work package, depending on settings) to the list of subscribed reasons for being notified._
* If the work package is watched, all events are reasons for notification, so the entire list should be considered.
* These settings must take project-level settings into accountl; _eg. a work package in project A might have a different set of reasons for notification as project B._
* If the notification row aggregates multiple notifications, the change highest up in above's priority list is chosen.
* If two notification changes are tie for the same priority, the youngest one is used.
* The notification within the aggregated row from which the change is highlighted determine the user name and timestamp of the notification.
_E.g. in a notification row that aggregates a version being changed one hour ago by user A and a comment with a mention two hours ago by user B, the change will display a comment with a mention was done two hours ago by user B._
* The importance of journal changes is also applied to the aggreggated list of changes in the activity tab.
_Eg. "Assigned to" is always rendered before "Parent changed"_
**Update Strings**
_Notes_
* Brevity is prioritised so additional information is only provided where judged critical
* {time} is expressed relatively, as in "3 hours ago"
* {user} is expressed as a link
* The **parts in bold** are meant to really be in bold
* I've not included the "and {n} other updates" in these examples, but they would be present where relevant
* We need to produce a similar list for other languages (what is the localisation process?)
_Strings (in order of priority)_
* _Comment with @mention_
**Mentioned** {time} by {user}
* _Assigned to me_
**Assigned to you** {time} by {user}
* _Accountable set to me_
**Accountable set to you** {time} by {user}
* _Assignee changed (from me to someone else)_
**Removed as assignee** {time} by {user}
* _Accountable changed (from me to someone else)_
**Removed as accountable** {time} by {user}
* _Status changed_
**Status changed from {old status}** {time} by {user}
* _Priority changed_
**Priority changed to {new priority}** {time} by {user}
* _Version changed_
**Version changed** from {old version} to {new version} {time} by {user}
* _Date changed_
**Date changed** to {new date} {time} by {user}
* _Subject changed_
**Subject changed** {time} by {user}
* _Description changed_
**Description changed** {time} by {user}
* _New comment_
**New comment** {time} by {user}
* _Assigned changed (but unrelated to me)_
**Assignee set to {new user}** {time} by {user}
* _Accountable changed (but unrelated to me)_
**Accountable set to {new user}** {time} by {user}
* _Files added_
**New files added** {time} by {user}
* _Custom fields changed_
**{Custom field} updated** {time} by {user}
* _Parent changed_
**Parent changed** {time} by {user}
**Out of scope**
* Change the details in the daily email (_described in <mention class="mention" data-id="38948" data-type="work_package" data-text="#38948">#38948</mention> )_
**Open**
* Regarding "and {n} other updates". How is n calculated?
Is it the number of notifications received as it is currently the case or is it the number of changes that were made and can thus be found when opening the split view?
E.g. a user receives two notifications, in the first one, assignee was set and the parent changed and in the second one, description, accountable and date was changed. The number could now either be 2 since there are two notifications or 5 as this is the sum of changes represented by the row. The 2 will already be displayed within the blue pill so there would be a redundant counter.
* In the specification, the bold font is sometimes applied to the whole of the changes, and sometimes only to parts of it, e.g. "**Date changed** to {new date}" vs "**Assignee set to {new user}**". Is this intended?
* In the specification the old value is to be displayed for Status "**Status changed from {old status}"** but the new value is to be displayed for Priority "**Priority changed to {new priority}**" while Version displays both the old als well as the new "**Version changed** from {old version} to {new version}". Is this intended, and if so, what is the rational?
* We need to produce a similar list for other languages (what is the localisation process?). Currently, the localization is handled by the community, so typically we don't specify it.