DurableDashboard.Components.Data.ExecutionFilters (DurableDashboard v0.1.0-rc)

Copy Markdown View Source

Faceted filter bar for the Executions list — a row of facet chips, each opening a popover, in the spirit of an ops console's query builder.

Facets:

  • Workflow — a searchable combobox of the known workflow names (Durable.Query.list_workflows), since names are a small finite set (exact-match free-text search was a trap). Locked to the name on the per-workflow page.
  • Status — multi-select (failed + timeout at once).
  • Time — relative presets (15m … 30d) or a custom UTC range, mapped to the query's :from / :to on inserted_at.
  • ID — execution-id prefix filter; offers a jump when a full UUID is entered.

The bar owns only transient UI state (which facet is open, the combobox search text). The values live in the parent's URL-driven query — every change sends {:execution_filters, patch} to the parent LiveView, which merges it, resets to page 1, and patches the URL. Open/close is tracked server-side (not client JS) so a LiveView patch can't reset an open panel.

Required assigns

  • :base_path, :status_options, :workflows (combobox source)
  • :workflow, :statuses, :range, :from, :to, :exec_id — current values (from the parent query)
  • :locked_workflow? — true on /workflows/:name