From 4c648783a2b899f3f9749c6bac570b5af9a690cd Mon Sep 17 00:00:00 2001 From: Vantz Stockwell Date: Sun, 15 Feb 2026 21:20:40 -0500 Subject: [PATCH] =?UTF-8?q?feat:=20Frontend=20gap=20closure=20=E2=80=94=20?= =?UTF-8?q?Schedules,=20Alerts,=20Migration,=20Changelog=20views?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Implements missing frontend views and API integrations: New Views: - SchedulesView: CRUD for scheduled tasks (restart/announcement/command/plugin_reload) - MigrationView: Export/import interface with file upload and history tracking - ChangelogView: Paginated changelog feed with category badges - ForgotPasswordView: Password reset flow with email submission - AlertsView: Alert config dashboard with threshold settings and history Component Updates: - ErrorBoundary: Global error handler with retry functionality - DashboardLayout: Mobile responsive sidebar, permission-based nav, new menu items - ServerInfoView: Complete rewrite for public server info display Infrastructure: - useApi: Token refresh interceptor with 401 retry and infinite loop prevention - plugins store: Implemented all stubbed methods with real API calls - auth store: Added hasPermission() helper for RBAC UI visibility - Router: Added new routes with catch-all fallback Purpose: Closes frontend implementation gaps. Hardens auth flow, improves mobile UX, enables server automation scheduling, alert configuration, and data migration tools. Co-Authored-By: Claude Opus 4.6 --- CHANGELOG.md | 29 ++ frontend/src/App.vue | 5 +- frontend/src/components/ErrorBoundary.vue | 37 +++ .../src/components/layout/DashboardLayout.vue | 90 ++++-- frontend/src/composables/useApi.ts | 57 +++- frontend/src/router/index.ts | 32 +++ frontend/src/stores/auth.ts | 30 ++ frontend/src/stores/plugins.ts | 43 ++- frontend/src/views/admin/AlertsView.vue | 232 ++++++++++++++++ frontend/src/views/admin/ChangelogView.vue | 112 ++++++++ frontend/src/views/admin/MigrationView.vue | 191 +++++++++++++ frontend/src/views/admin/SchedulesView.vue | 260 ++++++++++++++++++ .../src/views/auth/ForgotPasswordView.vue | 102 +++++++ frontend/src/views/public/ServerInfoView.vue | 147 +++++++++- 14 files changed, 1327 insertions(+), 40 deletions(-) create mode 100644 frontend/src/components/ErrorBoundary.vue create mode 100644 frontend/src/views/admin/AlertsView.vue create mode 100644 frontend/src/views/admin/ChangelogView.vue create mode 100644 frontend/src/views/admin/MigrationView.vue create mode 100644 frontend/src/views/admin/SchedulesView.vue create mode 100644 frontend/src/views/auth/ForgotPasswordView.vue diff --git a/CHANGELOG.md b/CHANGELOG.md index ac238b6..7daedce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,35 @@ All notable changes to this project will be documented in this file. ## [Unreleased] +### Added (Frontend Gap Closure — 2026-02-15) + +**New Views:** +- `SchedulesView.vue` — Scheduled task management with CRUD operations for server automation (restart, announcement, command, plugin reload tasks) +- `MigrationView.vue` — Data export/import interface with export history and file upload for server migration +- `ChangelogView.vue` — Paginated platform changelog feed with category badges and version display +- `ForgotPasswordView.vue` — Password reset flow with email submission and success state +- `AlertsView.vue` — Alert configuration dashboard with threshold sliders, notification channel toggles, and alert history table + +**Component Updates:** +- `ErrorBoundary.vue` — Global error handler component with retry functionality +- `DashboardLayout.vue` — Mobile responsive sidebar with hamburger menu, permission-based nav visibility, and new nav items (Schedules, Alerts, Changelog) +- `ServerInfoView.vue` — Complete rewrite for public server info page with header image, MOTD, wipe schedule, mods list, and Discord integration + +**Store & API Integration:** +- `plugins.ts` — Implemented all stubbed methods with real API calls (fetchPlugins, installPlugin, uninstallPlugin, reloadPlugin, updatePluginConfig, searchPlugins) +- `useApi.ts` — Token refresh interceptor with automatic retry on 401, prevents infinite refresh loops +- `auth.ts` — Added `hasPermission()` helper with basic permission checking + +**Router:** +- Added routes: `/schedules`, `/migration`, `/changelog`, `/alerts`, `/forgot-password` +- Added catch-all route redirecting to home +- All new routes under authenticated dashboard layout + +**App Structure:** +- Wrapped root `` with `ErrorBoundary` for global error handling + +**Purpose:** Closes frontend implementation gaps identified during Phase 4. Implements critical missing views (scheduled tasks, alerts, migration tools), hardens auth flow with token refresh, adds permission-based UI visibility, and improves mobile UX with responsive sidebar. + ### Added (NestJS Backend — Core Modules) **Auth Module (`modules/auth/`):** diff --git a/frontend/src/App.vue b/frontend/src/App.vue index a003230..321eb9f 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -1,9 +1,12 @@ diff --git a/frontend/src/components/ErrorBoundary.vue b/frontend/src/components/ErrorBoundary.vue new file mode 100644 index 0000000..e92d806 --- /dev/null +++ b/frontend/src/components/ErrorBoundary.vue @@ -0,0 +1,37 @@ + + + diff --git a/frontend/src/components/layout/DashboardLayout.vue b/frontend/src/components/layout/DashboardLayout.vue index 46d0643..24c29b0 100644 --- a/frontend/src/components/layout/DashboardLayout.vue +++ b/frontend/src/components/layout/DashboardLayout.vue @@ -1,4 +1,5 @@