| Subject | Repo | Branch | Lines +/- | |
|---|---|---|---|---|
| Article Reminder UI button | mediawiki/extensions/Echo | master | +28 -2 |
Details
| Status | Subtype | Assigned | Task | ||
|---|---|---|---|---|---|
| Open | None | T125653 Create new types of notifications | |||
| Open | None | T2582 Remind me of this article in X days | |||
| Open | None | T168387 Create the UI button to open the Adding Reminder menu |
Event Timeline
A couple of questions we should ask to prepare for this:
- Where should the "add reminder" button be? The simplest solution seems to be adding another tab to the screen next to the "star" (watchlist) menu
- What should there be in the menu?
- Do we have a set range of options to choose from, or a free-text number with days?
- Related to the above, if we go with free-text number, do we validate? Do we have a range? Do we have a date-picker?
- The MVP should support a user-comment. We should limit the character-count to something sensible that appears in the notification.
- What does it look like if the article already has a reminder? We can mimic the behavior of the watchlist where the star is empty/full depending on whether it is used.
- Speaking of which, what happens if you click that interface when a notification was already set? In the MVP we don't do 'delete' reminder, do we allow for several reminders for the article? Or should we show the previous reminder you set up? And how will that look like?
- Do we open a popup under the button with the above details? Is it a screen-centered dialogue? (I personally prefer a popup, but we should discuss)
All the above should go through our product manager and designer for input; @Eee888 please feel free to add/adjust/remove any points, and when you think it's a good list, add the list to the description -- we will then tag the design/product for their input so you can have the MVP decisions ready when you start work on the front-end.
Don't see a reason to limit to a fixed set of options, unless that's required for performance reasons. We may want to validate that it's an integer (not 1.5 days), depending on how often the cron job runs (though if it's general infrastructure, it will probably run often enough that we don't have to).
The only reason I see for some set options rather than free-text is for clarity. It's like the RecentChanges picker -- most common choices shown, even though it technically lets you pick anything (if you put "days=21" into the params it will work, but it doesn't show that to you in the interface, for clarity and cleanliness)
Just a matter of interface cleanliness, I guess? Free-text widgets tend to be considered more "advanced" and may confuse people... but I don't know. We should get input from design/product on this.
I didn't really mean it should be free text, just that we shouldn't limit to a fixed set (e.g. not only 1, 3, and 7).
NumberInputWidget is one option (text, but with easy tick up/down).
But another way to allow arbitrary options without free text is a date picker, as you suggested.
I tend to agree with the fixed options (let's say - day, week and 2 weeks? month?), with the option for "custom" (which can open the date time picker).
From my UI UX experience in previous systems, this is the cleanest.
Change 361840 had a related patch set uploaded (by Foxy brown; owner: Foxy brown):
[mediawiki/extensions/Echo@master] Article Reminder UI button
Change 361840 abandoned by Foxy brown:
Article Reminder UI button
Reason:
Squashed into
https://gerrit.wikimedia.org/r/#/c/363540
Resetting workboard column as there is no patch to review (existing one has been abandoned).
@Eee888: I am resetting the assignee of this task because there has not been progress lately (please correct me if I am wrong!). Resetting the assignee avoids the impression that somebody is already working on this task. It also allows others to potentially work towards fixing this task. Please claim this task again when you plan to work on it (via Add Action... → Assign / Claim in the dropdown menu) - it would be welcome! Thanks for your understanding!