jobq graph: state filter on /api/jobq/graph + multi-select checkboxes

GET /api/jobq/graph gains a states query param (comma-separated
hive_jobq::State names): narrows the served root groups to the named
states, keeping a group whole (filtering by a root's own state, which
is already its subtree's rolled-up answer). Absent, empty, or fully
unrecognised is the identity filter, matching prior behaviour.

hive-jobq-graph.js gains a row of per-state checkboxes above the tree,
re-fetching the endpoint with the selection on toggle. Default
selection hides Done and Skipped.

Server-side filtering (not client-side hiding) so hive-jobq-graph-update's
node list, and everything downstream of it in builds.js (count pill,
live-log panel), only ever sees what's actually shown.
This commit is contained in:
iris 2026-08-10 22:50:42 +02:00 committed by mara
commit 1e13b88c8c
6 changed files with 236 additions and 27 deletions

View file

@ -10,6 +10,26 @@
color: var(--fg);
}
.jg-filter {
display: flex;
flex-wrap: wrap;
gap: 0.15em 0.9em;
margin: 0 0 0.5em;
font-size: 0.85em;
}
.jg-filter-label {
display: inline-flex;
align-items: center;
gap: 0.3em;
color: var(--muted);
cursor: pointer;
user-select: none;
}
.jg-filter-label:has(input:checked) {
color: var(--fg);
}
.jg-body {
display: flex;
flex-direction: column;