As a PM, I want to know which of the primary use cases and proposed elements of the feature can be reasonably implemented and supported, so that I can make decisions regarding the work that we do and its relative priority.
Important Links:
* [[ https://meta.wikimedia.org/wiki/Community_Tech/Watchlist_Expiry | Watchlist Expiry project page ]]
* [[ https://meta.wikimedia.org/wiki/Community_Wishlist_Survey_2019/Watchlists/Watchlist_item_expiration | The Original Wish, from 2019 Wishlist Survey ]]
* [[ https://wikimedia.invisionapp.com/freehand/document/4YNQMT5si | (Early) mockup ideas ]]
* [[ https://phabricator.wikimedia.org/T223174 | Previous Watchlist Expiry spike ]] (this can be considered part 1 of our investigation)
**Acceptance Criteria:**
//Basic Functionality: Investigate how users can watch a page temporarily (highest priority)//
* Via the "watch" star: Can we add a drop-down menu (when user clicks the "watch" star) that enables them to select a timerange (for example, one day, one month, three months, six months, or permanently)? See the mockup link for examples.
** What are the possible risks or issues associated with implementing this?
* Via Special:EditWatchlist
** Can we allow users to select one or multiple items on their watchlist, and then click a new button ("Watch Temporarily"), which will generate some sort of drop-down or datepicker to select when the watch period should expire?
** Can we add lines for each item on the watchlist: make permanent/make temporary? This would open a drop-down with the options for the user to edit the watch period of the page.
*** What are the possible risks or issues associated with implementing this?
* Via Edit Summary: Can we add an option to temporarily watch via edit summary with a drop-down?
//Customization: Investigate ability to allow users to set custom time periods in the following ways://
* Type in the number of days or weeks in a drop-down when watching the page
* Select a custom and specific time period (either via datepicker or blank fields for days/weeks) when the user first chooses to watch the page temporarily
* Set default time period via Preferences (see mockup example) that specifies by:
** Default time period when using the star icon
** Default time period when watching the Edit pages or Talk pages
//Editing: Investigate how users can edit watchlist expiration dates in the following way://
* By clicking on the watchlist star: Can the user edit the time period by unwatching the page and then re-watching it with a newly selected time period? Would this be the easiest to implement (in terms of editing)?
* From Special:EditWatchlist: Can the user edit the watch period, based on either of the two processes explained in the "Basic Functionality" section above (specific to Special:EditWatchlist)?
//Management: Investigate how we can support users who have temporarily watched pages by visually distinguishing between temporarily & permanently watched pages//
* Indicator on the page: Can we implement a half star (as per the mockup example)? If not (or if too technically difficult), what would be a more manageable solution?
* Indicator on Special:EditWatchlist: Can temporarily watched pages have some sort of icon next to them? Can the date of expiration (or some info about the expiration period) be displayed? If not, what other behavior is possible?
* Can we implement a filter on Special:EditWatchlist, so users can view all temporarily watched pages? Would this add a lot of work/effort?
* Can we have per item links on EditWatchlist?
//Notifications: Investigate our ability to notify users (in Echo) about changes to the watch status, including://
* When a page is about to expire (for example, within one day of expiration)
* When the page has expired (i.e. within one day after expiration)
* If we cannot provide any notifications in Echo, why not? And are there any other alternative forms of notification/communication that may be manageable, from a technical perspective?
//General Technical Considerations//
* What sort of changes will we need to make to the API?
* Can we implement the basic functionality (i.e. allowing user to temporarily watch a page) in a way that looks/acts the same in both web and mobile versions?
* How will the general usability of the tool be potentially impacted if someone has JavaScript disabled?
//Additional Notes//
* We do not yet have mock-ups for mobile, but they have been requested in T235132.