From a459d21a6510ba0c91fd9598ea576d846bc52686 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Thu, 28 May 2026 08:10:04 -0400 Subject: [PATCH] feat(dashboards): 1600px max-width, richer Downloads filters, needs-attention + sticky headers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Operator-flagged 2026-05-28: the Subscriptions/Downloads dashboards were full-bleed and thin on filtering. Chosen via AskUserQuestion. **Layout** - SubscriptionsView capped at a centered max-width 1600px (covers all three subtabs) so rows aren't a mile wide on ultrawide monitors. - Sticky control headers on both tabs (top: 48px, below the top nav, opaque bg) so filters/stat-chips stay reachable while scrolling a long list. **Downloads filters (all four requested)** - Stat chips are now clickable filters: click Queued/Running/Completed/ Failed/Skipped to filter the list to that status; the active chip is outlined + elevated; re-click clears. - Free-text search box over the loaded events (artist / platform / error substring). - Artist filter: the filter popover's numeric "Source ID" field is replaced with an artist autocomplete (sources.autocompleteArtist → artist_id, which /api/downloads already supports). Pill shows the artist name. - "Show no-change scans" toggle (default OFF): hides status=ok/skipped rows with 0 files (the scheduled scans that found nothing) so real downloads + failures stand out. **Subscriptions** - "Needs attention" quick-filter chip: one click to show only artists with sources that have errors OR have never been checked; chip shows the count and disables the status dropdown while active. Frontend-only — backend filter params (status/artist_id/date) and the /api/downloads endpoint already supported everything. --- .../subscriptions/DownloadStatChips.vue | 13 ++- .../subscriptions/DownloadsFilterPopover.vue | 64 ++++++++++--- .../components/subscriptions/DownloadsTab.vue | 95 +++++++++++++++---- .../subscriptions/SubscriptionsTab.vue | 36 ++++++- frontend/src/views/SubscriptionsView.vue | 8 +- 5 files changed, 184 insertions(+), 32 deletions(-) diff --git a/frontend/src/components/subscriptions/DownloadStatChips.vue b/frontend/src/components/subscriptions/DownloadStatChips.vue index ce5c975..e2e3ab1 100644 --- a/frontend/src/components/subscriptions/DownloadStatChips.vue +++ b/frontend/src/components/subscriptions/DownloadStatChips.vue @@ -3,9 +3,11 @@ {{ s.label }} {{ stats[s.key] ?? 0 }} @@ -16,7 +18,11 @@ diff --git a/frontend/src/components/subscriptions/DownloadsTab.vue b/frontend/src/components/subscriptions/DownloadsTab.vue index 750f9f6..98dce0d 100644 --- a/frontend/src/components/subscriptions/DownloadsTab.vue +++ b/frontend/src/components/subscriptions/DownloadsTab.vue @@ -1,20 +1,41 @@