- 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"
- Sichtbarkeitsstatus für Kabelstrecken/Polylines wird jetzt zentral im Redux-Store verwaltet.
- Initialer Zustand wird aus localStorage gelesen und direkt in Redux gesetzt.
- DataSheet-Checkbox steuert Redux-Status und synchronisiert mit localStorage.
- MapComponent.js verwendet Redux-State direkt zur Steuerung von setupPolylines.
- setupPolylines.js ist jetzt komplett "dumm" und bekommt den Sichtbarkeitsstatus nur noch als Parameter.
- Konsistente Lösung für Initial-Laden, Checkbox-Wechsel und Map-Neuladen umgesetzt.
- Problem: Leaflet-Events besitzen kein preventDefault(), nur deren originalEvent (natives DOM-Event).
- Lösung: Zugriff auf event.originalEvent eingebaut, um Fehler beim Kontextmenü zu vermeiden.
- Test: Marker-Kontextmenü öffnet Popup jetzt korrekt, ohne Runtime Error.
- Polylinien werden nur angezeigt, wenn die zugehörigen Stationen (CPLs) aktiv sind
- Redux speichert den Status der Stationen (1 = aktiv, 0 = inaktiv)
- setupPolylines.js überprüft jetzt direkt in Redux, ob eine Linie gezeichnet werden soll
- Entfernt den unnötigen activeLines-Parameter in MapComponent.js für eine bessere Struktur
- Optimierte Performance: Linien ändern sich dynamisch ohne Seiten-Reload
- `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.
- 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.
- 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.
- 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.
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.
- Beim Klicken auf das Plus-Symbol wird jetzt nur der erste nahegelegene Marker simuliert angeklickt.
- Überflüssige Klick-Events auf andere Marker wurden entfernt, um die Benutzerfreundlichkeit zu erhöhen.
- Konsolenmeldungen für die Marker-Auswahl bleiben erhalten.
- Anstatt `map.spiderfy` zu verwenden, wird jetzt das Klick-Event auf nahegelegene Marker simuliert.
- Problem mit `TypeError: map.spiderfy is not a function` behoben.
- Marker im Umkreis von 50 Pixeln werden korrekt erkannt und ihr Klick-Event ausgelöst.
- Sicherstellung, dass vorhandene Marker-Events reibungslos funktionieren.
feat: Integrationstest für openInNewTab erfolgreich implementiert
- Mocking für Leaflet-Objekte (Marker, Polyline) erstellt.
- Tests hinzugefügt, die sicherstellen:
- Marker-Links werden korrekt generiert und geöffnet.
- Polyline-Links werden korrekt generiert und geöffnet.
- Fehler ausgegeben werden, wenn kein gültiger Link gefunden wird.
- Jest-Konfiguration angepasst, um globale Objekte wie window zu mocken.
- Funktionalität und Tests erfolgreich überprüft.
- zIndexOffset in `createAndSetDevices` von `100 * (5 - priority)` auf `100 * (6 - priority)` geändert.
- Dadurch erhalten Marker mit höherer Priorität einen größeren zIndex-Wert.
- Problem gelöst, bei dem POI-Marker von anderen Layern oder Markern überlagert wurden.
- Logik angepasst, um die Sichtbarkeit und Priorisierung der Marker zu stabilisieren.
- `.env.local` angepasst, um den Datenbank-Host (DB_HOST) auf `127.0.0.1` zu setzen.
- `mysqlPool.js` aktualisiert, um eine Verbindung zur lokalen Datenbank über `127.0.0.1` zu ermöglichen.
- DNS-Server erfolgreich getestet, um Webseitenerreichbarkeit über DNS-Namen sicherzustellen.
- Sicherstellung, dass die Anwendung über `test.mytest.local` korrekt funktioniert.
- Protokoll und Hostname dynamisch über window.location abgeleitet.
- Basis-URL auf /talas5/devices/ angepasst.
- Unterstützt flexible Umgebungskonfiguration (z. B. Entwicklungs- und Produktionsumgebungen).
- Viele console.log-Ausgaben auskommentiert und durch localStorage ersetzt.
- Debugging-Daten werden nun persistent gespeichert, um eine einfachere Nachverfolgung zu ermöglichen.
- Verbessert die Übersichtlichkeit und reduziert das Scrollen in der Konsole.
- Marker-Icons werden dynamisch aktualisiert, ohne dass Blinken oder redundantes Rendering auftritt.
- ToolTip-Werte der GMA-Stationen aktualisieren sich in Echtzeit basierend auf neuen Messdaten.
- Verbesserte Performance durch gezielte Updates nur bei Datenänderungen.