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 ]] (to examine general feasibility & risks)
**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 they change the date from the drop-down?
* From Special:EditWatchlist: Can they change the date for one or multiple pages via a new button to "Watch Temporarily" on the page?
//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? 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?