29-05-2026 Optimierungen Fixes am Code

This commit is contained in:
Kevin Adametz 2026-05-29 12:42:05 +00:00
parent e8c47b7553
commit 4bb9094207
31 changed files with 5141 additions and 76 deletions

View file

@ -187,7 +187,7 @@ aber:
---
## Gesamt-Status (Stand 2026-05-20)
## Gesamt-Status (Stand 2026-05-29)
| Phase | Inhalt | Status |
|---|---|---|
@ -198,6 +198,7 @@ aber:
| 4 | Listen/Detail durchgehen (4A4J) | ✅ **komplett** |
| 5 | Dark Mode konsistent | ✅ **abgeschlossen** |
| 6 | Auth-Cleanup | ✅ **abgeschlossen** |
| 7 | Press-Release-Form-Refactor (7A7F) | ✅ **abgeschlossen** (`19-PHASE-7-…`) |
### Phase 4 — Sub-Päckchen im Detail
@ -219,13 +220,21 @@ aber:
> Die hub-flux-Roadmap ist mit Phase 6 **vollständig** abgeschlossen.
> Alle weiteren Themen sind eigene Initiativen.
**🟡 In Planung — Phase 7 (Press-Release-Form-Refactor):**
Mockup `User Neue Mitteilung presseportale.html` wird auf den
**✅ Abgeschlossen — Phase 7 (Press-Release-Form-Refactor):**
Mockup `User Neue Mitteilung presseportale.html` auf den
Customer-Create/Edit-Flow übertragen. Plan-Doc:
`19-PHASE-7-PRESS-RELEASE-FORM.md`.
Päckchen 7A (Migrations) → 7B (flux:editor + Sanitizer) →
7C (Customer-Create-UI) → 7D (Customer-Edit-UI) →
7E (Anhänge-Manager) → 7F (Scheduling/Embargo, optional).
`19-PHASE-7-PRESS-RELEASE-FORM.md`. Alle Päckchen umgesetzt:
7A (Migrations: subtitle/boilerplate_override/scheduled_at/
embargo_at + attachments-Tabelle + companies.boilerplate) →
7B (`flux:editor` + `PressReleaseHtmlSanitizer` via mews/purifier) →
7C (Customer-Create-UI, 2-Spalter mit sticky Settings-Sidebar) →
7D (Customer-Edit-UI) → 7E (Anhänge-Manager) →
7F (Scheduling/Embargo + `press-releases:publish-scheduled`
Command + 5-Min-Scheduler). Admin-Create/Edit ziehen optisch mit;
Scheduling-UI bleibt Customer-seitig. Detail siehe `PROGRESS.md`
(Eintrag 2026-05-22).
### Offene Folge-Initiativen
1. **Manueller Dark-Mode Smoke-Test**: Im Browser User-Menü →
Erscheinung → „Dunkel" und durch die Hauptseiten klicken
@ -233,10 +242,10 @@ Päckchen 7A (Migrations) → 7B (flux:editor + Sanitizer) →
Lesbar + konsistent. Kleine Polish-Runde, falls visuelle
Auffälligkeiten.
2. **PM-Form-Wizard-Refactor**: Mockup
`User Neue Mitteilung presseportale.html` auf den bestehenden
Press-Release-Create/Edit-Flow übertragen. Größere Aktion mit
eigener Phase.
2. **Admin-Create/Edit nachziehen**: Die Admin-PM-Forms haben das
Phase-7-Layout optisch übernommen, aber Scheduling/Embargo-UI
ist bewusst Customer-seitig geblieben. Bei Bedarf als kleines
Folge-Päckchen für Admins ergänzen.
3. **Web-Frontend-Block** (eigenständig, NICHT Teil von Phase 16):
Die noch ungenutzten Mockups

View file

