### fix: 34 erweitere Logging für Debugging und Callback-Analyse
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/services/mail/Dockerfile, mail-service, mail-service) (push) Successful in 5m41s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 4m12s

- **OnlineNennungFormular:** `println`-Logs für Callback-Status (`success`, `error`) hinzugefügt.
- **WebMainScreen:** Erfolgs-, Fehler- und State-Logs ergänzt.
- **Docs:** Neue Logging-Strategie dokumentiert.
- **UI:** Versionsmarker auf `v2026-04-23.34 - CALLBACK LOGGING` aktualisiert.
This commit is contained in:
Stefan Mogeritsch 2026-04-23 17:17:33 +02:00
parent bd06efe05d
commit 5cbf4fdfc0
3 changed files with 19 additions and 2 deletions

View File

@ -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).

View File

@ -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!")
}
}
},

View File

@ -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)
)