- config.js verwendet nun window.location und API_PORT_MODE zur URL-Ermittlung
- feste Konfiguration aus .env.local entfällt (bereinigt)
- neue Dokumentation: docs/frontend/config/config.md
- CHANGELOG.md aktualisiert (v1.1.76)
- setupPolylines.js und createAndSetDevices.js auf dynamische Link-Generierung umgestellt
- Entfernung von NEXT_PUBLIC_BASE_URL aus .env.local
- Verwendung von NEXT_PUBLIC_API_PORT_MODE zur Steuerung von :80 in Dev
- Neue Dokumentationen unter /docs/frontend/utils/{polylines,devices}/
- CHANGELOG.md und appVersion.js auf Version 1.1.75 aktualisiert
- NEXT_PUBLIC_API_PORT_3000 entfernt
- API-Aufrufe basieren jetzt auf window.location.hostname:3000
- kein Rebuild mehr bei IP-Änderung nötig
- .env.local aufgeräumt
- CHANGELOG.md auf 1.1.68 aktualisiert
- Entfernt `useRecoilState(mapLayersState)` und durch `useSelector(selectMapLayersState)` ersetzt.
- Alle `setMapLayersVisibility` durch `dispatch(setLayerVisibility(...))` ersetzt.
- LocalStorage-Handling für `mapLayersVisibility` mit Redux umgesetzt.
- Fehler "setMapLayersVisibility is not defined" behoben, indem `dispatch` verwendet wurde.
- Sicherstellung, dass `mapLayersSlice` im Redux-Store registriert ist.
- `NEXT_PUBLIC_API_PORT_3000` in `.env.local` definiert
- `poiTypesSlice.js` so angepasst, dass die API-URL dynamisch aus `.env.local` geladen wird
- Harte URL entfernt, jetzt konfigurierbar ohne Code-Änderung
- Erfordert Neustart von Next.js, um `.env.local` zu laden
- Leaflet `flyTo` für sanfte Zoom-Animationen implementiert.
- Zoom-Stufen auf max. 15 und min. 6 begrenzt.
- Dauer der Animation dynamisch auf 0.5s pro Zoomstufe gesetzt.
- Verbesserte Benutzererfahrung durch flüssige Zoom-Bewegungen.
- Fehlerhafte Verwendung von `useRouter()` in `fetchGisStationsStaticDistrict.js` behoben
- `idMap` und `idUser` in allen API-Requests über URL-Parameter gesichert
- Alle API-Endpunkte getestet und sichergestellt, dass sie korrekt JSON-Daten liefern
- Debugging-Logs hinzugefügt und Redux-Fehlermeldungen beseitigt
- Jetzt erhalten alle Redux-Stores (`gisStationsStaticDistrict`, `gisStationsStatusDistrict`, `gisStationsMeasurements`, `gisSystemStatic`) erfolgreich die Daten
✅ Alle GIS-Daten werden jetzt korrekt in Redux gespeichert
- API-Response für GisSystemStatic in Redux Store gespeichert
- Server-IP aus `.env.local` geladen (`NEXT_PUBLIC_API_BASE_URL`)
- `idMap` und `idUser` aus URL-Parametern extrahiert
- fetchGisSystemStatic angepasst für dynamische Werte
- Redux Store aktualisiert und getestet
- BASE_URL für Polyline-Links angepasst auf http://10.10.0.70/talas5/devices/
- Ursache war fehlende oder fehlerhafte NEXT_PUBLIC_BASE_URL aus .env.local
- Jetzt
- 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.
- 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"
- 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.
- 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.
- 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).
- 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.