Page MenuHomePhabricator

[wip] Temporary Watchlist UI
Closed, ResolvedPublic

Assigned To
Authored By
Prtksxna
Feb 6 2020, 5:47 PM
Referenced Files
F31656654: EditWatchlist.png
Mar 3 2020, 2:49 AM
F31656636: filter.png
Mar 3 2020, 2:33 AM
F31656645: Special:Watchlist.png
Mar 3 2020, 2:33 AM
F31553015: full spin.png
Feb 7 2020, 1:26 AM
F31553017: half star and popup.png
Feb 7 2020, 1:26 AM
F31553013: click to select.png
Feb 7 2020, 1:26 AM
F31553011: dropdown.png
Feb 7 2020, 1:26 AM
F31552995: spin.png
Feb 7 2020, 1:22 AM

Description

Article

The popups below can be dismissed by clicking anywhere else on the screen, they do not disappear on their own.

Permanent watch
Not on your watchlistClicking starts the spinningPage gets watchlisted (no need to wait for OOUI)Show a popup (once OOUI is loaded)
unwatchlisted.png (300×600 px, 80 KB)
spin.png (300×600 px, 80 KB)
watchlisted.png (300×600 px, 80 KB)
popup.png (300×600 px, 84 KB)
Temporary watch
Not on your watchlistClicking starts the spinningPage gets watchlisted (no need to wait for OOUI)Show a popup (once OOUI is loaded)
unwatchlisted.png (300×600 px, 80 KB)
spin.png (300×600 px, 80 KB)
watchlisted.png (300×600 px, 80 KB)
popup.png (300×600 px, 84 KB)
Dropdown to pick a durationClick to choose durationSpinning startsHalf star & popup again
dropdown.png (300×600 px, 79 KB)
click to select.png (300×600 px, 79 KB)
full spin.png (300×600 px, 80 KB)
half star and popup.png (300×600 px, 84 KB)
Unwatch

The process will be the same for temporarily watchlisted pages.

WatchlistedClicking starts the spinningPage gets unwatchlisted (no need to wait for OOUI)Show a popup (once OOUI is loaded)
watchlisted.png (300×600 px, 80 KB)
spin.png (300×600 px, 80 KB)
unwatchlisted.png (300×600 px, 80 KB)
popup.png (300×600 px, 88 KB)
Checking status

The hover tooltip will show the current status and the action that can be taken by clicking.

Not in watchlistPermanently watchlistedTemporarily watchlisted
not watchlisted tooltip.png (300×600 px, 82 KB)
permanent watchlist tooltip.png (300×600 px, 82 KB)
temp watchlisted tooltip.png (300×600 px, 82 KB)
No-JS

See T245565: Watchlist Expiry: Support for Static Watch Page (action=watch) [medium].

Edit

Old editor
Edit summary formOnce "Watch Page" is checkedDropdown
Screenshot 2020-02-07 at 6.11.19 AM.png (444×1 px, 94 KB)
Screenshot 2020-02-07 at 6.11.55 AM.png (434×1 px, 97 KB)
Screenshot 2020-02-07 at 6.12.12 AM.png (434×1 px, 94 KB)
VE

Screenshot 2020-02-06 at 11.13.13 PM.png (662×1 px, 126 KB)

Watchlist

Special:Watchlist

Special:Watchlist.png (355×1 px, 218 KB)

Show an icon next to page name if it is temporarily watched, show time remaining on hover in a tooltip. I am not completely sure if this is helpful or if adds too much clutter. Showing the time remaining all the time will crowd the page even more. We haven't really heard a use-case for this yet, so unsure about this change.

Filtering and highlighting

filter.png (310×694 px, 80 KB)

Allow users to filter and highlight temporary and permanently watchlitsed pages. Would it be helpful to add more options for the temporary pages like — "expiring in a few days", "expiring in a few weeks" etc?

Special:EditWatchlist

Here we'd like to keep the temporary pages on top and a way to make them permanent. The permanent pages can be made temporary from this page too.

EditWatchlist.png (522×777 px, 172 KB)

I am currently thinking of this interface in two ways:

  1. Similar to the Thanks interaction, keeping it all text
  2. Our usual dropdown

Raw Watchlist

