Skip to content

feat: multi-select table status filters - #2125

Merged
alanpeixinho merged 4 commits into
kernelci:mainfrom
profusion:feat/table-status-multi-select-filters
Sep 23, 2026
Merged

alanpeixinho merged 4 commits into
kernelci:mainfrom
profusion:feat/table-status-multi-select-filters

Conversation

@alanpeixinho

Copy link
Copy Markdown
Contributor

What it is

Replaces single-value table status filters with multi-select pills (success / failed / inconclusive) on builds, boots, and tests tables and related build/issue detail views. Adds an All control (full selection or clear), shared FilterButton styling, and URL tableFilter arrays with legacy query support. Improves TableTopFilters layout on narrow viewports.

Closes #1428

How to test

  1. Open tree or hardware details → Builds / Boots / Tests tabs.
  2. Toggle status pills; confirm multiple selections and table filtering.
  3. Use All to select all statuses, then again to clear (empty table).
  4. Reload or copy the URL; confirm tf params round-trip.
  5. On a narrow viewport (or device toolbar), confirm status pills and search stack readably and remain usable without horizontal clutter.

Made with Cursor

@alanpeixinho

Copy link
Copy Markdown
Contributor Author
status_filter

Comment thread dashboard/src/components/Table/TableStatusFilter.tsx Outdated
Comment thread dashboard/src/utils/tableStatusFilter.ts Outdated
<div className="ml-auto">
<div className="flex justify-end">
<TableGroupingControls {...groupingControls} />
</div>

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this used to sit on the same row as the filters (ml-auto). now it's always on a second row, even on wide screens.

the mobile wrap makes sense, but on desktop the grouping controls jumping down looks like a regression. can we keep them on the first row when there's space?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, that was the first version. The grouping controls now stay on the first row: the container is sm:flex-row sm:flex-wrap with sm:ml-auto on the controls, so they only wrap when there is genuinely no space.

Pushed one more commit on top: the status filter and search are now wrapped in a contents sm:flex cluster, so on wide screens they behave as a single item (search never splits away from the pills) while on small screens contents keeps them as direct flex children, letting search stay order-last right above the table.

@alanpeixinho
alanpeixinho marked this pull request as ready for review September 22, 2026 21:12
* Multi-select success/failed/inconclusive pills with shared FilterButton styling
* All control toggles full selection or clears every status filter
* Persist tableFilter as URL arrays with minify support and legacy query compatibility
* Apply filters across builds, boots, and tests tables and related detail pages
* Improve TableTopFilters layout for narrow viewports

Closes kernelci#1428

Signed-off-by: Alan Peixinho <alan.peixinho@profusion.mobi>
* Drop the All chip; junk URL values fall back to the default selection
* Share pill styling: FilterButton for toggles, PillButton for grouping actions
* Keep grouping on the first row; on mobile order status, grouping, then search
* Pass resetScroll: false so status chips do not jump the page
@alanpeixinho
alanpeixinho force-pushed the feat/table-status-multi-select-filters branch from d7019e2 to 1a5732a Compare September 23, 2026 12:58
Wrap the status filter and search in a display: contents cluster so the
grouping controls stay on the first row and search keeps sitting right
above the table on small screens.

Signed-off-by: Alan Peixinho <alan.peixinho@profusion.mobi>
The contents/sm:flex classes already show the breakpoint split.

Signed-off-by: Alan Peixinho <alan.peixinho@profusion.mobi>

@felipebergamin felipebergamin left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looking good.

Image Image

@alanpeixinho
alanpeixinho added this pull request to the merge queue Sep 23, 2026
Merged via the queue into kernelci:main with commit f800582 Sep 23, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Fix build status filter and search box for small screens

2 participants