From d35605ab73726b37f594c5a1b3bfa4c86546d883 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Wed, 20 May 2026 20:46:48 -0400 Subject: [PATCH] feat(fc3c): /downloads view + DownloadEventRow + DownloadDetailModal + FilterPills Co-Authored-By: Claude Opus 4.7 (1M context) --- .../downloads/DownloadDetailModal.vue | 117 ++++++++++++++++++ .../components/downloads/DownloadEventRow.vue | 82 ++++++++++++ .../src/components/downloads/FilterPills.vue | 22 ++++ frontend/src/router.js | 6 +- frontend/src/views/DownloadsView.vue | 70 +++++++++++ 5 files changed, 294 insertions(+), 3 deletions(-) create mode 100644 frontend/src/components/downloads/DownloadDetailModal.vue create mode 100644 frontend/src/components/downloads/DownloadEventRow.vue create mode 100644 frontend/src/components/downloads/FilterPills.vue create mode 100644 frontend/src/views/DownloadsView.vue diff --git a/frontend/src/components/downloads/DownloadDetailModal.vue b/frontend/src/components/downloads/DownloadDetailModal.vue new file mode 100644 index 0000000..5ee4823 --- /dev/null +++ b/frontend/src/components/downloads/DownloadDetailModal.vue @@ -0,0 +1,117 @@ + + + + + diff --git a/frontend/src/components/downloads/DownloadEventRow.vue b/frontend/src/components/downloads/DownloadEventRow.vue new file mode 100644 index 0000000..a4360c0 --- /dev/null +++ b/frontend/src/components/downloads/DownloadEventRow.vue @@ -0,0 +1,82 @@ + + + + + diff --git a/frontend/src/components/downloads/FilterPills.vue b/frontend/src/components/downloads/FilterPills.vue new file mode 100644 index 0000000..20ed1bd --- /dev/null +++ b/frontend/src/components/downloads/FilterPills.vue @@ -0,0 +1,22 @@ + + + diff --git a/frontend/src/router.js b/frontend/src/router.js index 31224b4..ba5ea86 100644 --- a/frontend/src/router.js +++ b/frontend/src/router.js @@ -1,5 +1,4 @@ import { createRouter, createWebHistory, createMemoryHistory } from 'vue-router' -import PlaceholderView from './views/PlaceholderView.vue' import SettingsView from './views/SettingsView.vue' import GalleryView from './views/GalleryView.vue' import ShowcaseView from './views/ShowcaseView.vue' @@ -9,6 +8,7 @@ import SeriesManageView from './views/SeriesManageView.vue' import SeriesReaderView from './views/SeriesReaderView.vue' import SubscriptionsView from './views/SubscriptionsView.vue' import CredentialsView from './views/CredentialsView.vue' +import DownloadsView from './views/DownloadsView.vue' // The application's front door. `/` redirects here. Changing the front door // is a one-line edit (e.g. '/gallery' or '/tags'). @@ -32,8 +32,8 @@ const routes = [ // FC-3: subscription backbone { path: '/subscriptions', name: 'subscriptions', component: SubscriptionsView, meta: { title: 'Subscriptions' } }, - { path: '/credentials', name: 'credentials', component: CredentialsView, meta: { title: 'Credentials' } }, - { path: '/downloads', name: 'downloads', component: PlaceholderView, meta: { title: 'Downloads' } } + { path: '/credentials', name: 'credentials', component: CredentialsView, meta: { title: 'Credentials' } }, + { path: '/downloads', name: 'downloads', component: DownloadsView, meta: { title: 'Downloads' } } ] // Browser uses HTML5 history; non-browser (Vitest/SSR) falls back to memory diff --git a/frontend/src/views/DownloadsView.vue b/frontend/src/views/DownloadsView.vue new file mode 100644 index 0000000..0979c98 --- /dev/null +++ b/frontend/src/views/DownloadsView.vue @@ -0,0 +1,70 @@ + + + + +