Improve filtering UX for todos

Release notes

You'll soon have more control over your to-do list with our new filtering system. We're introducing a standard search interface with filters for group, project, author, category, and reason, making it easier for you to manage and prioritize your tasks efficiently.

Problem to solve

  • Users can end up with a large volume of to-dos to review
  • Some want to triage specific subsets of their to-dos to facilitate their workflow

Proposal

  • Use our standard search interface for filtering to-dos
  • Introduce the "recent filters" behavior to allow users to quickly apply to recently used filters
  • Allow users to filter to-dos by the fields described below
    • Group
    • Project
    • Author (including author type)
    • Category
    • Reason
  • Sort field options for Category and Reason alphabetically
  • Make the Category and Reason filters update dynamically *
    • * Exception: Hide the "Work items" filter option, as discussed in this thread. Work Items shouldn't appear in the UI at this point, only Issues and Epics should. The Issues filter should return Issues, Tasks, OKRs.
  • Full-text search is not in scope for this issue. It will be addressed in #465359.

Search fields

Field Options Definition Example values
Group All groups the current user has access to The group that the todoable item belongs to "gitlab-org", "gitlab-com"
Project All projects the current user has access to The project that the todoable item belongs to "gitlab", "gitlab-ui"
Author // Author type (both part of the same filter) All users of the current organization // Person | Bot The user that issued the to-do // Whether the author is a person or an internal user / bot "Jeff Tucker", "Amelia Bauerly" // "Person", "Bot"
Category Short-term: What's visible in the "Type" dropdown on the To-Do List (plus "Pipeline") // Future: All available todoable item types The type of the todoable item "Merge request", "Issue"
Reason Short-term: What's visible in the "Action" dropdown on the To-Do List // Future: All available todo actions The action that caused the todo to be generated "Mentioned", "Review requested"

Design

Proposing updating the dropdown filters to the more standard filtered search component. For a first pass, suggest supporting the existing functionality on the To-Do List, though updating the "Type" filter to a "Category" filter, and the "Action" filter to a "Reason" filter. That looks as follows:

Default state First set of filter options "Is" option Group/Project filters 3 character minimum messaging Author + Author type filters Category filter Reason filter
1 2__1_ 3 4 5 6 7 8

Possible additional updates (depending on level of effort; to be assessed by engineering):

  • Introducing the "Author type" filter as a sub-option on the Author filter
  • Improving the performance of the group/project/assignee filters
  • Updating the messaging around the "3 character minimum" in the group/project menus
  • Making the Category and Reason filters update dynamically

Figma // Prototype

Edited by Amelia Bauerly