From a1b10d9ec3289adf18cc3a098d8827be0270b547 Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Fri, 2 Oct 2026 16:04:23 +0200 Subject: [PATCH] Startseite heisst /home, Bearbeiten steht in der URL Die Adresszeile sagte nicht, wo man ist. Die Startseite lag auf "/", waehrend jede andere Seite einen sprechenden Pfad hat, und der Bearbeitungsmodus des Dashboards stand nirgends: Neuladen warf einen heraus, der Stand liess sich nicht verschicken, die Zurueck-Taste tat nichts. Jetzt /home und /home/edit, fuer weitere Dashboards /d/:id und /d/:id/edit. "/" und jeder unbekannte Pfad leiten sichtbar auf /home um. Der Kern der Arbeit steckte in Dashboard.jsx: Der Modus war nicht als eigenes Flag gefuehrt, sondern aus `entwurf !== null` abgeleitet - eine Variable, die zugleich Modus und ungespeicherte Aenderung war. Der Modus kommt jetzt als Prop aus der Route, `entwurf` ist nur noch das, was sein Name sagt. Weil der Entwurf allein im Speicher lebt, baut ihn ein Effekt aus dem gespeicherten Layout auf, sobald dieses geladen ist - sonst koennte man /home/edit nicht direkt aufrufen oder neu laden. Dabei eine Falle vermieden: `aktives` ist nach jedem setDashboards ein neues Objekt. Ohne Merker, zu welchem Dashboard der Entwurf gehoert, haette jedes Neuladen der Liste waehrend des Bearbeitens die ungespeicherte Anordnung verworfen. "Anordnen" navigiert mit push, damit die Zurueck-Taste den Modus verlaesst; "Speichern" und "Abbrechen" mit replace, damit sie nicht hineinfuehrt. /home/edit bei verbindlicher Admin-Vorgabe faellt auf die Ansicht zurueck, statt eine Leiste ohne Speichern-Knopf zu zeigen. Dazu zwei Dinge, die sonst stillschweigend gebrochen waeren: - Der ErrorBoundary-Schluessel hing am ganzen Pfad. /home/edit haette als andere Seite gegolten, den Baum neu eingehaengt und beim Umschalten Dashboards, Artikel und Lagerorte erneut geladen. Jetzt nur das erste Pfadsegment - im Mitschnitt steht beim Umschalten kein einziger Aufruf. - Die Seitenleisten-Links trugen `end` (exakter Match), weil "/" sonst ueberall als Treffer galt. Bei /home ist das nicht noetig, und ohne `end` bleibt der Eintrag auch unter /home/edit markiert. Von Hand durchgeklickt: "/" und "/gibtsnicht" landen auf /home; Anordnen -> /home/edit, Neuladen bleibt im Modus mit sieben Karten als Entwurf, Zurueck verlaesst ihn, nach Abbrechen fuehrt Zurueck nicht wieder hinein; zweites Dashboard -> /d/1/edit; bei erzwungener Vorgabe faellt /home/edit auf /home zurueck. Backend-Suite unveraendert bei 517. Co-Authored-By: Claude Opus 5 --- web/src/App.jsx | 33 +++++++++---- web/src/pages/Dashboard.jsx | 84 ++++++++++++++++++++++++++++------ web/src/pages/Login.jsx | 2 +- web/src/pages/OidcCallback.jsx | 2 +- web/src/pages/SsoNeu.jsx | 4 +- 5 files changed, 100 insertions(+), 25 deletions(-) diff --git a/web/src/App.jsx b/web/src/App.jsx index 98cd0d4..5722edf 100644 --- a/web/src/App.jsx +++ b/web/src/App.jsx @@ -108,11 +108,13 @@ function Sidebar() {