#442: audit Action filter — searchable group-tree picker with group-level selection #443

Merged
Cordy merged 3 commits from action-picker-442 into main 2026-09-06 22:47:18 +00:00
Owner

Closes #442. Built per the approved audit-action-picker mockup.

  • Backend (TDD, compile-red witnessed): audit.Filter gains Actions — an OR-set matched beside the untouched single Action field (pinned by test: OR-set returns exactly its members' events, single stays exact-match, empty means unconstrained). The query endpoint accepts a comma-separated actions= param; action= stays for compatibility.
  • Frontend: the 52-option select becomes the picker — chips on the closed button ("Any action" / "Trash · all" / "{n} actions"), popover with the nine registry groups collapsed by default (9 rows, not 52), tri-state group checkboxes where a group tick selects everything in it, type-to-filter with match highlighting and auto-expand, Esc clears search first / closes second, click-outside closes, "n of 52 selected" footer with Clear. Reset clears the selection too.
  • Groups expand client-side into their verbs, so the server stays group-agnostic and the #433 registry remains the single vocabulary source — the scanner tripwire covers everything unchanged. 5 new i18n keys ×4 locales. CHANGELOG v0.6.136.
Closes #442. Built per the approved audit-action-picker mockup. - **Backend (TDD, compile-red witnessed):** `audit.Filter` gains `Actions` — an OR-set matched beside the untouched single `Action` field (pinned by test: OR-set returns exactly its members' events, single stays exact-match, empty means unconstrained). The query endpoint accepts a comma-separated `actions=` param; `action=` stays for compatibility. - **Frontend:** the 52-option select becomes the picker — chips on the closed button ("Any action" / "Trash · all" / "{n} actions"), popover with the nine registry groups collapsed by default (9 rows, not 52), tri-state group checkboxes where a group tick selects everything in it, type-to-filter with match highlighting and auto-expand, Esc clears search first / closes second, click-outside closes, "n of 52 selected" footer with Clear. Reset clears the selection too. - Groups expand client-side into their verbs, so the server stays group-agnostic and the #433 registry remains the single vocabulary source — the scanner tripwire covers everything unchanged. 5 new i18n keys ×4 locales. CHANGELOG v0.6.136.
Compile-red against main: Actions does not exist on Filter. The query
page's group-tree picker sends several verbs at once (a group tick is
"all trash-related"); any listed verb matches, and the single Action
field keeps working unchanged beside it.
#442: audit Action filter as searchable group-tree picker with group-level selection
All checks were successful
ci / test-and-build (pull_request) Successful in 43s
a9543d1ba5
audit.Filter gains Actions, an OR-set matched beside the single Action field; the query endpoint accepts a comma-separated actions= param (action= kept for compatibility). The frontend replaces the 52-option select with the approved picker: chips on the closed button, popover with the nine registry groups collapsed by default, tri-state group checkboxes (a group tick is all-of-group), type-to-filter with highlight, Esc/click-outside handling, 5 new i18n keys x4. Groups expand client-side so the server stays group-agnostic and the #433 registry remains the single vocabulary source.

TDD: Filter.Actions witnessed compile-red on the runner; all green after splice.
Cordy merged commit 82b03a1982 into main 2026-09-06 22:47:18 +00:00
Cordy deleted branch action-picker-442 2026-09-06 22:47:21 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#443
No description provided.