- Redux Slice 'poiReadFromDbTriggerSlice' eingeführt mit Trigger-Zähler
- Verwendet in index.js, AddPoiModalWindow.js, AddPOIModal.js und MapComponent.js
- Recoil entfernt und durch useSelector / dispatch(incrementTrigger()) ersetzt
- CHANGELOG.md auf 1.1.83 aktualisiert
- entfernt: NEXT_PUBLIC_SERVER_URL aus .env.local
- verwendet jetzt API_PORT_MODE zur Zielermittlung (dev = :80)
- neue technische Dokumentation unter /docs/server/pages/api/apiProxy.md
- CHANGELOG.md und appVersion.js aktualisiert (1.1.77)
- Geräte-Liste wird jetzt direkt aus dem Redux-Store (locationDevicesFromDB) verwendet.
- Dropdown-Menü zeigt alle verfügbaren Geräte aus der Datenbank.
- Beim Öffnen des Modals wird der vorher zugewiesene Gerätname automatisch ausgewählt (Pre-Selection).
- Cleanup und Optimierung: Keine separaten API-Calls mehr im Modal.
- Struktur verbessert durch Auslagerung der Lade-Logik in useInitLocationDevices Hook.
- JSON-Dateien aus /webServiceMockdata als echte API-Mocks verfügbar
- API-Endpunkte unter /api/mockData/webService/ hinzugefügt
- Fehlerhafte Platzhalter in den API-Handlern korrigiert
- Alle Mock-URLs in config.js auf die neuen API-Routen umgestellt
- Tests erfolgreich durchgeführt, Mock-API funktioniert einwandfrei"
- Verhindert Absturz der Anwendung, wenn die gis_lines-Tabelle fehlt
- Gibt stattdessen eine Warnung in der Konsole aus
- Stellt sicher, dass der Datenbankname dynamisch aus der .env-Datei geladen wird"
- `index.js` als Client-Komponente deklariert (`"use client"`) zur Vermeidung von SSR-Problemen.
- `useEffect` optimiert, um unendliche API-Requests durch `isMounted`-Check zu verhindern.
- `loadData()` angepasst, um API-Fehler korrekt abzufangen und erneute Ladeversuche zu vermeiden.
- Doppelte Registrierung von `poiReadFromDbTriggerAtom` durch HMR verhindert.
- Ungültige MySQL-Option `acquireTimeout` entfernt, um Verbindungsfehler zu beheben.
Diese Änderungen verhindern unerwartete Reloads und verbessern die Stabilität der Anwendung.
- Vier Proxy-Endpunkte implementiert:
1. gisStationsStatusDistrict
2. gisStationsStaticDistrict
3. gisStationsMeasurements
4. gisSystemStatic
- API-Integrationstests mit Jest für alle Endpunkte erstellt:
- Tests verwenden echte API-Responses statt Mock-Daten.
- Erfolgreiche Anfragen mit gültigen Parametern getestet.
- Fehlende Parameter und ungültige Parameter getestet.
- Code enthält:
- Dynamische URL-Generierung für Proxy-Weiterleitungen.
- Prüfung von Headern, Statuscodes und JSON-Strukturen.
- Unterstützung für CORS und OPTIONS-Anfragen.
- Ergebnis:
- Alle Tests erfolgreich bestanden.
- APIs bereit für produktive Nutzung und Erweiterungen.
- Unterstützung für Parameter 'm' (idMap) und 'u' (idUser) zum Abrufen von Systemdaten.
- Dynamische URL-Ermittlung basierend auf Anfrage-Headern (Protokoll, Host).
- Parameter-Validierung mit Fehlerhinweis, falls Werte fehlen.
- Fehlerbehandlung und Debugging-Logs hinzugefügt.
- XML-Daten vom Webservice werden direkt an den Client weitergeleitet.
- Unterstützung für Parameter 'm' (idMap) und 'u' (idUser) zum Abrufen von Statusdaten.
- Dynamische URL-Ermittlung basierend auf Anfrage-Headern (Protokoll, Host).
- Parameter-Validierung mit Fehlerhinweis, falls Werte fehlen.
- Fehlerbehandlung und Debugging-Logs hinzugefügt.
- XML-Daten vom Webservice werden direkt an den Client weitergeleitet.
- Dynamische Unterstützung für Parameter 'm' oder 'idMap' zum Abrufen von Messdaten.
- CORS-Header und OPTIONS-Preflight für Cross-Origin-Anfragen konfiguriert.
- Dynamische Ermittlung von Protokoll und Hostname aus der Anfrage.
- Parameter-Validierung hinzugefügt mit Fehlerhinweis, falls 'm' oder 'idMap' fehlt.
- Fehlerbehandlung verbessert, einschließlich Statuscodes und Debugging-Logs.
- XML-Daten vom Webservice werden direkt an den Client weitergeleitet.
- Dynamische Ermittlung von Hostname und Port aus der Anfrage (req.headers.host).
- Unterstützung für URL-Parameter 'm' (idMap) und 'u' (idUser) hinzugefügt.
- Fehlerbehandlung und Logging verbessert.
- CORS-Header und OPTIONS-Preflight für Cross-Origin-Anfragen konfiguriert.
- XML-Daten vom Webservice werden direkt an den Client weitergeleitet.
- API-Route hinzugefügt: /api/gisStationsStaticDistrict
- Dynamisches Lesen von URL-Parametern (idMap, idUser) aus Anfrage
- SOAP-Anfrage an ASP.NET-Webservice weitergeleitet
- XML-Antwort verarbeitet und zurückgegeben
- CORS-Header und OPTIONS-Preflight für Sicherheit konfiguriert
- Fehlerbehandlung und Debug-Logs integriert
- Container vereinfacht und auf Volle-Breite-Layout umgestellt.
- Überflüssige Elemente im Suchfeld (z.B. Buttons) entfernt.
- Eingabefeld auf maximale Breite erweitert.
- Platzhaltertext auf Deutsch gesetzt.
- Neuer Endpunkt `updateBereich.js` für die Aktualisierung von Bereichskoordinaten per PUT-Request.
- Utility-Funktion `updateBereichUtil.js` hinzugefügt, um API-Aufrufe für Bereichs-Updates im Frontend zu kapseln.
- Fehler bei der URL in `updateBereichUtil.js` behoben, um sicherzustellen, dass die Koordinaten korrekt aktualisiert werden.
- Verbesserte Fehlerbehandlung und Logging zur Debug-Unterstützung.
- Hostname dynamisch aus `window.location.hostname` extrahiert
- Port 3000 explizit in der URL ergänzt
- Fehler beim Parsen von JSON behoben (404-HTML-Antwort statt JSON)
- Verbesserte Fehlerprotokollierung und Debugging-Logs in `useBereicheMarkersLayer.js`
- Tooltip-Anzeige für Bereich und Standort optimiert
Gängige Praxis: *Slice.js
Verwendung: Wenn du Redux Toolkit und createSlice nutzt, ist der Postfix Slice gängiger.
Begründung:
createSlice ist ein Begriff aus Redux Toolkit.
Der Name vermittelt, dass die Datei nicht nur den Reducer enthält, sondern auch Aktionen und den initialen Zustand.
Häufig in modernen Projekten verwendet.
- Protokoll und Hostname dynamisch über window.location abgeleitet.
- Basis-URL auf /talas5/devices/ angepasst.
- Unterstützt flexible Umgebungskonfiguration (z. B. Entwicklungs- und Produktionsumgebungen).
- Ursache des Problems: Inkonsistenz bei der Benennung des Layers in `useLayerVisibility` ("SMSFunkmodem" vs. "SMSModem").
- Anpassung des Layer-Namens in `useLayerVisibility`, um mit der `GisSystemStatic`-Datenstruktur und `mapLayersVisibility` übereinzustimmen.
- Konflikt führte dazu, dass der SMS Modem-Layer nicht korrekt sichtbar/unsichtbar geschaltet wurde.
- Debugging und Anpassungen führten zur erfolgreichen Behebung des Fehlers.
Dieser Fix stellt sicher, dass die Sichtbarkeit der Marker-Layer konsistent und wie erwartet funktioniert.
- Created mock API route for fetching GIS lines data (/api/talas_v5_DB/gisLines/readGisLinesMock)
- Created mock API route for fetching station names data (/api/talas_v5_DB/station/getAllStationsNamesMock)
- Replaced original API calls in useLineData hook with mock routes for development and testing