Skip to content

feat: sortable columns on all dashboard tables #13

@maxdraki

Description

@maxdraki

Request

Add clickable column sorting to the data tables across the dashboard UI.

Tables to cover

  • Cron Monitoring (/crons) — sort by: Job, Last Status, Last Run, Avg Duration, Success Rate, Total Runs, Consec. Errors
  • Traces (/traces) — sort by: Name, Status, Duration, Started At
  • Models (/models) — sort by: Model, Requests, Tokens, Cost, p50/p95 Latency
  • Health — sort by: Check, Status, Last Checked
  • Logs — sort by: Level, Timestamp, Message

Implementation

Client-side JS sort (no server round-trip needed — data is already loaded):

  1. Add data-sort attributes to <th> elements identifying the sort key and type (string, number, date)
  2. On click: toggle asc/desc, re-sort the <tbody> rows by the column value, update a sort indicator (▲▼) in the header
  3. Persist sort state in sessionStorage per table so it survives the 10s auto-refresh
  4. Default sort per table:
    • Crons: Last Run descending (most recent first)
    • Traces: Started At descending
    • Models: Total Requests descending

UX notes

  • Sort indicator should be visible but subtle (inline ▲▼ next to column label)
  • Clicking the same column again reverses order
  • Unsorted state not needed — always show a sort direction
  • Should work alongside the existing 10s auto-refresh (re-apply current sort after data reload)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions