refactor(admin): align admin ui with app design language

- dashboard: card grid replaced by status strip + nav-tile section + list
- nav-tile promoted to shared component
- stat tiles and usage screen de-carded, sections divided like settings
- hub run tournament back to a list row
- telemetry link restored in tools list
This commit is contained in:
2026-08-25 22:24:36 -07:00
parent 895737febc
commit 1cc75591fa
22 changed files with 511 additions and 799 deletions
+51 -82
View File
@@ -153,7 +153,7 @@ msgstr "{0}ms"
msgid "{count, plural, one {Players (#)} other {Players (#)}}"
msgstr "{count, plural, one {Spieler (#)} other {Spieler (#)}}"
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:134
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:115
#: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:24
msgid "{count, plural, one {Teams (#)} other {Teams (#)}}"
msgstr "{count, plural, one {Teams (#)} other {Teams (#)}}"
@@ -355,7 +355,7 @@ msgstr "2. Frühere Abgabe"
msgid "2nd place"
msgstr "2. Platz"
#: src/features/telemetry/components/usage-screen.tsx:256
#: src/features/telemetry/components/usage-screen.tsx:258
msgid "30d"
msgstr "30 T"
@@ -371,7 +371,7 @@ msgstr "3. Platz"
msgid "5s"
msgstr "5 s"
#: src/features/telemetry/components/usage-screen.tsx:255
#: src/features/telemetry/components/usage-screen.tsx:257
msgid "7d"
msgstr "7 T"
@@ -420,10 +420,6 @@ msgstr "Konto erfolgreich erstellt!"
msgid "Active device: {0}"
msgstr "Aktives Gerät: {0}"
#: src/features/admin/components/dashboard/usage-card.tsx:39
msgid "Active players"
msgstr "Aktive Spieler"
#: src/features/activities/components/activities-table.tsx:159
msgid "Activity Details"
msgstr "Aktivitätsdetails"
@@ -441,7 +437,7 @@ msgid "Add Team"
msgstr "Team hinzufügen"
#: src/app/routes/_authed/admin.tsx:15
#: src/app/routes/_authed/admin/index.tsx:22
#: src/app/routes/_authed/admin/index.tsx:27
#: src/features/core/hooks/use-links.ts:37
msgid "Admin"
msgstr "Admin"
@@ -564,7 +560,7 @@ msgstr "Ø Sieg-Marge"
msgid "Award Badge"
msgstr "Abzeichen verleihen"
#: src/features/admin/components/dashboard/tools-list.tsx:54
#: src/features/admin/components/dashboard/tools-list.tsx:60
msgid "Award Badges"
msgstr "Abzeichen verleihen"
@@ -598,15 +594,15 @@ msgstr "Zurück"
msgid "Badge awarded to {playerName}"
msgstr "Abzeichen an {playerName} verliehen"
#: src/features/admin/components/dashboard/tools-list.tsx:85
#: src/features/admin/components/dashboard/tools-list.tsx:91
msgid "Badge recalculation failed. Check the server logs."
msgstr "Abzeichen-Neuberechnung fehlgeschlagen. Prüfe die Server-Logs."
#: src/features/admin/components/dashboard/tools-list.tsx:38
#: src/features/admin/components/dashboard/tools-list.tsx:39
msgid "Badge recalculation is already running"
msgstr "Abzeichen-Neuberechnung läuft bereits"
#: src/features/admin/components/dashboard/tools-list.tsx:37
#: src/features/admin/components/dashboard/tools-list.tsx:38
msgid "Badge recalculation started in the background"
msgstr "Abzeichen-Neuberechnung im Hintergrund gestartet"
@@ -631,13 +627,13 @@ msgstr "Zirkus"
msgid "Both teams cannot have 10 cups"
msgstr "Beide Teams können nicht 10 Becher haben"
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:106
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:87
#: src/features/tournaments/components/upcoming-tournament/index.tsx:151
msgid "Bracket"
msgstr "Turnierbaum"
#: src/app/routes/_authed/admin/preview.tsx:13
#: src/features/admin/components/dashboard/tools-list.tsx:96
#: src/features/admin/components/dashboard/tools-list.tsx:102
msgid "Bracket Preview"
msgstr "Turnierbaum-Vorschau"
@@ -654,7 +650,7 @@ msgstr "Brutal"
msgid "CA"
msgstr "CA"
#: src/features/admin/components/dashboard/now-strip.tsx:52
#: src/features/admin/components/dashboard/status-strip.tsx:67
msgid "Calls today"
msgstr "Aufrufe heute"
@@ -720,16 +716,12 @@ msgstr "Ausgewählten Spieler entfernen"
msgid "Client error spike"
msgstr "Anstieg von Client-Fehlern"
#: src/features/admin/components/dashboard/errors-card.tsx:21
msgid "Client errors"
msgstr "Client-Fehler"
#: src/features/telemetry/components/usage-screen.tsx:203
msgid "Client errors per day"
msgstr "Client-Fehler pro Tag"
#: src/components/sheet/modal.tsx:35
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:169
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:150
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:36
msgid "Close"
msgstr "Schließen"
@@ -883,15 +875,10 @@ msgstr "Becher erzielt"
msgid "Custom Hex Code"
msgstr "Benutzerdefinierter Hex-Code"
#: src/features/admin/components/dashboard/usage-card.tsx:41
#: src/features/telemetry/components/usage-screen.tsx:159
msgid "Daily active players"
msgstr "Täglich aktive Spieler"
#: src/features/admin/components/dashboard/usage-card.tsx:47
msgid "Daily page views"
msgstr "Tägliche Seitenaufrufe"
#: src/features/settings/components/color-scheme-picker.tsx:39
msgid "Dark"
msgstr "Dunkel"
@@ -947,7 +934,7 @@ msgstr "Nachfolgende Matches wurden zurückgesetzt, da sich durch die Korrektur
msgid "Duration"
msgstr "Dauer"
#: src/features/telemetry/components/usage-screen.tsx:233
#: src/features/telemetry/components/usage-screen.tsx:235
msgid "Duration p50 / p95"
msgstr "Dauer p50 / p95"
@@ -970,12 +957,12 @@ msgstr "Match bearbeiten"
msgid "Edit match score"
msgstr "Spielstand bearbeiten"
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:114
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:95
msgid "Edit Prediction"
msgstr "Tipp bearbeiten"
#: src/features/tournaments/components/manage-tournament.tsx:65
#: src/features/tournaments/components/manage-tournament.tsx:92
#: src/features/tournaments/components/manage-tournament.tsx:56
#: src/features/tournaments/components/manage-tournament.tsx:83
msgid "Edit Rules"
msgstr "Regeln bearbeiten"
@@ -984,8 +971,8 @@ msgstr "Regeln bearbeiten"
msgid "Edit Team"
msgstr "Team bearbeiten"
#: src/features/tournaments/components/manage-tournament.tsx:60
#: src/features/tournaments/components/manage-tournament.tsx:72
#: src/features/tournaments/components/manage-tournament.tsx:51
#: src/features/tournaments/components/manage-tournament.tsx:63
msgid "Edit Tournament"
msgstr "Turnier bearbeiten"
@@ -1048,7 +1035,7 @@ msgstr "Angemeldete Spieler"
#: src/features/tournaments/components/enrollment/enrollment-stats.tsx:28
#: src/features/tournaments/components/enrollment/team-section.tsx:240
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:145
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:126
#: src/features/tournaments/components/upcoming-tournament/team-list-button.tsx:31
msgid "Enrolled Teams"
msgstr "Angemeldete Teams"
@@ -1058,13 +1045,13 @@ msgid "Enrolling as a free agent adds you to a pool of players looking for teamm
msgstr "Als Free Agent kommst du in einen Pool von Spielern, die noch einen Teampartner suchen."
#: src/app/routes/_authed/admin/tournaments/$id/enrollment.tsx:33
#: src/features/admin/components/dashboard/tournament-card.tsx:61
#: src/features/admin/components/dashboard/tournament-section.tsx:34
#: src/features/tournaments/components/upcoming-tournament/enroll-free-agent.tsx:29
#: src/features/tournaments/components/upcoming-tournament/index.tsx:69
msgid "Enrollment"
msgstr "Anmeldung"
#: src/features/tournaments/components/manage-tournament.tsx:55
#: src/features/tournaments/components/manage-tournament.tsx:46
msgid "Enrollment & Teams"
msgstr "Anmeldungen & Teams"
@@ -1181,7 +1168,7 @@ msgstr "Aktives Gerät konnte nicht festgelegt werden"
msgid "Failed to set volume"
msgstr "Lautstärke konnte nicht festgelegt werden"
#: src/features/admin/components/dashboard/tools-list.tsx:41
#: src/features/admin/components/dashboard/tools-list.tsx:42
msgid "Failed to start badge recalculation"
msgstr "Abzeichen-Neuberechnung konnte nicht gestartet werden"
@@ -1251,7 +1238,7 @@ msgstr "Free-Agent-Anmeldung"
msgid "Free Agents"
msgstr "Free Agents"
#: src/features/telemetry/components/usage-screen.tsx:226
#: src/features/telemetry/components/usage-screen.tsx:228
msgid "Function"
msgstr "Funktion"
@@ -1319,7 +1306,7 @@ msgstr "Gruppenphase erfolgreich erstellt!"
msgid "Group Stage Setup"
msgstr "Gruppenphase einrichten"
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:98
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:79
msgid "Groups"
msgstr "Gruppen"
@@ -1465,7 +1452,7 @@ msgid "Last name must be 3-20 characters long and contain only letters"
msgstr "Der Nachname muss 3-20 Zeichen lang sein und darf nur Buchstaben enthalten"
#. placeholder {0}: migrationStatus.result.totalBadgesEarned
#: src/features/admin/components/dashboard/tools-list.tsx:73
#: src/features/admin/components/dashboard/tools-list.tsx:79
msgid "Last recalculation: {0, plural, one {# badge earned} other {# badges earned}}"
msgstr "Letzte Neuberechnung: {0, plural, one {# Abzeichen verdient} other {# Abzeichen verdient}}"
@@ -1530,7 +1517,7 @@ msgstr "S"
msgid "Mainline"
msgstr "Mainline"
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:114
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:95
msgid "Make Prediction"
msgstr "Tipp abgeben"
@@ -1538,8 +1525,8 @@ msgstr "Tipp abgeben"
msgid "Make Your Prediction"
msgstr "Gib deinen Tipp ab"
#: src/features/admin/components/dashboard/tournament-card.tsx:68
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:89
#: src/features/admin/components/dashboard/tournament-section.tsx:39
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:70
#: src/features/tournaments/components/upcoming-tournament/index.tsx:144
msgid "Manage"
msgstr "Verwalten"
@@ -1554,8 +1541,7 @@ msgid "Manage Team Songs/Logos"
msgstr "Team-Songs/Logos verwalten"
#: src/app/routes/_authed/admin/tournaments/index.tsx:17
#: src/features/admin/components/dashboard/tools-list.tsx:49
#: src/features/admin/components/dashboard/tournament-card.tsx:25
#: src/features/admin/components/dashboard/tools-list.tsx:50
msgid "Manage Tournaments"
msgstr "Turniere verwalten"
@@ -1642,7 +1628,7 @@ msgstr "MAU"
msgid "Me"
msgstr "Ich"
#: src/features/admin/components/dashboard/tools-list.tsx:59
#: src/features/admin/components/dashboard/tools-list.tsx:65
msgid "Migrate Badge Progress"
msgstr "Abzeichen-Fortschritt migrieren"
@@ -1748,10 +1734,6 @@ msgstr "Keine aktive Wiedergabe zum Erfassen"
msgid "No Activities Found"
msgstr "Keine Aktivitäten gefunden"
#: src/features/admin/components/dashboard/activity-feed.tsx:78
msgid "No activity yet"
msgstr "Noch keine Aktivität"
#: src/features/badges/components/badge-stats-table.tsx:45
msgid "No Badges Available"
msgstr "Keine Abzeichen verfügbar"
@@ -1844,15 +1826,10 @@ msgstr "Keine Teams gefunden, die zu \"{search}\" passen"
msgid "No tournaments found"
msgstr "Keine Turniere gefunden"
#: src/features/admin/components/dashboard/tournament-card.tsx:18
msgid "No tournaments yet"
msgstr "Noch keine Turniere"
#: src/features/tournaments/components/tournament-card-list.tsx:40
msgid "No Tournaments Yet"
msgstr "Noch keine Turniere"
#: src/features/admin/components/dashboard/errors-card.tsx:53
#: src/features/telemetry/components/error-browser/error-browser.tsx:27
msgid "No unresolved errors"
msgstr "Keine offenen Fehler"
@@ -1914,15 +1891,15 @@ msgstr "Sobald du angemeldet bist, kannst du andere Free Agents und ihre Telefon
msgid "One time code"
msgstr "Einmalcode"
#: src/features/admin/components/dashboard/now-strip.tsx:44
msgid "Online now"
msgstr "Gerade online"
#: src/features/admin/components/dashboard/status-strip.tsx:56
msgid "Online"
msgstr "Online"
#: src/features/admin/components/dashboard/now-strip.tsx:46
#: src/features/admin/components/dashboard/status-strip.tsx:61
msgid "Open errors"
msgstr "Offene Fehler"
#: src/features/admin/components/dashboard/tools-list.tsx:89
#: src/features/admin/components/dashboard/tools-list.tsx:95
msgid "Open Pocketbase"
msgstr "Pocketbase öffnen"
@@ -1972,11 +1949,7 @@ msgstr "p50"
msgid "p95"
msgstr "p95"
#: src/features/admin/components/dashboard/usage-card.tsx:45
msgid "Page views"
msgstr "Seitenaufrufe"
#: src/features/telemetry/components/usage-screen.tsx:177
#: src/features/telemetry/components/usage-screen.tsx:176
msgid "Page views by route"
msgstr "Seitenaufrufe nach Route"
@@ -2095,7 +2068,7 @@ msgstr "Punktevergabe für Tipps:"
#: src/app/routes/_authed/tournaments/$id.predictions.tsx:23
#: src/features/predictions/components/prediction-leaderboard.tsx:147
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:123
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:104
msgid "Predictions"
msgstr "Tipps"
@@ -2146,14 +2119,10 @@ msgstr "Reaktionen"
#. placeholder {0}: migrationStatus.playersProcessed
#. placeholder {1}: migrationStatus.totalPlayers
#: src/features/admin/components/dashboard/tools-list.tsx:66
#: src/features/admin/components/dashboard/tools-list.tsx:72
msgid "Recalculating badges in the background ({0}/{1})"
msgstr "Abzeichen werden im Hintergrund neu berechnet ({0}/{1})"
#: src/features/admin/components/dashboard/activity-feed.tsx:34
msgid "Recent activity"
msgstr "Letzte Aktivität"
#: src/features/tournaments/components/started-tournament/sections/recent-results.tsx:34
msgid "Recently finished"
msgstr "Kürzlich beendet"
@@ -2218,17 +2187,20 @@ msgstr "Runde {0}"
msgid "Route"
msgstr "Route"
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:142
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:123
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:23
msgid "Rules"
msgstr "Regeln"
#: src/features/admin/components/dashboard/tournament-section.tsx:29
msgid "Run"
msgstr "Starten"
#: src/app/routes/_authed/admin/tournaments/run.$id.tsx:36
msgid "Run {name}"
msgstr "{name} ausführen"
#: src/features/admin/components/dashboard/tournament-card.tsx:53
#: src/features/tournaments/components/manage-tournament.tsx:49
#: src/features/tournaments/components/manage-tournament.tsx:41
msgid "Run Tournament"
msgstr "Turnier starten"
@@ -2517,7 +2489,7 @@ msgstr "Startzeit ist erforderlich"
msgid "Start typing to search..."
msgstr "Tippen, um zu suchen …"
#: src/features/admin/components/dashboard/tournament-card.tsx:43
#: src/features/admin/components/dashboard/tournament-section.tsx:24
msgid "Starts in"
msgstr "Beginnt in"
@@ -2639,7 +2611,7 @@ msgstr "Team erfolgreich aktualisiert!"
#: src/features/players/components/profile/skeleton.tsx:75
#: src/features/tournaments/components/profile/index.tsx:32
#: src/features/tournaments/components/profile/skeleton.tsx:89
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:137
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:118
msgid "Teams"
msgstr "Teams"
@@ -2648,6 +2620,7 @@ msgid "Teams created successfully!"
msgstr "Teams erfolgreich erstellt!"
#: src/app/routes/_authed/admin/telemetry.tsx:20
#: src/features/admin/components/dashboard/tools-list.tsx:55
msgid "Telemetry"
msgstr "Telemetrie"
@@ -2730,7 +2703,7 @@ msgstr "Die besten {0, plural, one {# Team} other {# Teams}} aus jeder Gruppe ko
msgid "Top {n} advance"
msgstr "Top {n} kommen weiter"
#: src/features/telemetry/components/usage-screen.tsx:191
#: src/features/telemetry/components/usage-screen.tsx:190
msgid "Top functions by call count"
msgstr "Top-Funktionen nach Aufrufanzahl"
@@ -2757,7 +2730,7 @@ msgstr "Turnier erfolgreich erstellt!"
msgid "Tournament not found"
msgstr "Turnier nicht gefunden"
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:152
#: src/features/tournaments/components/started-tournament/sections/nav-grid.tsx:133
#: src/features/tournaments/components/upcoming-tournament/rules-list-button.tsx:25
msgid "Tournament Rules"
msgstr "Turnierregeln"
@@ -2786,7 +2759,7 @@ msgstr "trackId ist für die playTrack-Aktion erforderlich"
msgid "Try the new themes"
msgstr "Probier die neuen Designs aus"
#: src/features/admin/components/dashboard/quiet-boundary.tsx:26
#: src/features/admin/components/dashboard/quiet-boundary.tsx:24
msgid "Unavailable right now"
msgstr "Gerade nicht verfügbar"
@@ -2851,10 +2824,6 @@ msgstr "Turnier aktualisieren"
msgid "Usage"
msgstr "Nutzung"
#: src/features/admin/components/dashboard/usage-card.tsx:34
msgid "Usage, 7 days"
msgstr "Nutzung, 7 Tage"
#: src/features/activities/components/activities-table.tsx:202
#: src/features/telemetry/components/client-events-table.tsx:146
msgid "User Agent"
@@ -2898,7 +2867,7 @@ msgstr "Tipps ansehen"
msgid "Viewport"
msgstr "Viewport"
#: src/features/telemetry/components/usage-screen.tsx:211
#: src/features/telemetry/components/usage-screen.tsx:213
msgid "Vitals"
msgstr "Vitals"