Page MenuHomePhabricator

Introduce a way to view and manage all of the topics you are subscribed to
Closed, ResolvedPublic

Assigned To
Authored By
ppelberg
Jan 30 2021, 1:19 AM
Referenced Files
F34686116: image.png
Oct 12 2021, 1:00 PM
F34677664: image.png
Oct 7 2021, 4:46 PM
F34677662: image.png
Oct 7 2021, 4:46 PM
F34659206: Screen Shot 2021-09-27 at 7.46.39 AM.png
Sep 27 2021, 11:51 AM
F34600206: image.png
Aug 18 2021, 4:17 PM
F34600199: image.png
Aug 18 2021, 4:17 PM
F34600202: image.png
Aug 18 2021, 4:17 PM
F34600209: image.png
Aug 18 2021, 4:17 PM
Tokens
"Love" token, awarded by iamjessklein.

Description

This task is about designing and implementing a dedicated space for people to view and manage all of the topics they have subscribed to, manually and/or automatically.

User Stories

Unsubscribing from conversations

  • As someone who is receiving many new comment notifications, I want to be able to see all of the topics I am currently subscribed to and have the ability to unsubscribe from topics of my choosing, so that I can bring the number of new comments I am being notified about down to a number I consider to be more reasonable.

Revisiting conversations

  • As someone who is wanting to revisit a conversation I am interested in, I want to be able to see all of the conversations I have previously subscribed to in one place, so that I can: A) easily identify the specific conversation I am interested in and B) visit that conversation to re-read what's been said, add a new comment, etc.

Requirements

⚠️The scope of this first implementation is intentionally "sparse" and "generic." Rationale: I think we still have a lot to learn about how people use topic subscriptions and what supporting functionality they will need to get the most out of them. As such, to start, I think it is important we implement this part of the experience in a way that allows its purpose to emerge organically.

Meta

  • I am thinking of this page as more of a "snapshot" than a "log." Tactically, this means that once you unsubscribe from a topic, that topic should be removed from the list of conversations that appears on this page rather than stored as an "entry" in a "log.: More on this in "Page contents" below.

Page name/location

  • Ideally, this page can named/located at Special:TopicSubscriptions

Discovery/Navigation

  • To arrive at Special:TopicSubscriptions you will need to do one of the following three things:
    • 1. Manually enter the special page's URL
    • 2. Explicitly click a link to Special:TopicSubscriptions that someone else has created
    • 3. Visit Special:SpecialPages

We will consider how to make this page more discoverable in T289906.

Page contents
In service of the page's two initial functions – seeing all of your subscriptions and unsubscribing from individual topics – the page should contain the following:

  • All of the topics you are currently subscribed to
    • Note: whether you subscribed to a topic manually or automatically should NOT impact the topics that are shown on this page or how they are shown.
  • Each topic you are subscribed to should include:
    • The name of, and link to, said topic (read: the contents of the == H2 ==)
      • This "link" when clicked, should take you to the precise part of the page where the topic exists.
    • The name of, and link to, the page on which said topic exists
    • The ability to Unsubscribe from said topic
      • Once you Unsubscribe from a topic, that topic should be removed from the page.

Done

  • ===Requirements are implemented in ways that fulfill the === User stories above

Volunteer feedback

Related Objects

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

I would like us to release this together with automatic topic subscriptions. I think keeping track of your subscriptions will become necessary for the most active users when subscriptions are added automatically.

I've built the interface already, at first for my own testing while building topic subscriptions and then automatic topic subscriptions, but I spent a few hours cleaning it up.

image.png (2×3 px, 547 KB)

It's not exactly pretty but it's functional, and it uses established MediaWiki conventions (inspired by pagers like Special:ProtectedPages and the watchlist management interface at Special:EditWatchlist).

I'd like to add links to the new interface in preferences and in the notifications:

image.png (2×3 px, 365 KB)
image.png (2×3 px, 546 KB)
image.png (629×3 px, 78 KB)
ppelberg added a subscriber: matmarex.

Action items

  • Finalize user stories
  • Decide whether this ticket should block T282636

Action items

  • Finalize user stories

===User stories are posted and so too are the ===Requirements.

  • Decide whether this ticket should block T282636

Implementing what this ticket is asking for will block T282636.


👏 kudos to you @matmarex for taking a first pass and pushing this work forward.

ppelberg updated the task description. (Show Details)

I'd like to add links to the new interface in preferences and in the notifications...

@matmarex: I've added these ideas to the newly-created T289906.

ppelberg added a subscriber: Tacsipacsi.

Task description

  • ADDED: requirement that people be able to find a link to Special:TopicSubscriptions on Special:SpecialPages per the suggestion @Tacsipacsi made in T289906#7316171.

It will be listed there (this happens automatically, unless the special page is marked as "unlisted").

It will be listed there (this happens automatically, unless the special page is marked as "unlisted").

Noted. Okay. Thank you for clarifying, @matmarex.

