chore: consolidate redundant controllers in mail-service, improve backend stability, refine desktop UX, and enhance Vereinsverwaltung functionality

This commit is contained in:
2026-04-20 00:21:16 +02:00
parent bcabb86841
commit dfaa2e8545
14 changed files with 519 additions and 138 deletions
@@ -0,0 +1,28 @@
# Journal: 19. April 2026 - Backend Stabilität & Desktop UX-Refinement
## 🏗️ Backend: Infrastruktur & Mail-Service
* **Mail-Service:** Konflikt beim Request-Mapping behoben. Der redundante `NennungController` wurde entfernt und seine Funktionalität (Status-Update, Erstellung) in den zentralen `MailController` integriert.
* **Health-Checks:** `spring-boot-starter-actuator` zum `entries-service` hinzugefügt, um die 404-Fehler in der Consul-Überwachung zu eliminieren.
* **Mail-Features:** Neuer Endpunkt `POST /send-reply` im `MailController` implementiert, um Bestätigungs-Mails an Nenner mit dynamischer Absenderadresse (Turnier-spezifisch) zu senden.
## 💻 Desktop-App: Navigation & UI
* **Veranstaltungs-Konfiguration:** White-Screen Fix durch Korrektur der Navigation im `DesktopMainLayout.kt`. Es wird nun korrekt auf den `VeranstaltungKonfigScreen` aus dem Feature-Modul verwiesen.
* **Device-Setup:** UX-Verbesserung durch Entfernung blockierender `onKeyEvent` Handler. Die Navigation zwischen Feldern mittels **Tab** und **Enter** funktioniert nun reibungslos über den Standard-Fokus-Flow.
* **Design-System:**
* Suchfeld-Höhe in `MsFilterBar.kt` auf `44.dp` erhöht, um abgeschnittenen Text bei kleinen Schriftarten zu verhindern.
* `MsMasterDetailLayout` im Vereins-Bereich um einen **Preview-Bereich** (Card-Ansicht) erweitert.
## 🚀 Neue Features
### Nennungs-Eingang
* **Antwort-Funktion:** Ein neuer Button "Antwort & Übernahme" im Detail-Dialog ermöglicht das direkte Versenden einer Bestätigungs-Mail an den Nenner.
* **Sortierung:** Die Liste wird nun standardmäßig mit neuen Nennungen (`NEU`) zuerst sortiert.
### Vereins-Verwaltung
* **Card-Preview:** Der obere Teil des Detail-Bereichs zeigt nun eine visuelle Vorschau des Vereins (Name, Status, Ort).
* **Logo-Support:** Das Domain-Modell und der Editor wurden um ein `logoUrl` Feld erweitert, um Vereinslogos (z.B. für nicht registrierte Vereine) zu hinterlegen.
## 🧹 Curator Hinweis
Alle gemeldeten Start-Fehler im Backend wurden behoben. Die Desktop-App ist nun voll navigierbar und bietet verbesserte Effizienz für die Meldestellen-Mitarbeiter.
@@ -0,0 +1,43 @@
# Journal-Eintrag: Vereins-Verwaltung Erweiterung (Logo & Adresse)
**Datum:** 20. April 2026
**Status:** In Umsetzung / Teilweise abgeschlossen
**Beteiligte Agenten:** 🏗️ [Lead Architect], 🎨 [Frontend Expert], 🧹 [Curator]
## 📝 Zusammenfassung
Die Vereins-Verwaltung wurde um detaillierte Adressdaten und ein verbessertes Logo-Management erweitert. Dies unterstützt die Professionalisierung der Stammdaten und verbessert die UX durch direkte Integration von Google Maps.
## 🛠️ Technische Änderungen
### 1. Domain-Modell (`Verein.kt`)
* Erweiterung um Felder: `strasse`, `hausnummer`, `bundesland` (Enum).
* Neues Feld `logoBase64` für die Offline-Speicherung von optimierten Vereinslogos.
* Einführung des Enums `Bundesland` mit den 9 österreichischen Bundesländern zur Sicherstellung der Datenqualität (ÖTO-konform).
### 2. ViewModel (`VereinViewModel.kt`)
* Erweiterung des `VereinUiState` um die neuen Adress- und Logo-Felder.
* Implementierung der Change-Handler für alle neuen Felder.
* Anpassung der `onSave`- und `onAddNew`-Methoden zur Berücksichtigung der erweiterten Datenstruktur.
### 3. UI-Anpassungen (`VereinScreens.kt`)
* **Card-Preview:**
* Anzeige der vollständigen Adresse (Straße, Hausnummer, PLZ, Ort, Bundesland).
* Integration eines "Maps"-Buttons, der die Adresse direkt in Google Maps öffnet (via `LocalUriHandler`).
* Vergrößertes Logo-Display (80dp) mit modernem Design.
* **Editor:**
* Logische Gruppierung der Adressfelder (Straße/Nr. in einer Zeile, PLZ/Ort/Bundesland in der nächsten).
* Einsatz des `MsEnumDropdown` für die Bundesland-Auswahl.
* Vorbereitung einer "Logo-Upload-Zone" mit visuellem Feedback für Drag-and-Drop / FilePicker.
## 🔍 Verifikation (Vorschau)
* [x] Domain-Modell kompiliert.
* [x] ViewModel-Logik deckt alle neuen Felder ab.
* [x] UI-Layout ist für High-Density Enterprise-UIs optimiert (44dp Standard).
## 📌 Nächste Schritte
* Implementierung der tatsächlichen Bild-Skalierung und Konvertierung (JVM-spezifisch) im `VereinViewModel`.
* Anbindung des nativen `JFileChooser` für den Logo-Import.
* Finalisierung der Drag-and-Drop Logik (`onExternalDrag`).
---
*Dokumentiert durch den Curator.*