feat(260923-dhh): Proxmox-Modul Aufgabe 6 - Modulseite mit Auslastung

- ServerCard.tsx: einzige Stelle, die einen Messwert in Text verwandelt
  (formatMetric) — null wird ueberall "unbekannt", nie 0/NaN/leer;
  verzweigt ueber productType auf PVE/PBS/PMG; PBS ohne Sicherung zeigt
  "noch keine Sicherung" statt eines Fehlers; nicht erreichbarer Server
  zeigt Klartext-Ursache plus Zeitpunkt der letzten erfolgreichen Messung
- page.tsx: "Jetzt aktualisieren" fragt alle Server neu ab und laedt die
  Liste danach neu, waehrend des Laufs gesperrt; ruhiger Hinweis bei
  leerer Liste mit Weg zu den Einstellungen; Link zu den Einstellungen
  nur fuer Administratoren sichtbar (Anzeige, kein Zugriffsriegel)
- proxmox-api.ts: ProxmoxMetrics-Union (Pve/Pbs/Pmg) fuer typsichere
  Verzweigung im Frontend
- umlaut-dictionary.ts: zwei weitere korrekte Woerter auf die
  Positivliste (Messung, Prozessorlast)

Tore: web 708/708 (>=693), type-check 4/4, Biome apps/web 53 Warnungen
(unveraendert).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-23 14:45:27 +02:00
parent 723cf6814b
commit 06fcdc0157
7 changed files with 622 additions and 34 deletions
+26
View File
@@ -709,6 +709,32 @@
"loading": "Loading server list...",
"loadError": "Could not load the server list.",
"emptyState": "No server configured yet. Add one in the module settings.",
"card": {
"unknownValue": "unknown",
"lastPolledLabel": "Last poll",
"lastOkLabel": "Last successful measurement",
"refresh": "Refresh now",
"refreshing": "Refreshing...",
"settingsLink": "Go to settings",
"pve": {
"nodeCount": "Nodes",
"guests": "{running} running / {stopped} stopped",
"cpu": "CPU load",
"mem": "Memory"
},
"pbs": {
"used": "Used",
"lastBackup": "Last backup",
"noBackupYet": "no backup yet",
"verifyState": "Last verification"
},
"pmg": {
"countIn": "Inbound",
"countOut": "Outbound",
"spamCount": "Spam",
"virusCount": "Viruses"
}
},
"errors": {
"netz": "The server is unreachable. Please check the address and the network connection.",
"zugang": "Access was denied. Please check the username and password, or the token details.",