feat(ui): wire Export/Import job cards to tenant-scoped counts (#554) - #565
Open
andyguz17 wants to merge 4 commits into
Open
feat(ui): wire Export/Import job cards to tenant-scoped counts (#554)#565andyguz17 wants to merge 4 commits into
andyguz17 wants to merge 4 commits into
Conversation
…snapshot DashboardSnapshot gains export_jobs (running/queued) and import_jobs_active as Options; None means unavailable, never a fabricated zero. StorageDashboardProvider receives the optional bulk-export / bulk-submit job stores from build_app and fills them; read errors log a warning and yield None. Existing exhaustive DashboardSnapshot literals in the UI crate get the two new fields as None.
The Export card shows the tenant's running/queued bulk-export counts and links to /ui/bulk-export; a new Import card shows active bulk-submit jobs and links to /ui/bulk-import. Both render an explicit unavailable state when the snapshot carries None. Adds the stat-grid--5 modifier (5 cols, 3 at <=1100px, existing 2-col rule at <=900px), en/es/de keys, and an HTTP test. Uptime stays a placeholder (#540).
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #554.
What
<a class="card stat stat--link">): Export → /ui/bulk-export, Import → /ui/bulk-import.stat-grid--5modifier (5 cols on desktop, 3 ≤1100px, existing 2-col rule ≤900px).How
BulkExportStorage::count_exports_by_status(tenant, status)(SQLite + Postgres, additive).count_active_exportsis untouched — it still backs the concurrency cap.DashboardSnapshotgainsexport_jobs: Option<ExportJobCounts { running, queued }>andimport_jobs_active: Option<u64>;Nonemeans unavailable.StorageDashboardProvider::with_job_stores(..)receives the optional bulk-export / bulk-submit job stores already built inbuild_appand fills the two fields. running =in-progress, queued =accepted. A read error logs a warning and yieldsNone; no store wired yieldsNonesilently.DashboardMetricscarriesOptions, template + CSS + i18n (en/es/de) + HTTP test; e2e page object and spec cover both cards (stat-card count 4 → 5).Decisions (as requested by the issue)
/metrics; nothing per-tenant is added to/metrics.in-progress/accepted); the card copy is unchanged.Coordination
/ui/bulk-export(Export card link) — merge this after feat(ui): Bulk Export workspace — scoped kick-off, filters, active exports #538. If feat(ui): Bulk Export workspace — scoped kick-off, filters, active exports #538 changes the route name, the href incrates/ui/templates/pages/index.htmland the e2e assertion are the only two places to touch.max-width: 1081pxbreakpoint;app.csshas no such rule — the existing 900px rule plus a new 1100px rule for the 5-col grid are used instead.Testing
cargo fmt --all -- --check, workspacecargo clippy --all-targets --all-features -D warnings(CI allow-list),cargo test -p helios-persistence bulk_export(SQLite unit + Postgres via testcontainers),cargo test -p helios-observability -p helios-rest -p helios-ui,cargo build -p helios-hfs --features ui.hfson SQLite →/uishows Export "0 / running (0 queued)" and Import "0 / active".--list); the full browser run relies on CI (ui-tests.yml) — Chromium could not be downloaded on the dev box.