From what I remember from some technical discussions we don't want to touch this. It'll continue to show all the pages in your watchlist with line breaks in between with no details about what is temporary. If this changes I have two proposals:

  1. Have two headings =Temporary= and =Permanent= and split the pages between this (still hiding info on when it expires)
  2. Have some sort of a syntax to show when temporary pages are expiring and allow the datetime to be edited

Event Timeline

Restricted Application added a subscriber: Aklapper. · View Herald Transcript

These look great, @Prtksxna !

A couple of comments / answers to your questions:

  • Special:Watchlist: We can display the date that the article will expire on, and the time remaining. I believe the time remaining functionality may only be available in JavaScript (through momentjs) but am not 100% sure; there might be this functionality in the php side as well. We'll need to check. In other products (like StructuredDiscussions) we displayed the full date in "no-js" mode and augmented it with "xx ago" (which would be "xx days" etc for us) in JS; when you hovered over the human-readable, it switched to a date, so the user could get both experiences. Just a thought :)
  • Special:EditWatchlist: We can definitely allow for adding expiry for items, we will just need the UX for it (a button/link?) it can open the same popup that appears when clicking on the star, or a different one.
  • Special:RawWatchlist: Yes, let's avoid doing anything there, at least for the MVP. This page is already very messy to handle with separating (or showing) details about pages, and adding text that is not a page (like the headings) will require redoing how the saving operation works. I suggest to avoid getting into this page at all; pages that are added through this list will receive the default expiry. Pages that are removed will be removed regardless anyways. Does that sound okay?

Finally, a comment: Is this functionality going to be available on mobile devices? The behavior of the star is currently more or less the same. If we add a popup, I would suggest doing some thinking about how it appears, and whether it pops to everyone, etc; while it can be relatively unobtrusive in desktop, a popup tends to be complex (and hide half the screen) in mobile, so it might need a different behavior. Either that, or mobile may require rethinking on editing expiry values. Either way, we definitely need to think about this, and see where we prioritize that work.

Just FYI, non-Vector desktop skins simply show "Watch" and "Unwatch" links. Not sure if you wanted to change the language there.

There is also the manual process ala https://en.wikipedia.org/wiki/Street_artist?action=watch and https://en.wikipedia.org/wiki/Street_artist?action=unwatch. The former presumably would need new UI components.

That's a good point also for the no-JS version.

While we don't need to do extra features, we *do* have a "watch" confirmation page for no-js. Do we want to add a "watch temporarily" function there?

  • Special:Watchlist: We can display the date that the article will expire on, and the time remaining. I believe the time remaining functionality may only be available in JavaScript (through momentjs) but am not 100% sure; there might be this functionality in the php side as well. We'll need to check. In other products (like StructuredDiscussions) we displayed the full date in "no-js" mode and augmented it with "xx ago" (which would be "xx days" etc for us) in JS; when you hovered over the human-readable, it switched to a date, so the user could get both experiences. Just a thought :)

Sounds good. When JS is available we show "ago" text with the real date on hover, when JS isn't available we just show the real date.

  • Special:EditWatchlist: We can definitely allow for adding expiry for items, we will just need the UX for it (a button/link?) it can open the same popup that appears when clicking on the star, or a different one.

Cool, I'll add designs for this.

  • Special:RawWatchlist: Yes, let's avoid doing anything there, at least for the MVP. This page is already very messy to handle with separating (or showing) details about pages, and adding text that is not a page (like the headings) will require redoing how the saving operation works. I suggest to avoid getting into this page at all; pages that are added through this list will receive the default expiry. Pages that are removed will be removed regardless anyways. Does that sound okay?

Yep, this sounds good. One caveat though, when you say default expiry do you mean Indefinite? Or do you mean the default expiry setting we might provide (I am not sure if there is a decision on this yet).

Finally, a comment: Is this functionality going to be available on mobile devices?

Yep, I'll be working on mobile designs next.


That's a good point also for the no-JS version.
While we don't need to do extra features, we *do* have a "watch" confirmation page for no-js. Do we want to add a "watch temporarily" function there?

Is this page the same as @MusikAnimal shared (https://en.wikipedia.org/w/index.php?title=Street_artist&action=watch) or something else?

MusikAnimal claimed this task.

UI and the new functionality was shipped some years ago