migrate Jobs table to data_table::render with Progress/Duration/Badge renderers (issue 0081-J)

- Replace inline ImGui::BeginTable (6 cols) with data_table::render for 5 data
  columns: status (Badge), enricher (Text), target (Text), progress (Progress
  0..1), time_ms (Duration warn=1000ms error=10000ms).
- Add AppState::jobs_dt_state (data_table::State) for persistent filter/sort state.
- Keep Cancel/Delete action buttons via separate small ImGui::BeginTable (option a
  from 0081-J spec); data_table::State does not expose selected_row_idx yet.
  TODO(Phase 2): migrate actions to selected-row toolbar when State exposes it.
- Pre-filter cells by g_jobs_cache.filter_idx before passing to data_table so the
  combo filter and the declarative table filter are both respected.
- Linux build: OK. Tests: 125/125 pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-15 16:45:39 +02:00
parent 6109911a3d
commit 6f05e4bf60
2 changed files with 279 additions and 111 deletions
+4
View File
@@ -252,6 +252,10 @@ struct AppState {
// Persiste filters/sort/stages entre frames; uno por instancia de render.
data_table::State table_dt_state;
// data_table::State para el panel Jobs (issue 0081-J Phase 1).
// Persiste filters/sort/stages entre frames para la tabla de jobs.
data_table::State jobs_dt_state;
// ---- Type Editor (issue 0007) ------------------------------------------
// Draft del editor de tipos. Se inicializa con una copia de parsed_types
// tras cargar el grafo. Save reescribe `types.yaml` y dispara