feat: Frontend gap closure — Schedules, Alerts, Migration, Changelog views

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 <noreply@anthropic.com>
This commit is contained in:
Vantz Stockwell
2026-02-15 21:20:40 -05:00
parent 8cd792eb75
commit 4c648783a2
14 changed files with 1327 additions and 40 deletions

View File

@@ -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 `<RouterView>` 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/`):**