All checks were successful
- **MailController:** Erweitere `@CrossOrigin`-Headers und Methoden für Preflight-Checks. - **GlobalSecurityConfig:** Reaktiviere CORS und füge explizite `CorsConfigurationSource` hinzu. - **Tests:** Fix für `NoSuchBeanDefinitionException` bei Integrationstests. - **UI:** Aktualisiere Versionsmarker auf `v2026-04-23.15 - CORS STABILITY`.
4.7 KiB
4.7 KiB
Journal-Eintrag: Plan-B Online-Nenn-Formulare
Datum: 23. April 2026 Agenten: 🎨 [Frontend Expert], 🖌️ [UI/UX Designer], 👷 [Backend Developer], 🧹 [Curator]
🎯 Zielsetzung
Erstellung von zwei hoch-optimierten Web-Formularen für die Turniere in Neumarkt (25. & 26. April 2026) im Rahmen des "Plan-B" (Offline-Meldestelle mit E-Mail-Sync).
🛠️ Durchgeführte Änderungen
🎨 Frontend & UI/UX
OnlineNennungFormular.kt: Komplette Neugestaltung des Formulars.- Integration der spezifischen Bewerbe für CSN-C Neumarkt (25.04.) und CDN-C Neumarkt (26.04.).
- Implementierung der Validierungslogik für den "Jetzt nennen" Button (Bernstein-Orange).
- Hinzufügen von Feldern für Reiter-Name, Kontakt (E-Mail/Tel), Pferdename und Anmerkungen.
- Information Density: Alle Bewerbe direkt auswählbar.
- Mobile-First Optimierung: Responsives Layout mittels
BoxWithConstraints. Vertikaler Stack für Formularfelder auf Mobile, optimierte Paddings, Schriftgrößen und Touch-Targets.
WebMainScreen.kt: Aktualisierung der Landing-Page mit den realen Turnierdaten für Neumarkt.- Mobile-First Optimierung: Turnier-Karten passen sich an schmale Bildschirme an (Buttons nebeneinander, Icons für bessere UX).
👷 Backend & Integration
NennungRemoteRepository.kt: Verknüpfung des neuen Payloads mit demmail-service.MailController.kt: Validierung der API-Schnittstelle. Der Service ist so konfiguriert, dass er:- Die Nennung in der Datenbank persistiert.
- Eine Benachrichtigungs-Mail an die Meldestelle (
online-nennen@mo-code.at) sendet. - Eine automatische Bestätigung an den Reiter schickt.
🏁 Ergebnis
Die "Hallo Du!" Test-UI wurde durch produktive, fachlich korrekte Formulare ersetzt. Sobald ein Reiter auf "Jetzt nennen" klickt, wird der E-Mail-Workflow ausgelöst.
Status: Bereit für den Live-Einsatz am Wochenende. 🚀
2026-04-23 09:35 - Version 12: Hard-coded HTTPS & Injektions-Fix
- Problem: 'Mixed Content' Fehler blockierte API-Aufrufe, da die Wasm-App trotz HTTPS-Origin versuchte, 'http://10.0.0.50' (Lokale IP) via HTTP zu kontaktieren.
- Lösung:
PlatformConfig.wasmJs.kt: Implementierung eines sicheren HTTPS-Fallbacks aufhttps://api.mo-code.atim Code, falls die Docker-Injektion (z.B. durch Browser-Cache) fehlschlägt.dc-planb.yaml: Statische Konfiguration der HTTPS-URLs ohne Umgebungsvariablen-Platzhalter, um Fehlkonfigurationen am Host auszuschließen.- UI-Marker auf
v2026-04-23.12 - HARD-CODED HTTPSaktualisiert. - Fehlerbehandlung in
OnlineNennungFormular.ktzeigt nun explizit Netzwerkfehler an, falls diese auftreten.
2026-04-23 10:15 - Version 13: Radikale HTTPS-Priorisierung
- Problem: Trotz harten Fallbacks im Code versuchte der Browser weiterhin
http://10.0.0.50(Mixed Content) aufzurufen. Ursache war die Priorisierung von dynamischen Variablen undwindow.location.originin derPlatformConfig.wasmJs.kt. - Lösung:
PlatformConfig.wasmJs.kt: Alle Logiken zur Erkennung von URLs wurden temporär deaktiviert. Die FunktionenresolveMailServiceUrl()undresolveApiBaseUrl()geben nun zwingendhttps://api.mo-code.atzurück.- Dies umgeht jegliches Caching von
index.htmloder fälschlich injizierte Umgebungsvariablen. - UI-Marker auf
v2026-04-23.13 - RADICAL HTTPS PRIORITIZATIONaktualisiert.
2026-04-23 10:45 - Version 14: CORS Reanimation
- Problem: Trotz HTTPS-Fix blockierte die CORS-Policy im Backend die Anfragen von
https://app.mo-code.at. - Lösung:
GlobalSecurityConfig.kt: CORS explizit wieder aktiviert (.cors { }), da Microservices im Plan-B direkt (ohne Gateway) angesprochen werden könnten.MailController.kt:@CrossOriginum explizite Header (allowedHeaders = ["*"]) und Methoden (methods = [...]) erweitert, um Preflight-Checks (OPTIONS) korrekt zu bedienen.- UI-Marker auf
v2026-04-23.14 - CORS REANIMATIONaktualisiert.
2026-04-23 11:00 - Version 15: CORS Stability & Test Fix
- Problem: Aktivierung von
.cors { }inGlobalSecurityConfig.ktverursachteNoSuchBeanDefinitionExceptionin Spring-Integration-Tests, da keineCorsConfigurationSourceBean definiert war. - Lösung:
GlobalSecurityConfig.kt: ExpliziteCorsConfigurationSourceBean implementiert, die sowohl lokale Entwicklungsumgebungen (localhost) als auch produktive URLs (*.mo-code.at) whitelisted.- Integration von
it.configurationSource(corsConfigurationSource())in diefilterChainzur Behebung der Testfehler. - UI-Marker auf
v2026-04-23.15 - CORS STABILITYaktualisiert. - Verifiziert durch erfolgreichen Durchlauf des
EntriesIsolationIntegrationTest.