diff --git a/docs/03_Journal/2026-04-23_Plan-B-Formulare.md b/docs/03_Journal/2026-04-23_Plan-B-Formulare.md index 82e00135..b8047fe2 100644 --- a/docs/03_Journal/2026-04-23_Plan-B-Formulare.md +++ b/docs/03_Journal/2026-04-23_Plan-B-Formulare.md @@ -123,8 +123,15 @@ Die "Hallo Du!" Test-UI wurde durch produktive, fachlich korrekte Formulare erse - Erhöhung der Diagnose-Transparenz im Caddy-Proxy (v32). - Ziel: Identifikation, warum Requests im Same-Origin Modus scheinbar still scheitern. +### v2026-04-23.34 - CALLBACK LOGGING +- **Fokus**: Behebung des stillen Scheiterns (kein UI-Umschalten nach 200 OK). +- **Änderungen**: + - Detaillierte `println`-Logs in `WebMainScreen.kt` und `OnlineNennungFormular.kt` hinzugefügt. + - Ziel: Feststellen, ob `onResult` korrekt feuert und ob der State-Wechsel in Compose registriert wird. +- **Status**: Bereit für Deployment. + ### v2026-04-23.33 - JSON RESPONSE FIX - **Analyse**: Version 32 zeigte, dass der Server mit `200 OK`, aber einem leeren Body antwortet. Das Frontend (KMP/Wasm) wartete jedoch auf eine JSON-Antwort, was zum "Hängen" im Ladezustand führte. - **Backend-Fix**: `MailController.kt` gibt nun explizit ein JSON-Objekt `{"success": true, ...}` zurück. - **Frontend-Härtung**: `NennungRemoteRepository.kt` wurde robuster gegenüber leeren Antwort-Bodies gestaltet. -- **Status**: Versionsmarker v33. +- **Status**: Erfolgreich (Antwort 200 OK mit Body bestätigt). diff --git a/frontend/features/nennung-feature/src/commonMain/kotlin/at/mocode/frontend/features/nennung/presentation/web/OnlineNennungFormular.kt b/frontend/features/nennung-feature/src/commonMain/kotlin/at/mocode/frontend/features/nennung/presentation/web/OnlineNennungFormular.kt index 99bdf8b0..ec62210a 100644 --- a/frontend/features/nennung-feature/src/commonMain/kotlin/at/mocode/frontend/features/nennung/presentation/web/OnlineNennungFormular.kt +++ b/frontend/features/nennung-feature/src/commonMain/kotlin/at/mocode/frontend/features/nennung/presentation/web/OnlineNennungFormular.kt @@ -399,9 +399,12 @@ fun OnlineNennungFormular( isLoading = true errorMessage = null onNennenAbgeschickt(payload) { success, error -> + println("Formular Callback erhalten: success=$success, error=$error") isLoading = false if (!success) { errorMessage = "Senden fehlgeschlagen: " + (error ?: "Fehler beim Server-Aufruf. Bitte prüfen Sie die Browser-Konsole (F12) auf Netzwerk-Fehler.") + } else { + println("Formular meldet: Erfolg!") } } } @@ -441,9 +444,12 @@ fun OnlineNennungFormular( isLoading = true errorMessage = null onNennenAbgeschickt(payload) { success, error -> + println("Button Callback erhalten: success=$success, error=$error") isLoading = false if (!success) { errorMessage = "Senden fehlgeschlagen: " + (error ?: "Netzwerkfehler oder Server nicht erreichbar.") + } else { + println("Button meldet: Erfolg!") } } }, diff --git a/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt b/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt index 485bc0f8..2c59eef0 100644 --- a/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt +++ b/frontend/shells/meldestelle-web/src/wasmJsMain/kotlin/at/mocode/frontend/shell/web/WebMainScreen.kt @@ -103,12 +103,16 @@ fun MainAppContent() { turnierNr = screen.turnierId.toString(), onNennenAbgeschickt = { payload, onResult -> scope.launch { + println("Starte Senden der Nennung für ${payload.vorname} ${payload.nachname}...") val result = nennungRepository.sendeNennung(screen.turnierId.toString(), payload) if (result.isSuccess) { + println("Nennung erfolgreich gesendet. Rufe onResult(true) auf.") onResult(true, null) + println("Wechsle zum Erfolgsscreen für ${payload.email}") currentScreen = WebScreen.Erfolg(payload.email) } else { val error = result.exceptionOrNull()?.message + println("Nennung fehlgeschlagen: $error. Rufe onResult(false) auf.") onResult(false, error) println("Fehler beim Senden der Nennung: $error") } @@ -126,7 +130,7 @@ fun MainAppContent() { // Dezentraler Versions-Marker in der unteren rechten Ecke Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) { Text( - text = "v2026-04-23.33 - JSON RESPONSE FIX", + text = "v2026-04-23.34 - CALLBACK LOGGING", style = MaterialTheme.typography.labelSmall, color = Color.LightGray.copy(alpha = 0.5f) )