Skip to content

console: filter tasks list #131

Open
@hawkw

Description

@hawkw

It would be nice to be able to filter which tasks are displayed in the tasks list.

Some ways we might want to filter the tasks list:

  • By name (with a regex?)
  • By target (with a regex?)
  • By fields:
    • by the presence of a field with a given name
    • by the value of a field with a given name (regex?)

Since we would want to allow filtering on different columns in the task list, we would need some UI for selecting which column is being filtered on, as well as for writing the actual filter. Here's a simple proposal:

  • When the user presses a particular key, a text entry box is opened to type in a filter pattern
  • Using the arrow keys in the filter entry mode selects which column is filtered on, rather than which column sorts the task list
  • pressing some other key (enter?) adds the filter, and returns the user to the mode where the arrow keys select the column to sort by

Questions:

  • Do we want to support multiple filters? We probably do, but that complicates the UI
    • Opening the filter entry box again would then create a new filter, rather than editing the current filter
    • There would need to be some way to edit an existing filter as well
    • Perhaps we should add a UI box that lists all the current filters?
    • Some kind of command for clearing all filters
  • How to combine patterns in filters? e.g. users might want to have OR filters or AND filters...

Most of these questions are things we can punt on for an MVP implementation, especially if we only allow a single filter at a time. But, we'll want to figure them out eventually.

UI inspiration:

  • htop (which only allows filtering on one column, the process's name):
    image
  • atuin history search:
    image

Metadata

Metadata

Assignees

No one assigned

    Labels

    C-consoleCrate: console.E-hardEffort: hard.S-featureSeverity: feature. This is adding a new feature.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions