Page MenuHomePhabricator

Implement 'User' filters and filter menu in the new UI
Open, Needs TriagePublic

Assigned To
None
Authored By
jmatazzoni
Jun 6 2017, 9:50 PM
Referenced Files
F8412672: RC-users-autocomplete.png
Jun 8 2017, 1:29 PM
F8412683: RC-users-empty.png
Jun 8 2017, 1:29 PM
F8412668: RC-users.png
Jun 8 2017, 1:29 PM
F8412675: RC-users-autocomplete-selected.png
Jun 8 2017, 1:29 PM
F8412439: RC-users-autocomplete-selected.png
Jun 8 2017, 1:22 PM
F8412434: RC-users.png
Jun 8 2017, 1:22 PM
F8412330: RC-users-empty.png
Jun 8 2017, 1:22 PM
F8412437: RC-users-autocomplete.png
Jun 8 2017, 1:22 PM
Tokens
"Love" token, awarded by MarcoSwart."Doubloon" token, awarded by RandomDSdevel.

Description

The User menu works the same as the main filter panel does--the same rollover, selection, close-menu, etc. behavior. Here are the User filter-specific specs:

General User menu functions

  • Selecting a username from the menu means that all edits made by that user are shown in the Results area.
  • In terms of filtering logic, the entire User menu is one filter "group." This means that when multiple usernames are added to a search, each broadens the search, since all User filters relate to one another via an OR.
  • In the Active Filter Display Area, User names are prepended by a @ in their respective Tag bubbles. E.g., @JoeBlow.
  • Instruction text in the bottom of the panel reads: Search for any editor by typing their username in the search bar, preceded by @.
  • A "?" icon (help link) leads users to an as yet unwritten Help page on the User filters.

User Search functions

  • When the User menu is open, an @ is displayed in the Search bar.
  • When a reviewer who hasn't used this tool comes to it for the first time, the system scans her user talk page and collects the usernames of the 4 users that have most recently edited the page. These usernames are presented in the menu, in alphabetical order, under the heading "Recent user interactions."
    • If the reviewer doesn't have a user talk page, or no user interactions have occurred there, no names are presented.
  • Reviewers can search for users not on the Recent Interactions list by entering a username in the search bar, prepended by @, like so @JoeBlow.
  • As the reviewer types a user name, the system attempts to match it with names of those active on that wiki, showing the 10 closest matches in the menu, in alpha order, preceded by check boxes.
  • The reviewer can select a username by checking its check box in the menu, or by hitting Return once a unique match has been achieved in the search bar.
  • The menu retains the 10 usernames that the reviewer used most recently, gradually replacing prepopulated usernames with usernames the user actually searched for. These usernames are listed in alphabetical order.

Exclude mode functions & display behavior

  • All User filter selections must either be in Exclude or Include mode; these modes cannot be mixed. This means that when a user makes the "Exclude selected" button active or inactive, all previous selections will turn to the new mode (and, obviously, all future selections will be in that mode). If the mode is reversed, all selections are also reversed in function and display.
  • Clicking the "Exclude selected" button inverts the function, so that if "Joeblow" is selected in Exclude mode, everything is shown except changes by JoeBlow. When multiple items are excluded, the logic is Not A OR Not B--everything but A and B.

When the "Exclude selected" button is pressed, the following happens:

  • The button turns blue. The menu is now in Exclude mode, and all selections will be Exclude selections.
  • The button label changes to "Excluding selected"
  • Any currently active User filters go into Exclude mode in function and display (see below)

In Exclude mode, for all selected items, the system shows the following UX behavior

  • The word "Excluded" is displayed in the menu in the line of that username.
  • The selected (but Excluded) items are greyed-out (to indicate they are not present in the results) while the rest of the usernames in the menu are shown with the regular white background.
  • In the Active Filter Display area, the following formula is prepended to the namespace name in the tag, in boldface, "@not". E.g., "@not JoeBlow"

Mockups

Initial suggestionsAutocompletion when searchingSelected
RC-users.png (768×1 px, 219 KB)
RC-users-autocomplete.png (768×1 px, 218 KB)
RC-users-autocomplete-selected.png (768×1 px, 218 KB)
Empty state (if no suggestions initially)
RC-users-empty.png (768×1 px, 263 KB)

Related Objects

Event Timeline

jmatazzoni renamed this task from Implement 'Tagged edits' filter in the new UI to Implement 'User' filter in the new UI.Jun 6 2017, 9:50 PM
jmatazzoni renamed this task from Implement 'User' filter in the new UI to Implement 'User' filters and filter menu in the new UI.
jmatazzoni created this task.

@jmatazzoni I added the mockups.

When a reviewer who hasn't used this tool comes to it for the first time, the system scans her user talk page and collects the usernames of the 4 users that have most recently edited the page. These usernames are presented in the menu, in alphabetical order, under the heading "Recent user interactions." @Pginer-WMF, Roan says this can be done relatively simply. Does this work for you?

Yes, the approach sounds good to me.

If the reviewer doesn't have a user talk page, or no user interactions have occurred there, no names are presented. @Pginer-WMF, please show a design of what this state looks like.

Similar to the case of categories one option is to extract some initial examples based on the current list of results. That could facilitate workflows such as identifying an interesting edit from the list, and quickly checking more edits by the same user without having to type the user name. However it is not completely clear whether this is worth the effort, so I added an example of an empty state which may be needed in any case.

@Catrope, if there's nothing we can do about this, I guess we can close this ticket.

@Catrope, if there's nothing we can do about this, I guess we can close this ticket.

What is this comment about?

A user is asking for this filter, as a way to exclude a prolific trusted user very visible on RC results.