From 19af93338b7bfeb813c50eaa40e04f5ad6f97e44 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 29 Sep 2026 15:09:36 +0000 Subject: [PATCH] =?UTF-8?q?Vertr=C3=A4ge:=20Mein=20Vertrag,=20Vergleich=20?= =?UTF-8?q?der=20Abos,=20Wechsel-Karte,=20Unterlagen=20in=20der=20zugestim?= =?UTF-8?q?mten=20Fassung?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5.5 --- public/app.js | 238 ++++++++++++++++++++++++++++++--------- public/dashboard.html | 3 +- public/kundenbereich.css | 27 +++++ 3 files changed, 215 insertions(+), 53 deletions(-) diff --git a/public/app.js b/public/app.js index 2906a2d..ce3b018 100644 --- a/public/app.js +++ b/public/app.js @@ -760,16 +760,6 @@ async function pollChatBadge() { // Wartungs-Abo: Karte in der Seitenleiste + Ansicht (Bestellung bzw. Stundenkonto) // --------------------------------------------------------------------------- -const ABO_FEATURES = [ - ['Betrieb & Pflege Ihrer Website/Anwendung', 'Server in Deutschland, Updates, Sicherheit, tägliche Datensicherung, Überwachung'], - ['1 Domain inklusive', 'Registrierung auf Ihren Namen, DNS- und Zertifikatsverwaltung'], - ['1 E-Mail-Postfach', 'mit Ihrer eigenen Domain, 5 GB Speicher'], - ['1 Stunde Arbeitszeit pro Monat', 'nicht genutzte Zeit bleibt 12 Monate verfügbar'], -] - -// Kurzfassung fuer die Karte in der Seitenleiste -const ABO_SIDE_FEATURES = ['Betrieb & Pflege, Server in Deutschland', '1 Domain inklusive', '1 E-Mail-Postfach, 5 GB', '1 Std. Arbeitszeit pro Monat'] - function fmtHours(min) { const n = Math.max(0, Number(min || 0)) const h = Math.floor(n / 60) @@ -787,9 +777,19 @@ function fmtDayMonth(value) { return Number.isNaN(d.getTime()) ? '' : d.toLocaleDateString('de-DE', { timeZone: 'Europe/Berlin', day: '2-digit', month: '2-digit' }) } -function aboFeaturesHtml() { - return `