I am thinking of this page as more of a "snapshot" than a "log." Tactically, this means that once you unsubscribe from a topic, that topic should be removed from the list of conversations that appears on this page rather than stored as an "entry" in a "log.: More on this in "Page contents" below.

Yeah, I agree that it's a snapshot. In my initial prototype, the page shows your unsubscribed topics too, because we store them in the database and I wanted it to display everything we store.

(We store them because: at first it just seemed like it could be useful in the future, and now it turned out to actually be useful so that we know not to auto-subscribe you again when you unsubscribed, per the requirements in T284836.)

I think I'd like to keep the ability to show them, for transparency, but they should probably be hidden when you view the page.

I am thinking of this page as more of a "snapshot" than a "log." Tactically, this means that once you unsubscribe from a topic, that topic should be removed from the list of conversations that appears on this page rather than stored as an "entry" in a "log.: More on this in "Page contents" below.

Yeah, I agree that it's a snapshot. In my initial prototype, the page shows your unsubscribed topics too, because we store them in the database and I wanted it to display everything we store.

Mmm, got it. I hadn't considered the original use case for this page even existing. I'm glad you re-stated it here.

(We store them because: at first it just seemed like it could be useful in the future, and now it turned out to actually be useful so that we know not to auto-subscribe you again when you unsubscribed, per the requirements in T284836.)

Ah, I see.

I think I'd like to keep the ability to show them, for transparency, but they should probably be hidden when you view the page.

+1. To be doubly sure we're on the same page, I'm thinking:

  • We'll retain the ability to, at some yet-to-be-defined future point, introduce a way for people to show the topics they've unsubscribed from
  • Before that "yet-to-be-defined future point," there will not be a way for people to show the topics they've unsubscribed from

...@matmarex: does the above match up with what you had in mind?

Updated the patch to match your description @ppelberg.

On a closer reading, there's one thing I disagree on – I think it's important to include the manual/automatic status, and the dates, to help users dealing with too many notifications to figure out why they are subscribed and whether they're still interested. So I kept those in the patch even though they're missing from your version (and you also wrote "whether you subscribed to a topic manually or automatically should NOT impact … how they are shown").

Test wiki created on Patch Demo by PPelberg (WMF) using patch(es) linked to this task:

https://patchdemo.wmflabs.org/wikis/bf8fb180cf/w/

I've seen multiple requests for this sort of functionality recently (examples: Polish Wikipedia, Russian Wikipedia). I haven't seen details about what people want to do, beyond being able to see the list and remove items from it.

I've seen multiple requests for this sort of functionality recently...

Great spot, @Whatamidoing-WMF. I've added links to these conversations to the task description.

Updated the patch to match your description @ppelberg.

...I think it's important to include the manual/automatic status, and the dates, to help users dealing with too many notifications to figure out why they are subscribed and whether they're still interested.

While I agree with you in thinking that it's important for people to be equipped with the information necessary to decide whether they would like to be remain subscribed to a topic, I am not sure the subscription method – automatic vs. manual – is "necessary information" in this context.

It may turn out to be; however, I would rather exclude this piece of information until we're able to validate its usefulness.

Reason: I'd rather not complicate peoples' perceptions of topic subscriptions unnecessarily.[i]


i. E.g. I think people will have an easier time understanding, and in turn, leveraging topic subscriptions when they consider it as "one tool" that happens to have different ways of being "activated."

Follow ups

  • Remove subscription method from table
  • Add copy to top of page that leads people to understand what this page contains
  • Add prospect of exposing this page within the first-run experience to T289906

Follow ups

  • Remove subscription method from table

Done (bleh)

  • Add copy to top of page that leads people to understand what this page contains

Done (I'm not sure what you mean exactly, I'll replace the text if you prepare the desired version)

  • Add copy to top of page that leads people to understand what this page contains

Done (I'm not sure what you mean exactly, I'll replace the text if you prepare the desired version)

Sounds good; @iamjessklein, as part of the design review you will be doing for this task, can you please draft some copy that will go above the table that contains the topics people are subscribed to and leads them to understand what they can use this page?

Note: I've removed the "Taking bulk actions" story from the ===User Stories section; we'll handle this case separately in T290786.

Test wiki created on Patch Demo by PPelberg (WMF) using patch(es) linked to this task:

https://patchdemo.wmflabs.org/wikis/de6265b1b7/w/

Nice work @matmarex - this feels like a good baseline release to put out, get feedback, and iterate on.

Clarifying question: What is your thinking behind the inclusion of the date subscribed and date of last notification columns? How do contributors use that data in deciding if they should unsubscribe?

I drafted the copy using dev tools on the prototype:

Screen Shot 2021-09-27 at 7.46.39 AM.png (650×905 px, 270 KB)

Removed the dates. I think they are useful, but I don't really want to argue about this, I hope someone else will. I just wish that we'd deploy this feature already, even if you make me cut it down.

Updated the copy per your suggestions, with one exception: I kept "talk pages" in lowercase. It is not a proper noun, and it is never capitalized in the interface, except at the start of sentence.

