feat(260923-dhh): Proxmox-Modul Aufgabe 5 - Einstellungsseite (anlegen, bearbeiten, loeschen, testen)

- proxmox.service.ts: updateServer (Muster LdapConfigService.updateConfig
  - nicht gesendet laesst unveraendert, leer loescht, gefuellt
  verschluesselt neu; PMG+Token auch beim Bearbeiten abgelehnt, geprueft
  gegen den EFFEKTIVEN Stand nach Zusammenfuehren), deleteServer
- proxmox.controller.ts: PUT/DELETE servers/:id, beide zusaetzlich mit
  scheduler.refreshTenant() nach dem Schreiben
- Frontend: proxmox-api.ts (updateServer/deleteServer/testServer),
  settings/page.tsx (Rollenpruefung nur Anzeige, Serverliste,
  Loeschen mit Rueckfrage), ServerForm.tsx (PMG bietet Token gar nicht
  an, Geheimnisfelder nie vorbefuellt, Zertifikatspruefung-Schalter
  Standard "pruefen", Verbindungstest mit Klartext-Fehlertext)
- umlaut-dictionary.ts: zwei neue, bereits korrekte Woerter
  (bewusst/gemessene) auf die Positivliste des Regressions-Waechters

Tore: api 1311/1311 (>=1240), web 701/701 (>=693), type-check 4/4,
lint 5/5, Biome apps/web 53 Warnungen (unveraendert).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-23 14:41:21 +02:00
parent fccaf8db0f
commit 723cf6814b
10 changed files with 1112 additions and 10 deletions
+47 -1
View File
@@ -708,7 +708,53 @@
"description": "State of your Proxmox servers (PVE/PBS/PMG) at a glance — Tessera only observes, it never changes anything.",
"loading": "Loading server list...",
"loadError": "Could not load the server list.",
"emptyState": "No server configured yet. Add one in the module settings."
"emptyState": "No server configured yet. Add one in the module settings.",
"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.",
"rechte": "The stored account does not have enough rights. Please check the assigned role on the Proxmox server.",
"zertifikat": "The server's certificate was rejected. Check the address, or deliberately disable certificate checking for this one server.",
"antwortform": "The server's response did not have the expected shape. Please check the address.",
"server": "The Proxmox server reports its own error. Please try again later.",
"unbekannt": "An unexpected error occurred."
},
"settings": {
"title": "Proxmox — Settings",
"accessDeniedText": "This page is only available to administrators.",
"addServer": "Add server",
"noServers": "No server configured yet.",
"nameLabel": "Name",
"productTypeLabel": "Type",
"productTypePve": "PVE",
"productTypePbs": "PBS",
"productTypePmg": "PMG",
"baseUrlLabel": "Address",
"authMethodLabel": "Access method",
"authMethodToken": "API token",
"authMethodPassword": "Username/password",
"tokenIdLabel": "Token ID",
"tokenSecretLabel": "Token secret",
"usernameLabel": "Username",
"passwordLabel": "Password",
"secretUnchangedPlaceholder": "Leave blank to keep the stored secret",
"pollIntervalLabel": "Poll interval (minutes)",
"tlsRejectLabel": "Verify certificate",
"tlsRejectHint": "The exception applies only to this one server, never to all servers at once.",
"activeLabel": "Active",
"save": "Save",
"saving": "Saving...",
"saveError": "Could not save the settings.",
"cancel": "Cancel",
"testConnection": "Test connection",
"testTesting": "Testing connection...",
"testSuccess": "Connection successful.",
"edit": "Edit",
"delete": "Delete",
"deleteConfirmTitle": "Delete server",
"deleteConfirmBody": "Do you really want to delete the server \"{name}\"? The last measured status will be removed as well.",
"deleteConfirmButton": "Delete",
"deleteCancelButton": "Cancel"
}
},
"dkvFleet": {
"pageTitle": "DKV Invoice",