From 22b6cdffc5d5d3a0d223140e02d93f89bf7743e8 Mon Sep 17 00:00:00 2001 From: Scarriffle Date: Wed, 22 Jul 2026 22:00:44 +0200 Subject: [PATCH] Tabellen werden bei wenig Platz zu Karten statt seitwaerts zu scrollen Waagerechtes Scrollen in einem Block war die falsche Antwort auf zu wenig Platz - man sieht nicht, dass es weitergeht, und auf dem Trackpad ist es muehsam. Das Scrollen ist ersatzlos weg. Stattdessen stellt sich jede Tabelle unter 700px verfuegbarer Breite auf Karten um: eine Karte je Zeile, jede Angabe mit ihrer Beschriftung davor. Die Beschriftung kommt aus data-label an der Zelle, die Kopfzeile wird ausgeblendet. Zellen ohne Beschriftung (Vorschaubild, Aktionsknoepfe) bleiben ohne eigene Zeile. Ausgeloest wird das per Container-Abfrage, nicht per Bildschirmbreite. Damit richtet sich die Darstellung nach dem Platz, den die Tabelle wirklich hat - sie stellt sich also auch um, wenn das Fenster nur die halbe Bildschirmbreite einnimmt oder ein Block danebensteht. Dazu die Aufteilung neben dem Block: Die Tabelle hat mehr Spalten als der Block und bekommt jetzt den groesseren Anteil (1,5 zu 1, Block mindestens 340px). Vorher waren beide gleich breit, wodurch die Tabelle unnoetig frueh in die Kartenansicht gerutscht waere, obwohl daneben Platz frei war. Durchgerechnet: Bei 1920 voller Breite bleibt es eine Tabelle (802px) mit komfortablem Block daneben (534px). Bei halber Bildschirmbreite stapelt sich die Seite und die Tabelle wird zur Karte. In keinem Fall wird etwas abgeschnitten und nirgends muss seitwaerts gescrollt werden. Lange Zeichenketten in Zellen brechen jetzt um (overflow-wrap), da kein Scrollen mehr auffaengt, was hinauslaeuft. Dabei aufgefallen: In der Produkttabelle stand nach dem Ergaenzen der Kategorie-Spalte noch colSpan={7} statt 8 - die Zeile "Keine Produkte gefunden" ueberspannte die Tabelle nicht mehr ganz. Alle colSpan-Angaben sind jetzt gegen die Spaltenzahl gegengeprueft. Getestet: Web-Build laeuft durch, Spaltenzahl und colSpan stimmen in allen fuenf betroffenen Tabellen ueberein, die Umbruchpunkte sind durchgerechnet. Die Darstellung im Browser habe ich nicht selbst angesehen. Co-Authored-By: Claude Opus 4.8 --- web/src/pages/Categories.jsx | 4 +-- web/src/pages/Dashboard.jsx | 20 +++++------ web/src/pages/Groups.jsx | 12 +++---- web/src/pages/History.jsx | 10 +++--- web/src/pages/ProductForm.jsx | 6 ++-- web/src/pages/Products.jsx | 14 ++++---- web/src/pages/Transfer.jsx | 2 +- web/src/pages/Units.jsx | 6 ++-- web/src/pages/Users.jsx | 4 +-- web/src/styles.css | 68 ++++++++++++++++++++++++++++------- 10 files changed, 94 insertions(+), 52 deletions(-) diff --git a/web/src/pages/Categories.jsx b/web/src/pages/Categories.jsx index be5217a..9d61bdc 100644 --- a/web/src/pages/Categories.jsx +++ b/web/src/pages/Categories.jsx @@ -103,7 +103,7 @@ export default function Categories() { {tree.map((c) => ( - + {c.depth > 0 && } @@ -119,7 +119,7 @@ export default function Categories() { )} - {c.product_count} + {c.product_count} {isAdmin && (