### fix: 34 erweitere Logging für Debugging und Callback-Analyse
- **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:
@@ -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).
|
- Erhöhung der Diagnose-Transparenz im Caddy-Proxy (v32).
|
||||||
- Ziel: Identifikation, warum Requests im Same-Origin Modus scheinbar still scheitern.
|
- 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
|
### 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.
|
- **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.
|
- **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.
|
- **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).
|
||||||
|
|||||||
+6
@@ -399,9 +399,12 @@ fun OnlineNennungFormular(
|
|||||||
isLoading = true
|
isLoading = true
|
||||||
errorMessage = null
|
errorMessage = null
|
||||||
onNennenAbgeschickt(payload) { success, error ->
|
onNennenAbgeschickt(payload) { success, error ->
|
||||||
|
println("Formular Callback erhalten: success=$success, error=$error")
|
||||||
isLoading = false
|
isLoading = false
|
||||||
if (!success) {
|
if (!success) {
|
||||||
errorMessage = "Senden fehlgeschlagen: " + (error ?: "Fehler beim Server-Aufruf. Bitte prüfen Sie die Browser-Konsole (F12) auf Netzwerk-Fehler.")
|
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
|
isLoading = true
|
||||||
errorMessage = null
|
errorMessage = null
|
||||||
onNennenAbgeschickt(payload) { success, error ->
|
onNennenAbgeschickt(payload) { success, error ->
|
||||||
|
println("Button Callback erhalten: success=$success, error=$error")
|
||||||
isLoading = false
|
isLoading = false
|
||||||
if (!success) {
|
if (!success) {
|
||||||
errorMessage = "Senden fehlgeschlagen: " + (error ?: "Netzwerkfehler oder Server nicht erreichbar.")
|
errorMessage = "Senden fehlgeschlagen: " + (error ?: "Netzwerkfehler oder Server nicht erreichbar.")
|
||||||
|
} else {
|
||||||
|
println("Button meldet: Erfolg!")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
+5
-1
@@ -103,12 +103,16 @@ fun MainAppContent() {
|
|||||||
turnierNr = screen.turnierId.toString(),
|
turnierNr = screen.turnierId.toString(),
|
||||||
onNennenAbgeschickt = { payload, onResult ->
|
onNennenAbgeschickt = { payload, onResult ->
|
||||||
scope.launch {
|
scope.launch {
|
||||||
|
println("Starte Senden der Nennung für ${payload.vorname} ${payload.nachname}...")
|
||||||
val result = nennungRepository.sendeNennung(screen.turnierId.toString(), payload)
|
val result = nennungRepository.sendeNennung(screen.turnierId.toString(), payload)
|
||||||
if (result.isSuccess) {
|
if (result.isSuccess) {
|
||||||
|
println("Nennung erfolgreich gesendet. Rufe onResult(true) auf.")
|
||||||
onResult(true, null)
|
onResult(true, null)
|
||||||
|
println("Wechsle zum Erfolgsscreen für ${payload.email}")
|
||||||
currentScreen = WebScreen.Erfolg(payload.email)
|
currentScreen = WebScreen.Erfolg(payload.email)
|
||||||
} else {
|
} else {
|
||||||
val error = result.exceptionOrNull()?.message
|
val error = result.exceptionOrNull()?.message
|
||||||
|
println("Nennung fehlgeschlagen: $error. Rufe onResult(false) auf.")
|
||||||
onResult(false, error)
|
onResult(false, error)
|
||||||
println("Fehler beim Senden der Nennung: $error")
|
println("Fehler beim Senden der Nennung: $error")
|
||||||
}
|
}
|
||||||
@@ -126,7 +130,7 @@ fun MainAppContent() {
|
|||||||
// Dezentraler Versions-Marker in der unteren rechten Ecke
|
// Dezentraler Versions-Marker in der unteren rechten Ecke
|
||||||
Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) {
|
Box(modifier = Modifier.fillMaxSize().padding(8.dp), contentAlignment = Alignment.BottomEnd) {
|
||||||
Text(
|
Text(
|
||||||
text = "v2026-04-23.33 - JSON RESPONSE FIX",
|
text = "v2026-04-23.34 - CALLBACK LOGGING",
|
||||||
style = MaterialTheme.typography.labelSmall,
|
style = MaterialTheme.typography.labelSmall,
|
||||||
color = Color.LightGray.copy(alpha = 0.5f)
|
color = Color.LightGray.copy(alpha = 0.5f)
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user