Implement Owner Panel features and maintenance mode handling

- Introduced the Owner Panel with new routes and UI components for managing guilds, user blacklists, feature flags, and bot presence.
- Added maintenance mode functionality to prevent non-owner users from executing commands during maintenance periods.
- Enhanced localization with new keys for Owner Panel features in both English and German.
- Updated job processing to include a presence refresh job, ensuring the bot's status is regularly updated.
- Improved environment configuration to support owner user IDs for access control.
This commit is contained in:
smueller
2026-07-22 16:10:30 +02:00
parent bcbfa07697
commit 8a8aefb4fb
42 changed files with 2385 additions and 50 deletions

View File

@@ -518,7 +518,97 @@
"themeDark": "Dunkel",
"themeLight": "Hell",
"logout": "Abmelden",
"loggingOut": "Meldet ab…"
"loggingOut": "Meldet ab…",
"ownerPanel": "Owner-Panel"
},
"owner": {
"nav": {
"title": "Owner",
"backToDashboard": "Zum Dashboard",
"overview": "Übersicht",
"guilds": "Server",
"users": "User-Blacklist",
"flags": "Feature-Flags",
"presence": "Präsenz",
"team": "Team",
"jobs": "Jobs",
"changelog": "Changelog",
"audit": "Audit"
},
"common": {
"empty": "Keine Einträge.",
"noteOptional": "Notiz (optional)"
},
"overview": {
"title": "Owner-Übersicht",
"subtitle": "Globale Bot-Kennzahlen und letzte Owner-Aktionen.",
"guilds": "Server",
"blacklistedUsers": "Gesperrte User",
"blacklistedGuilds": "Gesperrte Server",
"maintenance": "Wartungsmodus",
"uptime": "WebUI-Uptime",
"recentAudit": "Letzte Owner-Aktivität",
"emptyAudit": "Noch keine Owner-Aktionen.",
"viewAudit": "Audit öffnen",
"changelog": "Changelog",
"emptyChangelog": "Noch keine Changelog-Einträge.",
"manageChangelog": "Changelog verwalten"
},
"guilds": {
"title": "Server-Verwaltung",
"subtitle": "Server suchen, blacklisten oder den Bot entfernen.",
"search": "Server-ID suchen…",
"blacklisted": "Blacklist",
"blacklist": "Blacklisten",
"unblacklist": "Blacklist entfernen",
"leave": "Server verlassen",
"leaveConfirm": "Bot wirklich von diesem Server entfernen?"
},
"users": {
"title": "User-Blacklist",
"subtitle": "Global gesperrte Discord-User (Bot ignoriert sie überall).",
"userIdPlaceholder": "Discord User-ID"
},
"flags": {
"title": "Feature-Flags",
"subtitle": "Module global steuern und Rollouts konfigurieren.",
"keyPlaceholder": "Flag-Key (z. B. new.module)",
"rollout": "Rollout %"
},
"presence": {
"title": "Bot-Präsenz",
"subtitle": "Status, Aktivität und Wartungsmodus.",
"status": "Status",
"activityType": "Aktivitätstyp",
"activityText": "Aktivitätstext",
"rotating": "Rotierende Nachrichten (eine pro Zeile)",
"maintenanceMode": "Wartungsmodus aktiv",
"maintenanceMessage": "Wartungsnachricht"
},
"team": {
"title": "Team",
"subtitle": "Weitere Owner/Admins mit abgestuften Rechten.",
"bootstrap": "Bootstrap-Owner (OWNER_USER_IDS)",
"noBootstrap": "Keine Bootstrap-Owner in OWNER_USER_IDS gesetzt."
},
"jobs": {
"title": "Jobs & Migrationen",
"subtitle": "BullMQ-Queues und Prisma-Migrationsstatus.",
"queues": "Queues",
"migrations": "Migrationen",
"retryFailed": "Fehlgeschlagene neu starten"
},
"changelog": {
"title": "Changelog",
"subtitle": "Versionshinweise für das Dashboard.",
"version": "Version",
"titleField": "Titel",
"body": "Inhalt"
},
"audit": {
"title": "Owner-Audit",
"subtitle": "Alle Owner-Aktionen im globalen Audit-Log."
}
},
"serverSwitcher": {
"switchServer": "Server wechseln",