When a user opens the notification panel, we want to provide easy access to those notifications originated in other wikis. This is expected to save users time (no longer needing to chase notifications through different sites) and prevent some relevant notifications to be missed or noticed too late. This is part of a broader effort to improve the notifications panel (T113228).
# Basic concept: external notifications as an expandable bundle
We propose to present notifications from other wikis as a bundle in the notifications panel. Check [[ http://pauginer.github.io/prototypes/notifications/notification-panel/index.html | this prototype ]] for a quick impression.
* **Bundled.** Notifications from other wikis are presented inside a bundle the user can expand to explore the individual notifications. This provides more weight to local notifications, allowing users to focus on the wiki at hand first. Advanced users interested in processing translations regardless of their origin or interested in more advanced queries will be able to make use of the notification page for that purpose in the future (T115316).
* **Organised per wiki.** A single bundle is provided for all external notifications which is initially collapsed, but displays the notifications organised per wiki once it becomes expanded.
* **Shown after local notifications** The group is presented at the bottom of the unread notifications, but the model can be easily adapted for the group to be chronologically ordered if we observe that the initial behaviour makes external notifications too buried down the list.
# The Bundle and how it works
The bundle for cross-wiki notifications is similar to the general approach proposed for bundling (T114356), but it has some specific particularities since it is not grouping similar notifications but very different ones coming from different wikis. Details are given below about how it is presented and what can users do with the bundle:
- **General look.** When collapsed, the bundle will look mostly like any other notification item. In order to communicate that it represents multiple elements, there is a subtle line at the bottom. When the bundle is expanded, it contains a list with the individual notifications it includes.
- **Icon.** A globe icon is used to communicate that it include notifications from other places.
- **Text.** The bundle label will anticipate the content of the bundle indicating the kind of notification (messages or alerts), surfacing one of the origins (e.g., Commons if the most recent notification is from there) and indicating if there are notifications from other origins. For example, assuming the user is on English Wikipedia, some possible labels could be: "More messages from Spanish", "More messages from Spanish and other languages", "More messages from Commons", "More messages from Commons and other wikis".
-- **Expand/collapse.** The bundle can be expanded and collapsed. There are two entry points that can be used to toggle between those states: clicking on the bundle item and an explicit expand/collapse action. The expand action ("view X messages") will show the number of the items the bundle contains.
-- **Mark as read.** When marking the bundle as read by clicking on the "X" icon, all the notifications that it includes will be marked as read and the bundle would disappear as a result.
# List of notifications inside the bundle
When the cross-wiki notification bundle is expanded, it shows the unread notifications from other wikis. Some aspects to consider:
Notifications inside the bundle are grouped by project (first) and language (second) but the group labels only show what is relevant for the notifications in the group. This will make the descriptions more contextual, but we may want to start with a more generic approach showing always "project -language" initially and improve from there in further iterations.
The labels indicating the wiki will be used as links that would link to the Notifications Page of the corresponding wiki.
Notification items inside a bundle are presented in a more compact way than regular notifications. this includes:
- Showing a smaller icon.
- Not exposing any additional action. If they have any secondary actions, those will be available through a "more" menu ("..." icon). If there are no additional actions, the "..." menu will not be displayed.
- The icon, text, timestamp, action menu and close icon are presented in sequence forming a single row.
**Only cross-wiki notifications**
When there are no other unread notifications than those in the cross-wiki bundle, the cross-wiki bundle should be presented expanded by default.
The alerts panel is an exception to this, where the cross-notification bundle will be presented collapsed (more details below).
Although for general bundles (those grouping very similar notifications) a single item bundle does not make much sense, for cross-wiki notifications we want to still provide some structure to distinguish local and external notifications, as well as to provide continuity when users keep discarding notifications from an expanded bundle.
For cross-wiki notifications bundles with just one item, the bundle will be shown with one item but the wiki label would be omitted for simplicity (since it is already present in the bundle item text).
Bundles represent a group of notifications. When there are no items left, there should be no bundle. Thus, if items are removed (e.g., marked as read) to the point the bundle becomes empty, the bundle should disappear.
# Read status changes and propagation
For notifications that become read automatically (e.g., "alerts"), we don't want to propagate that behaviour beyond the current wiki. With that purpose:
- The cross-wiki notification bundle will be always be collapsed initially.
- When users expand the bundle the notifications do not get marked as read automatically. Users need to mark them individually or mark as read the whole bundle.
As a result of the above, the cross-notification bundle will appear always as he first item in the alerts panel since the local notifications will become read as soon as the panel is opened. This may distract users from the recent local alerts. If that is the case, we can place the cross-notification bundle as a a floating element at the bottom of the panel (floating next to the "all notifications" and "settings" bar, not at the bottom of the list). In that way, users can notice the local alerts first while still being aware of alerts from other sites.
For notifications that are marked as read manually (i.e., "messages"), external notifications behave a usual: they became marked as read once the user clicks on them or the "X" icon.
- The cross-wiki bundle has also a "X" button that allows to mark as read all external notifications.
- It is still unclear whether the general "mark all as read" from the panel will act only on local notifications (providing more flexibility) or also with external notifications (in a strict interpretation of the action). We can start with the most conservative approach (marking only local notifications) since it provides more flexibility and iterate based on feedback.
# Styling details
The annotated mockups below include information on different styling aspects such as color, borders and shadows:
Several tickets are created to support cross-wiki notifications:
**Limit initial exposure:**
**Measure our achievements:**
**Adjust user control**
There is [[ https://www.mediawiki.org/wiki/Requests_for_comment/Cross-wiki_notifications | an RFC proposed ]] for the support of cross-wiki notifications.