Skip to content

Query bar with refresh/cancel and a results line with Show, Sort and locale counts - #3110

Open
ramonsmits wants to merge 6 commits into
ramon/audit-capability-probefrom
ramon/audit-query-bar
Open

Query bar with refresh/cancel and a results line with Show, Sort and locale counts#3110
ramonsmits wants to merge 6 commits into
ramon/audit-capability-probefrom
ramon/audit-query-bar

Conversation

@ramonsmits

Copy link
Copy Markdown
Member

Stacked on:

Reorganizes the All Messages query surface so the whole query is one row and the result-presentation controls sit with the results.

image
  • Show and Sort move to the results line, right of Showing X of Y result(s); the filters panel keeps only the query inputs (search, endpoint, time range)
  • Locale-formatted counts: Showing 100 of 158,736,340 result(s) instead of a nine-digit blob. ResultsCount is shared, so heartbeats and throughput pick this up too
  • Refresh lives in the query bar and doubles as Cancel while a query runs (Cancel · 3.2s), aborting the query through the store; the abort propagates through ServiceControl and terminates the database-side query. The results line reports took 2.7 s
  • Auto-refresh countdown ring inside the refresh button while auto-refresh is armed and idle

Review feedback applied: the countdown is exposed to assistive tech as text. The ring is decorative (aria-hidden); a visually hidden role="timer" "Next auto refresh in N seconds" describes the button, so the button keeps the stable name "Refresh" and nothing is announced on every tick.

Show (page size) and Sort are result-presentation controls, not query
filters — they now sit right of 'Showing X of Y result(s)' instead of
competing with the query inputs for space in the filters panel, which
also removes their awkward wrapping. The filters panel keeps the query
inputs only (search, endpoint, time range), left-aligned; the rule that
pushed the last filter to the far right is gone.
Large audit stores easily reach nine-digit totals; 'Showing 100 of
158736340 result(s)' is unreadable. Both numbers now go through
Intl.NumberFormat with the user's locale (158,736,340 / 158.736.340).
ResultsCount is shared, so the heartbeats views and the throughput
queue list pick this up as well.
The refresh cluster occupied its own row above the filters; it now sits
right-aligned inside the query bar so the whole query surface is one
row. While a query is in flight the button flips from Refresh to an
enabled Cancel that ticks the elapsed time (Cancel · 3.2s) and aborts
the running query through the store — the abort propagates through
ServiceControl and terminates the database-side query. Once results
land, the results line reports what they cost: 'Showing 100 of
158,736,340 result(s) · took 2.7 s'.

ActionButton hard-coupled loading to disabled, which would have left
the button dead exactly when a user most wants an escape hatch; it
gains disableOnLoading (default true, existing uses unchanged) and the
refresh/cancel button opts out. The spec stubs ActionButton with the
real disabled semantics so that coupling can't silently return.
While auto-refresh is armed and no query runs, the refresh arrow is
replaced by a small ring that depletes toward the next refresh, with
the exact remaining seconds as its tooltip; during a query the button
shows the usual spinner and Cancel. The ring mirrors FontAwesome's
icon geometry — ActionButton gains a named icon slot so custom icons
are flex children with the same centering as FAIcon, and the ring's
circle fills its box like a glyph — measured pixel-identical to the
arrow state in both axes. Reduced motion disables the animation.
The countdown ring inside the refresh button was an SVG carrying a
label that changed every second, which became part of the button's
accessible name. The ring is now purely decorative (aria-hidden) and the
countdown is a visually hidden "Next auto refresh in N seconds" timer
that describes the button: read together with it, not announced on
every tick. The button keeps its stable name "Refresh".
Leaving the view clears the rows; the "took X s" that described them
must not survive to the next visit.
@ramonsmits
ramonsmits force-pushed the ramon/audit-query-bar branch from 52b16e7 to 9e23d43 Compare September 7, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Improvement Improvement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants