From fc572fc3f3d9bbe0979704d7b5c94f06f28c450f Mon Sep 17 00:00:00 2001 From: karim Date: Sun, 31 May 2026 15:47:23 +0200 Subject: [PATCH] feat(ux): eingeloggter Kunde landet im Konto statt Login/Marketing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - renderLogin/renderRegister: bei vorhandenem Token sofort → /konto/ (behebt 'man bleibt nicht eingeloggt' — Formular wurde trotz Token gezeigt) - nav-account.js (auf allen Seiten via custom/head-end.html): CTAs auf /register/ und Navbar 'Anmelden' (/login/) → 'Mein Konto' (/konto/) sobald eingeloggt. So führt /hosting/ den Kunden direkt ins Konto. Co-Authored-By: Claude Opus 4.8 --- layouts/_partials/custom/head-end.html | 4 +++ public/admin/index.html | 4 ++- public/agb/index.html | 4 ++- public/categories/index.html | 4 ++- public/datenschutz/index.html | 4 ++- public/docs/arbeitsablauf/index.html | 4 ++- public/docs/changelog/index.html | 4 ++- public/docs/datenhaltung/index.html | 4 ++- public/docs/einrichtung/index.html | 4 ++- public/docs/entwicklung/index.html | 4 ++- public/docs/erste-schritte/index.html | 4 ++- public/docs/index.html | 4 ++- public/docs/installation/index.html | 4 ++- public/docs/troubleshooting/index.html | 4 ++- public/docs/web-modus/index.html | 4 ++- public/downloads/index.html | 4 ++- public/faq/index.html | 4 ++- public/features/auto-updater/index.html | 4 ++- public/features/index.html | 4 ++- public/features/mitarbeiter/index.html | 4 ++- public/features/projekte/index.html | 4 ++- public/features/protokolle/index.html | 4 ++- public/features/rechnungen/index.html | 4 ++- public/features/spesen/index.html | 4 ++- public/features/system-tray/index.html | 4 ++- public/features/zeiterfassung/index.html | 4 ++- public/hosting-preise/index.html | 4 ++- public/hosting/index.html | 4 ++- public/impressum/index.html | 4 ++- public/index.html | 4 ++- public/js/hosting-app.js | 4 +++ public/js/nav-account.js | 32 ++++++++++++++++++++++++ public/konto/index.html | 4 ++- public/lizenz/index.html | 4 ++- public/login/index.html | 4 ++- public/register/index.html | 4 ++- public/server/index.html | 4 ++- public/tags/index.html | 4 ++- static/js/hosting-app.js | 4 +++ static/js/nav-account.js | 32 ++++++++++++++++++++++++ 40 files changed, 181 insertions(+), 35 deletions(-) create mode 100644 layouts/_partials/custom/head-end.html create mode 100644 public/js/nav-account.js create mode 100644 static/js/nav-account.js diff --git a/layouts/_partials/custom/head-end.html b/layouts/_partials/custom/head-end.html new file mode 100644 index 0000000..d3305b5 --- /dev/null +++ b/layouts/_partials/custom/head-end.html @@ -0,0 +1,4 @@ +{{/* RAPPORT — auf allen Seiten geladen (überschreibt Theme-Default). + Passt Navbar/CTAs an den Login-Status an: eingeloggter Kunde sieht + "Mein Konto" statt "Anmelden"/"Jetzt starten". */}} + diff --git a/public/admin/index.html b/public/admin/index.html index 408e64c..6c5490c 100644 --- a/public/admin/index.html +++ b/public/admin/index.html @@ -49,7 +49,9 @@ - + + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
Anmelden
' + '
Zu Ihrer Rapport-Instanz
' + @@ -95,6 +98,7 @@ // ── Registrierung ────────────────────────────────────────────────────── function renderRegister() { + if (tok.isLoggedIn) return go("/konto/"); root.innerHTML = card(authCard( '
Konto erstellen
' + '
In Minuten zur eigenen Instanz
' + diff --git a/public/js/nav-account.js b/public/js/nav-account.js new file mode 100644 index 0000000..d2afaa9 --- /dev/null +++ b/public/js/nav-account.js @@ -0,0 +1,32 @@ +/* RAPPORT Hosting — Navbar/CTA-Anpassung je nach Login-Status. + * Läuft auf ALLEN Seiten (im baseof eingebunden). Wenn ein Kunde eingeloggt + * ist (rapport_host_token vorhanden), werden: + * - Hosting-CTAs ("Jetzt starten" / "Kostenlos registrieren") → "Mein Konto" + * - der Navbar-Eintrag "Anmelden" → "Mein Konto" + * So landet ein eingeloggter Kunde nicht wieder im Marketing-/Login-Flow. + */ +(function () { + "use strict"; + var loggedIn = !!localStorage.getItem("rapport_host_token"); + if (!loggedIn) return; + + function ready(fn) { + if (document.readyState !== "loading") fn(); + else document.addEventListener("DOMContentLoaded", fn); + } + + ready(function () { + // 1. Hero-/CTA-Buttons, die auf /register/ zeigen → /konto/ "Mein Konto" + document.querySelectorAll('a[href="/register/"]').forEach(function (a) { + a.setAttribute("href", "/konto/"); + a.textContent = "Mein Konto"; + }); + // 2. Navbar-Link "Anmelden" (zeigt auf /login/) → "Mein Konto" + document.querySelectorAll('a[href="/login/"]').forEach(function (a) { + a.setAttribute("href", "/konto/"); + // Navbar-Label kann in einem liegen + var span = a.querySelector("span"); + if (span) span.textContent = "Mein Konto"; else a.textContent = "Mein Konto"; + }); + }); +})(); diff --git a/public/konto/index.html b/public/konto/index.html index 088eeca..ad5d3bf 100644 --- a/public/konto/index.html +++ b/public/konto/index.html @@ -49,7 +49,9 @@ - + + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
+ + + Zum Inhalt springen
Anmelden
' + '
Zu Ihrer Rapport-Instanz
' + @@ -95,6 +98,7 @@ // ── Registrierung ────────────────────────────────────────────────────── function renderRegister() { + if (tok.isLoggedIn) return go("/konto/"); root.innerHTML = card(authCard( '
Konto erstellen
' + '
In Minuten zur eigenen Instanz
' + diff --git a/static/js/nav-account.js b/static/js/nav-account.js new file mode 100644 index 0000000..d2afaa9 --- /dev/null +++ b/static/js/nav-account.js @@ -0,0 +1,32 @@ +/* RAPPORT Hosting — Navbar/CTA-Anpassung je nach Login-Status. + * Läuft auf ALLEN Seiten (im baseof eingebunden). Wenn ein Kunde eingeloggt + * ist (rapport_host_token vorhanden), werden: + * - Hosting-CTAs ("Jetzt starten" / "Kostenlos registrieren") → "Mein Konto" + * - der Navbar-Eintrag "Anmelden" → "Mein Konto" + * So landet ein eingeloggter Kunde nicht wieder im Marketing-/Login-Flow. + */ +(function () { + "use strict"; + var loggedIn = !!localStorage.getItem("rapport_host_token"); + if (!loggedIn) return; + + function ready(fn) { + if (document.readyState !== "loading") fn(); + else document.addEventListener("DOMContentLoaded", fn); + } + + ready(function () { + // 1. Hero-/CTA-Buttons, die auf /register/ zeigen → /konto/ "Mein Konto" + document.querySelectorAll('a[href="/register/"]').forEach(function (a) { + a.setAttribute("href", "/konto/"); + a.textContent = "Mein Konto"; + }); + // 2. Navbar-Link "Anmelden" (zeigt auf /login/) → "Mein Konto" + document.querySelectorAll('a[href="/login/"]').forEach(function (a) { + a.setAttribute("href", "/konto/"); + // Navbar-Label kann in einem liegen + var span = a.querySelector("span"); + if (span) span.textContent = "Mein Konto"; else a.textContent = "Mein Konto"; + }); + }); +})();