- 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
- Stellt sicher, dass die Karte erfolgreich geladen wird und sichtbar ist.
- Simuliert Rechtsklick auf Marker und überprüft, ob das Kontextmenü erscheint.
- Validiert die Sichtbarkeit des Menüeintrags "Station öffnen (Tab)" im Kontextmenü.
- Testet, ob ein Klick auf den Menüeintrag "Station öffnen (Tab)" , dass das Gerät in einem Tab öffnet.
- Überprüft, ob die URL des geöffneten Geräts den HTTP-Status 200 zurückgibt (erreichbar).
- Fügt Logs und Screenshots zur Fehlerbehebung hinzu.
fix: Marker von PNG auf SVG umgestellt und dynamisch eingefärbt
- Marker wurden von PNG-Bildern auf SVG-Grafiken umgestellt.
- Dynamische Farben basierend auf API-Daten hinzugefügt.
- Standardfarbe Grün (#008013) für Marker ohne ID definiert.
- Popup-Informationen beibehalten und verbessert.
- Marker-Icons nach links verschoben für bessere Ausrichtung.
- SVG-Icons für Marker implementiert und dynamisch eingefärbt basierend auf API-Daten (idLD und Attribute Co).
- Niedrigstes Level bestimmt die Farbe der Marker.
- Standardfarbe Grün (#008013) für Marker ohne ID hinzugefügt.
- Popup-Informationen mit Farbindikatoren und zusätzlichen Geräteinformationen erstellt.
- SVG-Struktur und innere Icons beibehalten, um eine konsistente Darstellung sicherzustellen.
Bereichsmarker werden jetzt nur angezeigt, wenn der editMode aktiviert ist.
Marker werden bei deaktiviertem editMode aus der Karte entfernt.
Dynamische Überwachung von Änderungen im editMode über localStorage und Event Listener implementiert.
Dragging für Marker im editMode aktiviert und Z-Index angepasst.
feat: GeocoderFeature mit Feature Toggle und Anpassungen integriert
- GeocoderFeature als separates Modul implementiert und initialisiert.
- Feature Toggle für Geocoder in .env.local hinzugefügt (NEXT_PUBLIC_ENABLE_GEOCODER).
- Dynamische Aktivierung des Geocoders über MapComponent.js basierend auf Feature-Flag.
- Anpassungen zur Entfernung bzw. Anpassung der Fehlermeldung "Nothing found".
- Styling-Verbesserungen für das Suchfeld mit Tailwind CSS.
- GeocoderFeature als separates Modul implementiert und initialisiert.
- Feature Toggle für Geocoder in .env.local hinzugefügt (NEXT_PUBLIC_ENABLE_GEOCODER).
- Dynamische Aktivierung des Geocoders über MapComponent.js basierend auf Feature-Flag.
- Anpassungen zur Entfernung bzw. Anpassung der Fehlermeldung "Nothing found".
- Styling-Verbesserungen für das Suchfeld mit Tailwind CSS.
- 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.
- Leaflet-Control-Geocoder integriert, um die Suche nach Koordinaten und Adressen zu ermöglichen.
- Suchfeld in der oberen linken Ecke platziert.
- Automatische Marker-Platzierung und Popup-Anzeige bei erfolgreicher Suche implementiert.
- Layer-Gruppen initialisiert und Suchfeld nach Layer-Setup hinzugefügt.
- Recoil Atom 'selectedPoiState' entfernt und durch Redux-Toolkit Slice ersetzt.
- Redux Actions hinzugefügt: setSelectedPoi, clearSelectedPoi.
- Selektor 'selectSelectedPoi' erstellt, um POI-Daten zu lesen.
- Komponenten angepasst (PoiUpdateModal, PoiUpdateModalWrapper, MapComponent), um Redux-Hooks zu verwenden.
- Reducer in rootReducer und store.js registriert.
- Funktionalität getestet und Fehlerbehebung implementiert.
- Recoil Atom für urlParameterSlice entfernt und durch Redux-Toolkit Slice ersetzt.
- Neue Actions `setMapId` und `setUserId` hinzugefügt, um Parameter zu aktualisieren.
- Selektoren `selectMapId` und `selectUserId` erstellt, um Parameter aus dem Zustand zu lesen.
- Standardwerte für `mapId` und `userId` entfernt; stattdessen Werte aus der URL geladen.
- Fehlermeldung hinzugefügt, wenn erforderliche URL-Parameter fehlen.
- Zustand wird jetzt dynamisch beim Laden der Seite über die URL gesetzt.
- Ersetzung des Recoil Atoms 'zoomTriggerState' durch Redux Toolkit Slice.
- Hinzugefügt: Aktionen für incrementZoomTrigger, decrementZoomTrigger, resetZoomTrigger und setZoomTrigger.
- Implementierung von Redux-Selektoren zum Zugriff auf den zoomTrigger-Zustand.
- Aktualisierung der Komponenten (MapComponent.js, DataSheet.js) auf Redux-Hooks (useSelector, useDispatch).
- Registrierung des zoomTriggerReducers im rootReducer und store.js.
- Überprüfung der Zoom In/Out-Funktionalität sowie Integration von Event-Handling für Mausrad und Kontextmenü.
- Fetch-Logik für GIS-Daten aus MapComponent.js ausgelagert.
- Neuer Hook: useFetchWebServiceMap im hooks-Verzeichnis hinzugefügt.
- Modularisierung und Wiederverwendbarkeit verbessert.
- Fetch-Logik für Benutzerrechte aus MapComponent.js in einen separaten Hook ausgelagert.
- Neuer Hook: useFetchUserRights im hooks-Verzeichnis hinzugefügt.
- Verbesserung der Modularität und Wiederverwendbarkeit.
- Logik zur Initialisierung und Aktualisierung von Marker-Layern aus MapComponent.js ausgelagert.
- Neuer Hook: useDynamicMarkerLayers im hooks-Verzeichnis hinzugefügt.
- Modularisierung und Wiederverwendbarkeit verbessert.
- Fetch-Logik zum Aktualisieren der Tooltip-Werte aus MapComponent.js ausgelagert.
- Neuer Hook: useUpdateGmaData im hooks-Verzeichnis hinzugefügt.
- Verbesserung der Modularität und Wiederverwendbarkeit.
- Fetch-Logik für Prioritätskonfiguration aus MapComponent.js in einen separaten Hook ausgelagert.
- Neuer Hook: useFetchPriorityConfig im hooks-Verzeichnis hinzugefügt.
- Verbesserung der Modularität und Wiederverwendbarkeit.
- Fetch-Logik für Linienstatusdaten aus MapComponent.js in einen separaten Hook ausgelagert.
- Neuer Hook: useFetchLineStatusData im hooks-Verzeichnis hinzugefügt.
- Verbesserung der Modularität und Wiederverwendbarkeit.
- Tooltip-Logik für Polylinien aus MapComponent.js in eigenen Hook ausgelagert.
- Neuer Hook: usePolylineTooltipLayer im hooks-Verzeichnis hinzugefügt.
- Dynamische Tooltip-Ausrichtung basierend auf Mausposition implementiert.
- Flexibilität für zukünftige Anpassungen verbessert.
feat: API-Endpunkte für Bereichs-Updates implementiert
- 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.