From 160c394c3ffe387fa68a6192b35aacb42bdfc6fc Mon Sep 17 00:00:00 2001 From: Umut Kantarci Date: Tue, 15 Sep 2026 07:59:30 +0200 Subject: [PATCH] Rework forms, statistics, design and the sidebar foot in 1.15.0 Forms are an editor now: one card per field with add and remove, the technical name derived from the label, options only for a choice, and a new "Aussehen" section with a button label and four colours (field border and background, button and button text) that travel to the page as one rule per form inside the hashed style block. A live preview draws the form with the site's default button and names the text contrast. Statistics open with six figures (views against the same span before, average per day, busiest day, pages, referred views, missing addresses), a chart with grid lines and a title per bar, a weekday chart and ranked lists with share bars. The design screen shows the palette as colour cards with seven ready-made palettes, picks the base colours from the palette, previews every font in itself and the typography as a sample. The sidebar ends in an account card with role and a logout icon. Co-Authored-By: Claude Fable 5.1 --- .claude/launch.json | 2 +- README.md | 10 + VERSION | 2 +- docs/STATUS.md | 16 ++ public/assets/admin.css | 286 +++++++++++++++++------ public/assets/form-editor.js | 157 +++++++++++++ public/assets/site.css | 2 +- public/assets/theme-buttons.js | 2 +- public/assets/theme-panel.js | 171 ++++++++++++++ scripts/admin-quality-check.mjs | 2 +- src/Content/FontLibrary.php | 6 + src/Content/FormRepository.php | 63 +++++- src/Content/Statistics.php | 40 +++- src/Content/Theme.php | 20 +- src/Controller/FormAdminController.php | 12 +- src/Controller/PageController.php | 11 +- src/Controller/ThemeController.php | 4 + templates/admin/forms.html.twig | 217 +++++++++++++----- templates/admin/icon.html.twig | 5 +- templates/admin/shell.html.twig | 24 +- templates/admin/statistics.html.twig | 129 ++++++++--- templates/admin/theme.html.twig | 301 ++++++++++++++++--------- templates/blocks/form.html.twig | 4 +- tests/EditorSecurityTest.php | 51 ++++- tests/StatisticsTest.php | 34 +++ 25 files changed, 1293 insertions(+), 278 deletions(-) create mode 100644 public/assets/form-editor.js create mode 100644 public/assets/theme-panel.js diff --git a/.claude/launch.json b/.claude/launch.json index 6204dd9..082d143 100644 --- a/.claude/launch.json +++ b/.claude/launch.json @@ -25,7 +25,7 @@ "runtimeArgs": [ "-NoProfile", "-Command", - "$env:APP_ENV='dev'; $env:DATABASE_URL='sqlite:///C:/Django Project/KantSites/var/browser-tests/pilot-17c7f81e0ae6/pilot.db'; $env:MEDIA_DIRECTORY='C:/Django Project/KantSites/var/kantit-media'; & C:/php84/php.exe -d upload_max_filesize=8M -d post_max_size=10M -d memory_limit=256M -S 127.0.0.1:8087 -t public bin/dev-router.php" + "$env:APP_ENV='dev'; $env:DATABASE_URL='sqlite:///C:/Django Project/KantSites/var/browser-tests/pilot-539a85bd3015/pilot.db'; $env:MEDIA_DIRECTORY='C:/Django Project/KantSites/var/kantit-media'; & C:/php84/php.exe -d upload_max_filesize=8M -d post_max_size=10M -d memory_limit=256M -S 127.0.0.1:8087 -t public bin/dev-router.php" ], "port": 8087 }, diff --git a/README.md b/README.md index d6c40b1..3fce5bc 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,16 @@ Lokaler CMS-Prototyp für PHP-Webhosting mit erstem visuellen Editor. Symfony 7. Die übernommenen Originaldokumente sind `AGENTS.md` und `ENTWICKLUNGSPLAN.md`. Den tatsächlichen Stand enthält `docs/STATUS.md`, Entscheidungen und Datenmodell stehen in `docs/ARCHITECTURE.md`. +## Formulare, Statistik, Design und Seitenleiste überarbeitet (ab 1.15.0) + +**Formulare** sind ein Editor: jedes Feld eine Karte mit Nummer, Beschriftung, Typ, technischem Namen, Hilfetext und Pflicht-Schalter, dazu „Feld hinzufügen“ und ein Entfernen-Knopf je Karte. Der technische Name folgt der Beschriftung, bis du ihn selbst schreibst. Unter **Aussehen** bekommt jedes Formular eine Buttonbeschriftung sowie Rahmen- und Hintergrundfarbe der Felder, Button- und Buttonschriftfarbe – aus der Palette oder als eigener Wert, leer heißt „wie die Website“. Die Vorschau daneben folgt jeder Eingabe, zeichnet den Absendeknopf mit dem Standardbutton des Designs und nennt den Kontrast der Buttonschrift. + +**Die Statistik** beginnt mit Kennzahlen: Aufrufe mit Vergleich zum gleich langen Zeitraum davor, Schnitt je Tag, stärkster Tag, aufgerufene Seiten, Aufrufe über Verweise, nicht gefundene Adressen. Der Verlauf hat Rasterlinien, jeder Balken nennt beim Überfahren Tag und Zahl, der stärkste Tag ist hervorgehoben; neu ist ein Wochentagsdiagramm im Schnitt. Die Ranglisten tragen Rang und Anteilsbalken. + +**Im Design** ist die Palette eine Reihe von Farbkarten, deren Fläche der Farbwähler selbst ist. Sieben fertige Paletten (Wald, Ozean, Sand, Koralle, Schiefer, Olive, Nacht) lassen sich per Klick übernehmen; eigene Farben bleiben stehen. Text-, Seiten- und Linkfarbe wählst du aus der Palette oder trägst einen eigenen Wert ein. Jede Schrift zeigt eine Probe in sich selbst, die Schnitte sind Chips, und eine Typografie-Vorschau zeigt Schrift, Größe, Zeilenhöhe, Skala, Farben und Unterstreichung live. + +**Die Seitenleiste** endet in einer Kontokarte mit Avatar, Name, Rolle und Abmeldesymbol, darunter die Fassung mit dem Update-Hinweis. Auf Tablets bleiben Konto und Abmelden rechts im Bild, nur die Liste wischt. + ## Fußzeile des Einwilligungshinweises (ab 1.14.2) „Einzeln wählen“ steht links, Datenschutz und Impressum rechts auf einer Linie; aufgeklappt nimmt die Einzelwahl die volle Breite, die Links rutschen rechtsbündig darunter. diff --git a/VERSION b/VERSION index a4cc557..141f2e8 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.14.2 +1.15.0 diff --git a/docs/STATUS.md b/docs/STATUS.md index 02dfb4f..8f4c51f 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -1,5 +1,21 @@ # Projektstatus +## 1.15.0 – Formulare, Statistik, Design und Seitenleiste überarbeitet (15.09.2026) + +**Anlass:** Umut fand die Formularanlage unschön und wollte Felder löschen können, die Statistik „lieblos“, auf der Designseite vordefinierte Farben, eigene Farben für Link- und Seitenfarbe und eine Vorschau der Schriften, und den Fuß der Seitenleiste (Fassung, Benutzer, Abmelden) besser. Nachgeschoben: eine Vorschau des Kontaktformulars, in der Rahmen-, Hintergrund- und Buttonfarbe direkt gewählt werden. + +**Formulare (`forms.html.twig`, neu `form-editor.js`).** Jedes Feld ist eine Karte mit Nummer, Beschriftung, Typ, technischem Name, Hilfetext, Pflicht-Schalter und einem Entfernen-Knopf; „Feld hinzufügen“ klont eine `