@ -5,6 +5,118 @@
---
## 2026-05-29 · Wartung · Test-Regression-Fix + Phase-7-Doku nachgezogen
Review der Gesamt-Umsetzung. Zwei Befunde behoben:
### Fix — `ProfileUpdateTest > profile page is displayed`
Seit dem Customer-Portal-Umbau ist `/settings/profile` ein
**Redirect** auf `/admin/me/profile` (route `me.profile`), die
Profil-Pflege liegt jetzt in der Volt-Komponente
`customer.profile`. Der Starter-Kit-Test machte aber weiterhin
`GET /settings/profile``assertOk()` und lief deshalb auf 302
statt 200 (undokumentierte Regression aus dem Commit
„Optimierung der User und Admin Panels", 2026-05-22).
Test umgestellt auf `assertRedirect('/admin/me/profile')`. Das
Rendern der Zielseite ist bereits durch
`CustomerProfileSecurityTest` (Volt-Komponententest) abgedeckt,
also keine Doppelung. Die übrigen 4 Tests der Datei nutzen
weiterhin `Volt::test('settings.profile')` / `delete-user-form`
(Komponenten existieren und sind funktional).
### Doku-Sync
Phase 7 war im Code vollständig umgesetzt (siehe Eintrag unten),
aber im Log nicht erfasst und in den Status-Tabellen
widersprüchlich (`19-PHASE-7` „✅", `03-WEITERE-PHASEN` „🟡 in
Planung", `README` noch auf Stand Phase 2). Nachgezogen:
- Phase-7-Eintrag in diesem Log ergänzt.
- `README.md` Status-Tabelle auf Phase 07 aktualisiert.
- `03-WEITERE-PHASEN.md` Phase 7 von „🟡 In Planung" auf
„✅ abgeschlossen" + Gesamt-Status-Tabelle ergänzt.
**Validierung**:
- `php artisan test --compact` → 359 passed, 3 skipped,
1 failed (weiterhin nur der pre-existing `ApiDocumentationTest`,
fehlende `docs/api/v1.yml`)
- `vendor/bin/pint tests/Feature/Settings/ProfileUpdateTest.php`
→ fixed (EOF-Blankline)
- `npm run build:portal` → grün (436.51 KB CSS / 58.95 KB gzip)
---
## 2026-05-22 · Phase 7 · Press-Release-Form-Refactor ✅ (retroaktiv dokumentiert)
> Großes Modul-Refactor außerhalb der ursprünglichen hub-flux-
> Roadmap (06). Vorlage:
> `dev/frontend/tailwind_v3/User Neue Mitteilung presseportale.html`.
> Plan-Doc: `19-PHASE-7-PRESS-RELEASE-FORM.md`.
> Dieser Eintrag wurde am 2026-05-29 nachgetragen — die Arbeit
> selbst entstand am 21./22.05. (Commit „Optimierung der User und
> Admin Panels").
**7A — Migrations + Models**
- `add_phase7_fields_to_press_releases` (subtitle,
boilerplate_override, scheduled_at, embargo_at — alle nullable)
- `create_press_release_attachments_table` (analog
press_release_images, mit sort_order, soft-deletes)
- `add_boilerplate_to_companies` (companies.boilerplate)
- Models + Factory + Relationen + Casts.
**7B — Editor + Sanitizer**
- `composer require mews/purifier ^3.4` (approved)
- `App\Services\PressRelease\PressReleaseHtmlSanitizer`
(Allowlist p/br/h2/h3/strong/em/u/ul/ol/li/blockquote/a)
- `<flux:textarea>``<flux:editor>` mit reduzierter Toolbar.
- Test: `PressReleaseHtmlSanitizerTest`.
**7C/7D — Customer Create + Edit Form (UI)**
- 2-Spalter mit sticky Settings-Sidebar (Status & Absenden,
Portal read-only-Badge, Pressekontakt-Single-Select,
Themen-Tags, Veröffentlichung, SEO).
- Linke Spalte: Firma-Selector, Titel/Untertitel mit
Counter-Pillen (`.pr-meter`), `flux:editor`, Medien,
Anhänge, Boilerplate-Box mit Override-Toggle.
- Hub-Form-Bausteine in `hub-components.css` ergänzt
(`.pr-form-label`, `.pr-meter`, `.pr-bald-badge`,
`.pr-ai-hint`, `.pr-check-row`, `.pr-boiler`, `.pr-tag-chip`,
`.pr-pub-opt` …).
- Live-Re-Validation (`updated()` re-validiert Felder mit
bestehendem Error) + Sammel-Toast bei Validierungsfehler.
- Neues JS-Asset `portal-form-hooks` (Build).
- Tests: `CustomerPressReleaseCreatePhase7Test` (8),
`CustomerPressReleaseEditPhase7Test` (9).
**7E — Anhänge-Manager**
- `App\Services\PressRelease\PressReleaseAttachmentStorage`
- Komponente
`livewire/components/press-release-attachments-manager.blade.php`
(upload/remove/reorder, PDF/DOCX/XLSX/PPTX, Tile-Layout).
**7F — Scheduling + Embargo**
- UI: Radio „Geplanter Termin" + `datetime-local`,
Embargo-Switch + Date-Picker.
- Validation: scheduled_at min. 5 Min Zukunft, embargo_at
Zukunft (nur wenn Toggle aktiv).
- `PressReleaseService::publish()``resolvePublishedAt()`
(published_at > scheduled_at > embargo_at-Verschiebung > now).
- Command `press-releases:publish-scheduled`
(`App\Console\Commands\PublishScheduledPressReleases`,
`--dry-run`, `--limit=N`) + Scheduler-Eintrag in
`routes/console.php` (`everyFiveMinutes`, `withoutOverlapping`,
`runInBackground`).
- Tests: `PressReleaseSchedulingTest` (11),
`CustomerPressReleaseSchedulingFormTest` (5).
**Effekt auf die Suite**: von dokumentierten ~231 auf ~360 Tests
gewachsen. Admin-Create/Edit ziehen das Layout vorerst NUR
optisch mit; Scheduling/Embargo-UI bleibt Customer-seitig
(laut Plan-Doc Out-of-Scope für Admin in Phase 7).
---
## 2026-05-20 · Phase 6 · Auth-Cleanup ✅
Mit Phase 6 ist die hub-flux-Roadmap (Phase 06) **vollständig

View file

@ -11,11 +11,16 @@
|-------|--------------|--------|
| 0 | Design-Tokens vereinheitlichen | **✅ abgeschlossen** (2026-05-19) |
| 1 | Portal-Shell (Sidebar, Layout, Brand-Mark) | **✅ abgeschlossen** (2026-05-19) |
| 2 | Customer-Dashboard auf Mockup-Stil (inkl. Topbar) | 🟡 wartet auf Freigabe |
| 3 | Admin-Dashboard konsistent | ⚪ später |
| 4 | Listen-/Detail-Pages | ⚪ iterativ |
| 5 | Dark Mode konsistent | ⚪ später |
| 6 | Auth-Konsolidierung (optional) | ⚪ optional |
| 2 | Customer-Dashboard auf Mockup-Stil | **✅ abgeschlossen** (in P1, verfeinert in 4J) |
| 3 | Admin-Dashboard konsistent | **✅ abgeschlossen** (in P1, verfeinert in 4J) |
| 4 | Listen-/Detail-Pages (4A4J) | **✅ abgeschlossen** (2026-05-20) |
| 5 | Dark Mode konsistent | **✅ abgeschlossen** (2026-05-20) |
| 6 | Auth-Cleanup | **✅ abgeschlossen** (2026-05-20) |
| 7 | Press-Release-Form-Refactor (7A7F) | **✅ abgeschlossen** (2026-05-22) |
Die hub-flux-Roadmap (Phase 06) ist vollständig abgeschlossen; Phase 7
(PM-Form-Refactor) als Folge-Initiative ebenfalls. Detail-Plan für Phase 7:
[`19-PHASE-7-PRESS-RELEASE-FORM.md`](./19-PHASE-7-PRESS-RELEASE-FORM.md).
→ Tagesaktueller Fortschritt: [`PROGRESS.md`](./PROGRESS.md)