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://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//
* 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?
*** What are the possible risks or issues associated with implementing this?
//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
** Default time period when watching the Talk pages
//Editing: Investigate how users can edit watchlist expiration dates in the following way://
* By clicking on the watchlist star: Can the originally selected time period be displayed? And can it be edited via the drop-down?
* From Special:EditWatchlist: If a user selects one page, can the originally selected expiration time period be displayed? And can it be edited via the Watchlist page (maybe with the new proposed button)? And can multiple pages be edited to receive a new watchlist expiration (though, understandably, not all of the original expiration periods could be displayed)?
//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 the watchlist: 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 the watchlist, so users can view all temporarily watched pages? Would this add a lot of work/effort?
//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?
* 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.
* We do not have any mock-ups or current thinking around enabling the temporary watching of a page via edit summary. This is lower priority for now.