Page MenuHomePhabricator

"Mark all as read" button completely ignores cross-wiki notification group item
Closed, DeclinedPublic

Description

When viewing a messages popup with a mix of local and foreign notifications, clicking "Mark all as read" marks the local notifications as read, but doesn't mark the foreign notifications as read. I don't just mean T121930: Cross-wiki mark as read doesn't work, because they're not even marked as read visually.

I remember having a discussion about this at some point, so perhaps this is intentional?

I also noticed that the "Mark all as read" button doesn't even appear if you have only foreign notifications and no local ones.

Event Timeline

Catrope raised the priority of this task from to Medium.
Catrope updated the task description. (Show Details)
Catrope added subscribers: Catrope, Mooeypoo.

Yes, we agreed (as I remember) that the "automatic" functions of mark as read (both the 'mark read as seen' and the 'mark all read' button) will not work on foreign bundles, because those bundles hold individual notifications that should first be fetched/looked at before they are rid of. This is especially in the case of the foreign bundles, because marking them as read completely removes them from the list without a trace.

That's why "mark all as read" button doesn't appear if all you have is foreign notifications -- it won't work on them anyways. That is by design.

I think that decision makes sense, honestly, but maybe it's confusing? Should we change it?

Catrope claimed this task.

Makes sense to me. Let's say this is working as designed, unless and until @jmatazzoni, @Pginer-WMF, @Quiddity or @Trizek-WMF disagree.

Catrope set Security to None.

Just to clarify -- when you have a *local* bundle, marking individual notifications inside it as "read" moves those notificaions outside the bundle into their own "standalone" notifications. So, marking that type of bundle as "read" will mean that it will "explode" into its individual notifications. (I still don't know if that's absolutely wise to do, but we can decide on the details when we implement local bundles anyways)

In contrast, foreign bundles act differently -- if you mark individual cross-wiki notifications as "read" they simply vanish from the bundle itself (because they were only there to let you know something exist ffrom another wiki.) they will still exist in whatever wiki they are *local* to, but they will go away from your foreign bundle.

Consequentially, If you mark the entire bundle as read, it vanishes. When we discussed it, we agreed (again, as far as I remember, feel free to correct me or change the conclusion) that since that is the effect, we should only allow "mark all as read" as a product of marking the bundle *itself* as 'read'. The other buttons and operations should ignore it.

That way, if you have 20 notifications, 1 of which is remote, you can safely click "mark all as read" without getting rid of the *view* into the remote wiki that the remote bundle gives you. The idea is that remote bundles are "fake" notifications, so in this case, they act differently.