Test wiki created on Patch Demo by Tacsipacsi using patch(es) linked to this task:

https://patchdemo.wmflabs.org/wikis/26e35b9fc2/w/

Test wiki created on Patch Demo by Tacsipacsi using patch(es) linked to this task:

https://patchdemo.wmflabs.org/wikis/7b3c7f0aea/w/

As the purpose of the page is to remove subscriptions, knowing that a subscription is very old and/or rarely used seems like useful information for making that decision.

Change 668779 merged by jenkins-bot:

[mediawiki/extensions/DiscussionTools@master] Add Special:TopicSubscriptions

https://gerrit.wikimedia.org/r/668779

Change 727405 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/DiscussionTools@master] Show created/notified dates on Special:TopicSubscriptions

https://gerrit.wikimedia.org/r/727405

The framed buttons look odd within the table cell borders, as does the header which just repeats the button label ("Unsubscribe"):

image.png (267×1 px, 36 KB)

Special:Tags uses link buttons, and a header of "Actions"

image.png (312×865 px, 55 KB)

However, Special:Tags has more than one action, while our table has only one. The Actions header, especially in plural, looks odd when we know that the only possible action is unsubscribing. The red button also conveys the destructiveness of this action better than the blue link. It could be borderless without losing this meaning, but for me personally it doesn’t look odd.

The number of actions on Special:Tags is variable depending on your access. There may be more than one action here at some point in the future.

image.png (289×106 px, 3 KB)

Also, the table has a sort link for "Topic" but that actually sorts by auto-increment ID (approximately create time). That should just be removed until we have re-introduced the date fields.

Change 730200 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/DiscussionTools@master] TopicSubscriptions: Hide broken \"Topic\" sort

https://gerrit.wikimedia.org/r/730200

Change 730201 had a related patch set uploaded (by Esanders; author: Esanders):

[mediawiki/extensions/DiscussionTools@master] TopicSubscriptions: Rename 'actions' column and unframe button

https://gerrit.wikimedia.org/r/730201

There may be more than one action here at some point in the future.

Then the column should be renamed when—and in case—this happens, not now.

Test wiki created on Patch Demo by PPelberg (WMF) using patch(es) linked to this task:

https://patchdemo.wmflabs.org/wikis/b7cff6bf29/w/

Below are the "next steps" I think we should take so that we can get this deployed.

Before that, I wonder if what might be contributing to us not yet converging on a shared idea for what information is necessary to include on this page at this moment in time is the fact that:

  1. @matmarex and @Esanders see the primary purpose of this page as being a place for people to remove subscriptions. [i]
  2. @iamjessklein and @ppelberg see the primary purpose of this page to see all of the topics you've subscribed to.

I appreciate the difference between "1." and "2." is subtle, tho I think that difference is significant in so far as I think "1." suggests the page ought to be tailored to a particular use case (unsubscribing) whereas "2." suggests the page remain generic to allow for a wider set of use cases to emerge.


Next steps

ChangePatchNext stepNotes
Show created/notified dateshttps://gerrit.wikimedia.org/r/727405REMOVE from this initial version; revisit in T292035 or T294162
Remove ability to sort Topic columnhttps://gerrit.wikimedia.org/r/730200MERGE 730200We'll revisit this in T294163
Rename Unsubscribe column Actionshttps://gerrit.wikimedia.org/r/730201MERGE 730201This is inline with keeping this page intentionally "sparse" and "generic" for now.
Unframe Unsubscribe buttons that appear within the now-titled Actions columnhttps://gerrit.wikimedia.org/r/730201MERGE 730201 and "unframe" Unsubscribe affordances (I confirmed this with @iamjessklein)

i. T273342#7408842

Change 730200 merged by jenkins-bot:

[mediawiki/extensions/DiscussionTools@master] TopicSubscriptions: Hide broken \"Topic\" sort

https://gerrit.wikimedia.org/r/730200

Change 730201 merged by jenkins-bot:

[mediawiki/extensions/DiscussionTools@master] TopicSubscriptions: Rename 'actions' column and unframe button

https://gerrit.wikimedia.org/r/730201

Test wiki on Patch demo by Tacsipacsi using patch(es) linked to this task was deleted:

https://patchdemo.wmflabs.org/wikis/26e35b9fc2/w/

Test wiki on Patch demo by Tacsipacsi using patch(es) linked to this task was deleted:

https://patchdemo.wmflabs.org/wikis/7b3c7f0aea/w/

Test wiki on Patch demo by PPelberg (WMF) using patch(es) linked to this task was deleted:

https://patchdemo.wmflabs.org/wikis/bf8fb180cf/w/

Test wiki on Patch demo by PPelberg (WMF) using patch(es) linked to this task was deleted:

https://patchdemo.wmflabs.org/wikis/b7cff6bf29/w/

Test wiki on Patch demo by PPelberg (WMF) using patch(es) linked to this task was deleted:

https://patchdemo.wmflabs.org/wikis/de6265b1b7/w/