diff --git a/dev/frontend/hub-flux/PROGRESS.md b/dev/frontend/hub-flux/PROGRESS.md index 930df73..ea61753 100644 --- a/dev/frontend/hub-flux/PROGRESS.md +++ b/dev/frontend/hub-flux/PROGRESS.md @@ -5,6 +5,32 @@ --- +## 2026-06-12 · Responsive-Härtung (Block 3, Punkt 1) ✅ + +- **Was**: Systemische Responsive-Fehler behoben (Screenshots in + `dev/frontend/responsive/`): (1) Das starre Inline-Grid + `style="grid-template-columns:1fr auto"` der Seiten-Header (48 Seiten) + konnte nie umbrechen — die Aktions-Spalte quetschte die Titel-Spalte + (Buchstaben-Umbrüche im Firmennamen, Buttons liefen aus der Box). + Ersetzt durch die neue CSS-Klasse `.page-header` (hub-components.css): + unterhalb lg stapeln Titel und Aktionen, Aktions-Zeilen bekommen + flex-wrap. (2) Firmenkontext-Leiste im App-Layout stapelt jetzt erst + ab lg nebeneinander (vorher sm → Überlappung von „Firmenkontext"/ + „Aktive Firma" zwischen 640–1024px). (3) Stat-Cards: Label/Meta-Zeile + mit flex-wrap (keine Kollision mehr auf schmalen Karten), `.stat-num` + mit `overflow-wrap:anywhere` + 26px unter 480px (Text-Werte wie + „Businessportal24" sprengen die Karte nicht mehr). (4) KPI-Grids, die + schon ab sm auf 4 Spalten gingen (Customer-Dashboard, User-Show, + PM-Index), erst ab xl vierspaltig. +- **Dateien**: `resources/css/shared/hub-components.css` (.page-header, + .stat-num), `resources/views/components/portal/stat-card.blade.php`, + `resources/views/components/layouts/app.blade.php`, 48 Seiten-Views + (Header-Klasse per sed), 3 KPI-Grids. +- **Build/Test**: `npm run build` ok (beide Bundles), Suite 532 passed / + 4 skipped. +- **Offene Fragen**: Weitere Stellen aus Kevins Klick-Durchgang folgen + (Liste Block 3). + ## 2026-06-12 · Admin-Zahlungsmodul (P8-Rest) · Zahlungen + Tarif-Verwaltung ✅ - **Was**: Den Phase-8-Platzhalter `/admin/payments` durch das echte diff --git a/dev/frontend/responsive/admin:me.png b/dev/frontend/responsive/admin:me.png new file mode 100644 index 0000000..1e0b5fc Binary files /dev/null and b/dev/frontend/responsive/admin:me.png differ diff --git a/dev/frontend/responsive/admin:me:firmen:id.png b/dev/frontend/responsive/admin:me:firmen:id.png new file mode 100644 index 0000000..9e67384 Binary files /dev/null and b/dev/frontend/responsive/admin:me:firmen:id.png differ diff --git a/docs/user-admin/User-Panel-Restarbeiten.md b/docs/user-admin/User-Panel-Restarbeiten.md new file mode 100644 index 0000000..a44f22e --- /dev/null +++ b/docs/user-admin/User-Panel-Restarbeiten.md @@ -0,0 +1,7 @@ +1. Pressemitteilungen anlegen ohne Firma hier würde ich das Create Formular nicht aufrufen lassen, wenn keine Firma existiert, sondern es muss eine Meldung erscheinen, dass ohne eine Firma keine Pressemitteilung angelegt werden kann.. Hintergrund öffnet man. Eine neue Pressemitteilung kann man keine Firma angeben und kann auch nicht speichern man muss wieder zurückspringen eine Firma anlegen und dann kann man erst entsprechend ein Presse Beitrag erstellen. + +2. https://pressekonto.test/admin/me/profile die Darstellung ist noch nicht wirklich sauber hier kann noch etwas mehr Struktur rein. Grundsätzlich würde ich ab sofort Rechnungsadresse als Pflicht machen, wenn ein Paket gebucht wird und diese Rechnungsdaten gleich mit übergeben. Profil Einstellungen. Hier gibt es auch schon so etwas wie Anrede Vorname Telefon Risse etc. dieses doppelt sich mit der Rechnungsadresse zumindest in Teilen, denn die Rechnungsadresse ist technisch eigentlich gar nicht richtig vollständig hier viel zum Beispiel Firmenname Vorname Nachname Anrede. + +3. Validierung der Rechnungsadresse gebe ich etwas ein und drücke ich auf. Absenden bekomme ich die Fehlermeldung zweimal einmal direkt unter dem Feld und einmal unten. + +4. Umsatzsteuer ID. Ich würde hier gerne schon mal eine Validierung der Umsatzsteuer ID haben, ob diese gültig ist oder macht das an dieser Stelle gar keinen Sinn, weil Strip das komplett übernimmt? Ich glaube es wär aber gut, wenn Firmen aus EU Land hier schon eine Steuernummer hinterlegen können und diese zumindest schon einmal während der Eingabe validiert wird, ob diese richtig ist. Diese kann dann ja Stripe übergeben werden. \ No newline at end of file diff --git a/resources/css/shared/hub-components.css b/resources/css/shared/hub-components.css index 514a57d..012b775 100644 --- a/resources/css/shared/hub-components.css +++ b/resources/css/shared/hub-components.css @@ -54,6 +54,33 @@ border-bottom-color: rgba(255, 255, 255, 0.1); } + /* ============================================================ + * Page-Header (Titel links, Aktionen rechts) + * + * Ersetzt das frühere Inline-Style `grid-template-columns:1fr auto`: + * Das starre Zwei-Spalten-Grid konnte auf schmalen Screens nicht + * umbrechen — die Aktions-Spalte (auto = Inhaltsbreite) quetschte + * die Titel-Spalte zusammen (Buchstaben-Umbrüche im Titel, Buttons + * liefen aus der Box). Unterhalb von lg stapeln die Bereiche. + * ============================================================ */ + + .page-header { + display: grid; + align-items: end; + gap: 20px; + } + @media (min-width: 1024px) { + .page-header { + grid-template-columns: 1fr auto; + gap: 32px; + } + } + /* Aktions-Zeilen (Buttons rechts) dürfen auf schmalen Screens + umbrechen, statt aus dem Header zu laufen. */ + .page-header > .flex { + flex-wrap: wrap; + } + /* ============================================================ * Stat-Cards (KPI-Karten mit farbigem Strip links) * ============================================================ */ @@ -117,8 +144,15 @@ font-weight: 600; color: var(--color-ink); letter-spacing: -0.5px; - line-height: 1; + line-height: 1.05; margin-top: 14px; + /* Text-Werte (z. B. Portal-Name) dürfen die Karte nie sprengen. */ + overflow-wrap: anywhere; + } + @media (max-width: 480px) { + .stat-num { + font-size: 26px; + } } .stat-card.is-ok .stat-num { color: var(--color-ok); diff --git a/resources/views/admin/dashboard.blade.php b/resources/views/admin/dashboard.blade.php index ec6e08d..c03c97c 100644 --- a/resources/views/admin/dashboard.blade.php +++ b/resources/views/admin/dashboard.blade.php @@ -2,7 +2,7 @@