Files
nodeMap/CHANGELOG.md
ISA be2da8414c git commit -m "refactor: Gerätelayer dynamisch über IdSystem initialisiert
BREAKING CHANGE: Sichtbarkeit der Gerätegruppen basiert nun auf 'system-<IdSystem>' statt auf Namen wie 'SMSFunkmodem'. Statische Layer-Konfiguration im Redux-Slice entfernt."
2025-06-02 09:00:49 +02:00

45 KiB
Raw Blame History

📄 CHANGELOG

Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentiert.


[1.1.209] 2025-06-02

Added

  • Dynamische Initialisierung aller Gerätegruppen-Layer (system-) über GIS-Systemdaten.
  • Automatische Sichtbarkeitssteuerung in mapLayersSlice basierend auf IdSystem.
  • Mermaid-Diagramm zur Dokumentation der Architektur in /docs/architecture/device-layer-connection-final.md.

Changed

  • Vergleichslogik zwischen gisStationsStaticDistrict[].System und gisSystemStatic[].IdSystem von Name auf IdSystem umgestellt.
  • MapLayersControlPanel verwendet jetzt konsistent system-<IdSystem> als Key.
  • useDynamicDeviceLayers baut Layer-Gruppen und Marker-Zuordnung ebenfalls über IdSystem auf.

Removed

  • Veraltete statische Layer-Namen (TALAS, SMSFunkmodem, etc.) aus mapLayersSlice.

[1.1.191] 2025-05-27

🐞 Fixed

  • Fehler behoben: Kontextmenü „Station öffnen (Tab)“ wurde bei Geräten/Stationen mehrfach angezeigt
  • Ursache war doppelte Registrierung bei jedem Rechtsklick jetzt mit contextMenuCreated-Flag verhindert
  • Datei createAndSetDevices.js entsprechend angepasst

🔧 Version

  • 📦 Version erhöht auf 1.1.191

[1.1.190] 2025-05-27 🐞 Fixed Dropdown im UI Widget MapLayersControlPanel zeigte keine Stations-/Bereichsnamen an 🔧 Fehler behoben: Zugriff auf GisStationsStaticDistrict.Points statt auf das Objekt selbst

📄 Dokumentation Neue technische Markdown-Dokumentationen erstellt:

/docs/components/uiWidgets/mapLayersControlPanel/MapLayersControlPanel.md

/docs/components/uiWidgets/mapLayersControlPanel/EditModeToggle.md

/docs/components/uiWidgets/VersionInfoModal.md

/docs/components/uiWidgets/CoordinateInput.md

🔧 Version 📦 Version erhöht auf 1.1.190


[1.1.188] 2025-05-27

♻️ Refactor

  • Alle hartkodierten /talas5/-Pfadangaben entfernt
  • Dynamischer basePath eingeführt über .env.local → NEXT_PUBLIC_BASE_PATH
  • Unterstützt jetzt auch den Betrieb ohne Unterverzeichnis

🧠 Architektur

  • fetchGisLinesStatusService.js, fetchGisStationsStaticDistrictService.js, useGmaMarkersLayer.js, setupPolylines.js u.a. angepasst
  • Links wie Station öffnen (Tab) oder WebService-URLs bauen sich nun dynamisch je nach basePath

📄 Dokumentation

  • README.md aktualisiert: Hinweis auf neuen konfigurierbaren basePath

🔧 Version

  • 📦 Version erhöht auf 1.1.188

[1.1.187] 2025-05-27

📄 Dokumentation

  • Neue Markdown-Dokumentation erstellt:
    /docs/pages/api/talas_v5_DB/priorityConfig.md
    • Beschreibt die API /api/talas_v5_DB/priorityConfig
    • Enthält Beispielantwort, Datenstruktur, SQL, Fehlerhandling
    • Besonderheit: Anwendung der Prioritätswerte (level) zur Sortierung von Leaflet-Markern bei Überlappung

🧠 Architektur

  • Dokumentation enthält ausführlichen Abschnitt „🔗 Verwendet in“ mit klaren Verweisen auf:
    • MapComponent, createAndSetDevices, priorityConfigSlice, u.a.
  • Leaflet-Markerdarstellung über zIndexOffset auf Basis von priorityConfig.level wird erklärt

🔧 Version

  • 📦 Version erhöht auf 1.1.187

[1.1.186] 2025-05-27

🔥 Removed

  • Umgebungsvariable NEXT_PUBLIC_USE_MOCK_API vollständig entfernt
  • Veralteter Entwicklungsmodus mit Mockdaten ist nicht mehr aktiv
  • Alle Dateien und Codepfade, die sich auf /webServiceMockdata/ oder mockMode bezogen, gelöscht

🧠 Architektur

  • Die Anwendung läuft nun ausschließlich mit realer Datenanbindung:
    • 🔌 Next.js-API → MySQL (Docker)
    • 🌐 TALAS.web-Services (IIS)

📄 Dokumentation

  • README.md aktualisiert:
    • Mockdaten-Abschnitt durch Hinweis auf reale API ersetzt

🔧 Version

  • 📦 Version erhöht auf 1.1.186

[1.1.185] 2025-05-27

🔥 Removed

  • Verzeichnis /webServiceMockdata/ vollständig gelöscht
    • Alle früheren Mock-Daten wurden durch einen realistischen Setup mit MySQL (Docker) und TALAS.web (unter IIS) ersetzt
    • Kein fetch() oder Dateizugriff auf diese Daten mehr im Projekt vorhanden (geprüft via VSCode „Find in Files“)
    • Die Tests laufen nun gegen reale Backends (lokal & remote)

🧠 Architektur

  • Projekt verwendet für Entwicklung und Test ausschließlich reale Services:
    • 🔌 Datenbankzugriff über Next.js-API (Port 3000) → MySQL (Docker)
    • 🌐 Webservice-Tests über TALAS.web (IIS, Windows 11)

Clean

  • Alle Verweise auf Mock-Dateien entfernt
  • Struktur der Entwicklung basiert jetzt vollständig auf realitätsnahen Schnittstellen

🔧 Version

  • 📦 Version erhöht auf 1.1.185

[1.1.184] 2025-05-27

🧠 Architektur

  • Dokumentationsverzeichnis /docs/ restrukturiert:
    • Statt docs/frontend und docs/server folgt es jetzt exakt der Quellcode-Struktur
    • z.B. docs/redux/slices/, docs/pages/api/, docs/utils/
    • Ziel: Entwickler finden die Doku dort, wo auch die jeweilige Datei liegt

Clean

  • Verbesserte Lesbarkeit und Navigierbarkeit für neue Teammitglieder
  • README.md verweist nun auf die neue Struktur für technische Doku

🔧 Version

  • 📦 Version erhöht auf 1.1.184

📦 [1.1.183] 2025-05-27 ♻️ Refactor Die Hilfsfunktion saveLineData() wurde vollständig entfernt:

In markerUtils.js und poiUtils.js ersetzt durch updatePolylineCoordinatesThunk via Redux

Zentrale Dispatch-Hilfsfunktion savePolylineRedux() erstellt für alle Linienaktionen (Einfügen, Verschieben, Entfernen)

Einheitliche Verwendung des Redux-Dispatch in Utility-Dateien:

Kein direktes fetch() mehr

Fehlerbehandlung über .unwrap().catch(...) integriert

Map-Utilities und POI-Utilities sind nun Redux-kompatibel und testbar

Clean saveLineData aus mapUtils.js gelöscht

Alle Marker-Operationen speichern ihre Koordinaten ausschließlich über Redux

🧠 Architektur Redux-Toolkit Standardstruktur umgesetzt:

updatePolylineCoordinatesService.js

updatePolylineCoordinatesThunk.js

Nutzung außerhalb React-Komponenten über store.dispatch(...)

Leaflet-Logik (z.B. marker.setLatLng(), map.removeLayer()) bleibt in Utility-Dateien Redux kümmert sich nur um Daten

🔧 Version 📦 Version erhöht auf 1.1.183


[1.1.182] 2025-05-27

♻️ Refactor

  • Bereichsaktualisierung (updateAreaUtil.js) vollständig ersetzt durch Redux-Architektur:
    • 🔁 Neue Dateien: updateAreaService.js, updateAreaThunk.js, updateAreaSlice.js
    • Alte fetch-Methode entfernt, durch Redux-Thunk ersetzt
    • Bereichskoordinaten werden jetzt via dispatch(updateAreaThunk(...)) aktualisiert

🧠 Architektur

  • Einhaltung des Musters: Service → Thunk → Slice
  • Status-Handling und Fehleranzeige über updateAreaSlice möglich
  • useAreaMarkersLayer.js nutzt jetzt Redux-Thunk und optionalen onUpdateSuccess-Callback
  • Redux-Version kompatibel mit DevTools und zentraler Fehlerbehandlung

Clean

  • updateAreaUtil.js ist überflüssig und wurde entfernt
  • MapComponent verwendet jetzt updateAreaThunk direkt für Bereichsmarker

📄 README.md (optional)

  • Wenn gewünscht, kann in README.md ein neuer Punkt unter 🚀 Funktionen ergänzt werden:
    • Bereichsaktualisierung via Redux (statt direkter fetch-Aufrufe)

🔧 Version

  • 📦 Version erhöht auf 1.1.182

[1.1.181] 2025-05-26 ♻️ Refactor setupPolylines.js von direktem fetch() auf sauberes Redux-Muster umgestellt:

Statt fetch("/api/talas_v5_DB/gisLines/updateLineCoordinates") wird jetzt updatePolylineCoordinatesThunk() verwendet

Die Request-Daten werden an ein zentrales Service-Modul (updatePolylineCoordinatesService.js) übergeben

Async-Handling erfolgt über .unwrap().then().catch() zur besseren Fehlerkontrolle

🧠 Architektur Einheitliches Redux-Schema umgesetzt:

Service: updatePolylineCoordinatesService.js

Thunk: updatePolylineCoordinatesThunk.js

(Optional) Status-Tracking über Slice: updatePolylineCoordinatesSlice.js

Redux Toolkit-konforme store.dispatch(...)-Verwendung in Utility-Datei (außerhalb von React-Kontext)

Clean Alle direkten fetch-Aufrufe aus setupPolylines.js entfernt

Kein hartcodiertes URL-Handling mehr alles läuft über zentrale Redux-Logik

🔧 Version 📦 Version erhöht auf 1.1.181


[1.1.180] 2025-05-26 ♻️ Refactor poiTypesSlice.js wurde bereinigt:

Alte createAsyncThunk-Definition entfernt (direkter fetch im Slice)

Stattdessen Verwendung des ausgelagerten Thunks fetchPoiTypThunk aus fetchPoiTypThunk.js

Einheitliche Architektur umgesetzt:

Service → Thunk → Slice

Keine Logik mehr im Slice selbst

Verwendete Komponenten (MapComponent, AddPOIModal) rufen jetzt korrekt dispatch(fetchPoiTypThunk()) auf

🐞 Fixed Fehler fetchPoiTypes is not a function behoben durch Entfernen des alten Imports aus poiTypesSlice

Richtiger Import fetchPoiTypThunk nun überall verwendet

🧠 Architektur Redux-Slice enthält nur noch Zustand & Status keine Abfragen mehr

fetchPoiTypService.js stellt fetch()-Logik bereit, Thunk übernimmt Fehlerbehandlung

🔧 Version 📦 Version erhöht auf 1.1.180


[1.1.177] 2025-05-26 UI-Verbesserung POI-Tooltip auf der Karte wird jetzt bei Mouseover angezeigt (nicht mehr per Klick).

Tooltip ist einheitlich gestaltet mit Tailwind CSS:

Abgerundete Ecken (rounded-xl)

Schatten (shadow-lg)

Innenabstände (px-4 py-2)

Blaue Überschrift, graue Beschriftung

Einheitlicher Stil für alle Marker-Tooltips (setupPOIs.js angepasst).

Clean Alte bindPopup()-Logik entfernt kein manuelles Öffnen/Schließen mehr nötig

closePopup() aus mouseout-Handler entfernt

Tooltip verwendet sticky: true, folgt der Maus

🔧 Version 📦 Version erhöht auf 1.1.177


[1.1.176] 2025-05-26 🐞 Fixed Problem behoben, dass das Modal „POI hinzufügen“ nach erfolgreichem Submit nicht geschlossen wurde und die Meldung „Wird hinzugefügt…“ dauerhaft sichtbar blieb.

Ursache: Die Service-Datei addPoiService.js verwendete die falsche URL /addLocation statt /addPoi.

Die unwrap()-Verwendung im AddPOIModal.js wurde beibehalten und korrekt abgeschlossen.

Clean resetAddPoiStatus() wird jetzt direkt nach onClose() dispatcht, um Status in Redux auf idle zurückzusetzen.

Ladeindikator „Wird hinzugefügt...“ wird zuverlässig entfernt.

Fehleranzeige funktioniert weiterhin über Redux (status === "failed" und error).

🧠 Architektur Vollständige Redux-Anbindung des Modals über addPoiSlice, addPoiThunk, addPoiService und addPoi.js.

Thunk-Erfolg löst incrementTrigger() aus und synchronisiert die Marker auf der Karte durch erneutes Laden via fetchPoiMarkersThunk().

🔧 Version 📦 Version erhöht auf 1.1.176


[1.1.174] 2025-05-26 ♻️ Refactor useDrawLines.js vollständig auf Redux umgestellt:

Entfernt: direkter fetch("/api/talas_v5_DB/gisLines/readGisLines")

Stattdessen: Redux fetchGisLinesThunk() + selectGisLines verwendet

Datenverarbeitung der points erfolgt reaktiv über Redux-State

🧠 Architektur useDrawLines.js verwendet jetzt:

fetchGisLinesService (Service)

fetchGisLinesThunk (Thunk)

gisLinesSlice mit Selektor selectGisLines

State wird automatisch im Redux verwaltet (loading/succeeded/failed)

Cleanup Promise-Kette .then().catch() durch useSelector-basierten Effekt ersetzt

Fehlerausgabe bei ungültigen points strukturiert behandelt

Hook ist nun Redux-konform und testbar

🔧 Version 📦 Version erhöht auf 1.1.174


[1.1.173] 2025-05-26 ♻️ Refactor useMapComponentState.js vollständig auf Redux umgestellt:

Entfernt: lokale fetch(...)-Aufrufe

Redux-Integration für:

poiTypData → über poiTypSlice + fetchPoiTypThunk

locationDeviceData → über gisStationsStaticDistrictSlice + fetchGisStationsStaticDistrictThunk

priorityConfig → über priorityConfigSlice + fetchPriorityConfigThunk

poiLayerVisible → direkter Zugriff über Redux-Zustand

🧠 Architektur useMapComponentState.js ist jetzt rein selektorbasiert

Standardstruktur Service → Thunk → Slice vollständig eingehalten

Komponente reagiert nur noch auf Redux-Status (z.B. poiTypStatus === "succeeded")

Cleanup useState() für priorityConfig und locationDeviceData entfernt

deviceName wird direkt aus Redux-Daten abgeleitet

Selektor für poiLayerVisible wird direkt inline verwendet

🔧 Version 📦 Version erhöht auf 1.1.173


[1.1.166] 2025-05-25

🐞 Fixed

  • POI-Icons wurden immer als poi-marker-icon-4.png dargestellt, egal welcher Typ
  • Ursache: setupPOIs.js hat versehentlich poi.idPoi === poi.idPoi geprüft statt poi.idPoiTyp === ...

Clean

  • Korrekte Zuordnung von idPoi → iconPath über Map-Mapping implementiert (iconMap)
  • Fallback-Icon default-icon.png wird angezeigt, wenn kein Icon verfügbar ist

🧠 Architektur

  • poiIconsData wird in Redux geladen und über setupPOIs interpretiert
  • Mapping-Logik in setupPOIs.js gekapselt, vorbereitet für Unit-Tests

🧪 Tests

  • Test-Vorbereitung: setupPOIs.js wurde entkoppelt für spätere Jest-Tests (TDD-fähig gemacht)

🔧 Version

  • 📦 Version erhöht auf 1.1.166

Test

  • Cypress E2E-Test für POI-Bearbeitung eingeführt:
    • Klickt auf Marker mit Icon 4
    • Aktiviert Bearbeitungsmodus
    • Öffnet das Modal „POI bearbeiten“
    • Prüft, dass der Dropdown „Typ“ einen vorausgewählten Wert enthält
    • Erkennt Regressionen bei Typ-Zuweisung im Bearbeitungsdialog zuverlässig

[1.1.164] 2025-05-23

🐞 Fixed

  • POI-Typ wurde beim Öffnen des Modals nicht korrekt im Dropdown angezeigt
    • Ursache: idPoiTyp fehlte in marker.options
    • Lösung: idPoiTyp im setupPOIs.js an Marker übergeben und in handleEditPoi() verwendet

Clean

  • poiUtils.js und setupPOIs.js um konsistente Übergabe von Marker-Metadaten erweitert
  • Berechtigungsprüfung in handleEditPoi() auf .some(r => r.IdRight === 56) umgestellt
  • PoiUpdateModal.js vollständig refaktoriert mit klarer Zustandstrennung

🧠 Architektur

  • POI-Typ Auswahl basiert nun vollständig auf Redux-Daten (poiTypSlice)
  • keine hartcodierten Dropdown-Initialwerte mehr vollständig datengetrieben

🔧 Version

  • 📦 Version erhöht auf 1.1.164

[1.1.162] 2025-05-23

♻️ Refactor

  • PoiUpdateModal.js vollständig auf direkte Geräte-ID (idLD) über react-select umgestellt
  • Thunk getDeviceIdByNameThunk entfernt, da ID direkt im Dropdown verfügbar ist
  • updatePoiThunk + updatePoiService.js erfolgreich integriert für POST-Anfrage
  • handleSubmit() aktualisiert, robust gegen fehlende Felder

🧠 Architektur

  • Geräteselektion nutzt nun die eindeutige ID (idLD) aus der Auswahl stabiler und performanter
  • Alle POI-Änderungen laufen nun über Service + Thunk + Dispatch, ohne fetch()

🛠 Sicherheit & Wartbarkeit

  • keine API-Abhängigkeit mehr für Gerätesuche
  • einheitliche Redux-Thunk-Strategie eingehalten

🔧 Version

  • 📦 Version erhöht auf 1.1.162

[1.1.161] 2025-05-23

♻️ Refactor

  • Löschfunktion für POI (handleDeletePoi) in PoiUpdateModal.js refaktoriert
  • Direkten fetch(...)-Aufruf entfernt und ersetzt durch:
    • Service: deletePoiService.js
    • Redux Thunk: deletePoiThunk.js

🧠 Architektur

  • Für serverseitige Befehle (DELETE) wird kein Redux Slice benötigt
  • Redux-Thunk ohne eigenen Status-Slice verwendet schlank und wartbar

Clean

  • Einheitliche Struktur beibehalten: Service → Thunk → Dispatch
  • Wiederverwendbarkeit verbessert (z.B. für spätere Delete-Buttons)

🔧 Version

  • 📦 Version erhöht auf 1.1.161

[1.1.160] 2025-05-23

♻️ Refactor

  • PoiUpdateModal.js umgestellt auf Redux poiTypSlice
  • Direkter fetch("/api/talas_v5_DB/poiTyp/readPoiTyp") entfernt
  • POI-Typen jetzt über fetchPoiTypThunk geladen

🧠 Architektur

  • POI-Typen einheitlich über Redux-Store statt lokalem State
  • poiTypData kommt nun aus selectPoiTypData (Redux)

🔧 Version

  • 📦 Version erhöht auf 1.1.160

[1.1.159] 2025-05-23

🐞 Fixed

  • Fehler behoben: userRights.includes(56) schlug fehl, da Rechteobjekte { IdRight } enthalten ersetzt durch .some(r => r.IdRight === 56)
  • Kontextmenü „POI bearbeiten“ wird jetzt korrekt angezeigt
  • Modal öffnet sich nur noch bei gültiger Berechtigung (56)

Clean

  • Rechteprüfung in setupPOIs.js und poiUtils.js vereinheitlicht
  • handleEditPoi(...) überprüft jetzt korrekt mit .some(...)

💥 Bugfix

  • Fehler TypeError: fetchLocationDevicesFromDB is not a function in PoiUpdateModal.js behoben
    • Ursache: falscher Import aus Slice statt Thunk
    • Lösung: Import auf fetchLocationDevicesThunk geändert

🧠 Architektur

  • POI-Rechte über Webservice vollständig in Redux geladen
  • PoiUpdateModal.js verwendet Redux Thunk zur Initialisierung von Location Devices

🔧 Version

  • 📦 Version erhöht auf 1.1.159

[1.1.158] 2025-05-23

Feature

  • Neue POI-Hinzufügen-Logik mit Redux addPoiThunk umgesetzt
  • AddPOIModal.js vollständig umgebaut:
    • kein direktes fetch(...) mehr
    • stattdessen: Redux Thunk + Service
    • Statusanzeige über status / error aus addPoiSlice
  • Automatisches Nachladen der POI-Icons über fetchPoiIconsDataThunk

🐞 Fixed

  • Bug behoben: neu hinzugefügter POI zeigte Standard-Icon → Icon-Liste wird nach dem Hinzufügen erneut geladen

Clean

  • window.location.reload() aus AddPOIModal.js entfernt
  • API-Aufrufe vollständig in services/database/addPoiService.js gekapselt

🧠 Architektur

  • Redux-Standardstruktur eingehalten: ServiceThunkSlice
  • Redux-Status wird in Modal direkt über useSelector abgebildet

🔧 Version

  • 📦 Version erhöht auf 1.1.158

[1.1.153] - 2025-05-22

Features

  • Neue Redux-Slices erstellt: poiIconsDataSlice und poiTypSlice
  • Neue Services erstellt: fetchPoiIconsDataService.js, fetchPoiTypService.js
  • Neue Thunks: fetchPoiIconsDataThunk.js, fetchPoiTypThunk.js
  • State-Management für POI-Typen und POI-Icons vollständig in Redux überführt
  • Komponente useFetchPoiData.js entfernt und durch Redux ersetzt

♻️ Refactoring

  • Alle direkten fetch-Aufrufe durch Redux-Thunk ersetzt
  • Architektur auf eine zentralisierte, testbare Datenflussstruktur verbessert
  • Zustand der POI-Daten über Redux store.js global verwaltet

Cleanup

  • useFetchPoiData.js gelöscht, da Funktionalität durch Thunks ersetzt wurde

[1.1.150] - 2025-05-22

Removed

  • config.js vollständig gelöscht keine Abhängigkeiten mehr im Projekt
  • Funktion isMockMode() entfernt direkter Zugriff auf process.env.NEXT_PUBLIC_USE_MOCK_API ersetzt zentrale Hilfsfunktion

Changed

  • fetchUserRightsService.js, fetchGisSystemStaticService.js und useMapComponentState.js angepasst:
    • Verwendet dynamisch window.location + .env.local statt config.js
    • Verbesserte Übersichtlichkeit und zentrale Steuerung über .env.local

Architecture

  • Konfiguration und API-Port-Steuerung vollständig in .env.local ausgelagert
  • Einheitliche Struktur für Webservice-Aufrufe (window.location + mode)
  • Vereinfachtes Debugging, klarere Struktur für neue Entwickler

[1.1.148] - 2025-05-22

Hinzugefügt

  • Tooltips für Linien vollständig über Redux (gisLinesStatusFromWebservice) implementiert.
  • Linienstatusdaten jetzt über useLineData() aus dem Redux-Toolkit Store geladen.

Entfernt

  • webserviceGisLinesStatusUrl aus config.js entfernt URL wird zentral in fetchGisLinesStatusService.js aufgebaut.

Geändert

  • useLineData.js angepasst, um Redux Store zu nutzen statt URL-Parameter.
  • MapComponent.js entsprechend refaktoriert.

[1.1.147] - 2025-05-22

Hinzugefügt

  • Redux-Slice gisUserRightsFromWebservice eingeführt zur Ablösung von useLoadUserRights.js
  • Zustand userRights jetzt vollständig über Redux gesteuert

Geändert

  • MapComponent.js angepasst: useLoadUserRights.js entfernt, stattdessen Thunk + Selector verwendet
  • fetchUserRightsThunk direkt in MapComponent.js integriert

Architektur

  • Redux-Toolkit wird jetzt systematisch für Webservice-Daten verwendet
  • Bessere Trennung zwischen Service, Thunk und Slice
  • Lesbarkeit und Wartbarkeit deutlich verbessert

[1.1.144] 2025-05-22

Fixed

  • Fehlerhafte Webservice-Antwortstruktur in fetchGisLinesStatusService.js korrigiert
    • Erwartet wurde json.Lines, geliefert wurde aber json.Statis
    • Daten landen jetzt korrekt im Redux Slice gisLinesStatus

Architecture

  • 🔁 Vollständige Redux-Anbindung von Linienstatus über fetchGisLinesStatusThunk
  • 🧠 Daten aus WebService GisLinesStatus werden zentral über Redux verwaltet
  • 💡 Fehlerbehandlung und JSON-Parsing robuster gestaltet

Version

  • 📦 Version erhöht auf 1.1.144

[1.1.139] 2025-05-22

Changed

  • 🔁 Geräte-/Stationsanzeige vollständig auf Redux-Store umgestellt:
    • createAndSetDevices.js verwendet jetzt nur noch Redux-Selectoren (selectGisStationsStaticDistrict, selectGisStationsStatusDistrict)
    • Entfernt: direkter fetch(...)-Zugriff über config.js
    • Kein Zugriff mehr auf mapGisStationsStaticDistrictUrl / StatusDistrictUrl

Fixed

  • Fehler " Redux enthält keine gültigen Geräte-/Statusdaten!" gelöst durch korrekte Abfrage state.gisStationsStaticDistrict.data.Points
  • Marker erscheinen wieder zuverlässig durch saubere Trennung von Datenquelle und Darstellung

Architecture

  • 🧠 Marker-Erstellung erfolgt über createAndSetDevices() → Redux-Daten → Leaflet Marker
  • 🔁 MapComponent.js und useDynamicMarkerLayers.js angepasst auf neue Redux-Architektur
  • 🎯 Reduziert doppelte Datenhaltung, zentralisiert Geräte-Logik

Version

  • 📦 Version erhöht auf 1.1.139

[1.1.136] 2025-05-21

Fixed

  • 🛠️ DataSheet.js zeigte nach Seiten-Neuladen keine GIS-Systeme mehr an
    • Ursache: useEffect reagierte nicht auf GisSystemStatic
    • behoben durch Ergänzen der Abhängigkeit im useEffect

Renamed

  • 🔄 DataSheet.js wurde in MapLayersControlPanel.js umbenannt
    • der neue Name spiegelt die tatsächliche Funktion als Karten-Layer-Steuerung besser wider
    • verbessert Verständlichkeit und Onboarding für Entwickler

Version

  • 📦 Version erhöht auf 1.1.136

[1.1.134] 2025-05-21

Cleanup

  • Entfernt: mapGisStationsMeasurementsUrl aus config.js, da die URL nicht mehr benötigt wird
  • 🧼 Entfernt: alte manuelle fetch(...)-Logik in MapComponent.js zur Messdatenaktualisierung
  • 🔄 Stattdessen wird fetchGisStationsMeasurementsThunk aus Redux verwendet
  • 🧠 Architekturstandard eingehalten: /services/ → Thunk → Slice für zentrale Datensteuerung

Version

  • 📦 Version erhöht auf 1.1.134

[1.1.132] 2025-05-21

Refactored

  • Entfernt: manuelle Fetch-Funktion und lokalen isDataLoaded-State für DataSheet
  • Hinzugefügt: Anzeige des Panels erfolgt jetzt über Redux Store (GisStationsStaticDistrict.Points)
  • Verbesserte Kontrolle über Sichtbarkeit der Layer-Steuerung auf Basis von Store-Daten

[1.1.130] 2025-05-21

Changed

  • 🔁 GIS-Linien in MapComponent.js vollständig von fetch(...) auf Redux-Architektur umgestellt
    • Neuer Service: fetchGisLinesService.js für API-Aufruf
    • Neuer Thunk: fetchGisLinesThunk.js unter /redux/thunks/database/
    • Neuer Slice: gisLinesSlice.js mit Statusverwaltung (idle/loading/succeeded/failed)
    • Redux-Selektor selectGisLines in MapComponent.js genutzt
  • Direkter fetch("/api/talas_v5_DB/gisLines/readGisLines") entfernt und durch dispatch(fetchGisLinesThunk()) ersetzt
  • Alle Linien-Daten werden nun zentral über Redux geladen und in linePositions umgewandelt

Version

  • 📦 Version erhöht auf 1.1.130

[1.1.128] 2025-05-21

Changed

  • 🧠 Neue Datenquelle priorityConfig vollständig in Redux integriert:
    • Neuer Service: fetchPriorityConfigService.js unter /services/database/
    • Neuer Thunk: fetchPriorityConfigThunk.js unter /redux/thunks/database/
    • Neuer Slice: priorityConfigSlice.js unter /redux/slices/database/
    • Registrierung im Store (priorityConfigReducer) ergänzt
  • MapComponent.js nutzt jetzt dispatch(fetchPriorityConfigThunk()) zur Initialisierung
  • Alle alten useState + fetch(...) für Prioritätsdaten entfernt

Fixed

  • Fehler fetchPriorityConfigThunk is not defined behoben durch Import und richtigen Store-Zugriff
  • Bug: Redux Slice zeigte keine Daten Ursache war fehlendes dispatch der Thunk-Funktion → behoben

Cleanup

  • 🧼 fetchPriorityConfig wird ausschließlich zentral über Redux gehandhabt

Architekturhinweis

  • 🔄 Komponente wie MapComponent ist der Trigger:
    Thunks, Services und Redux-Slices alleine führen nichts aus sie müssen durch ein dispatch(...) aktiviert werden.

Version

  • 📦 Version erhöht auf 1.1.128

[1.1.127] 2025-05-21

Changed

  • 🧱 fetchLocationDevices.js wurde vollständig entfernt (lag zuvor unter /redux/api/fromDB/)
  • Stattdessen wird der neue Service fetchLocationDevicesService.js in /services/database/ verwendet
  • Neuer Thunk fetchLocationDevicesThunk.js unter /redux/thunks/database/ eingeführt
  • locationDevicesFromDBSlice.js ersetzt durch locationDevicesSlice.js mit Anbindung an den neuen Thunk
  • MapComponent.js nutzt jetzt dispatch(fetchLocationDevicesThunk()) zur Initialisierung der Geräte

Cleanup

  • Alle direkten Service-Imports aus Slices entfernt (Schnittstelle liegt nun nur noch im Thunk)
  • 🧼 Zugriff auf fetchLocationDevicesFromDB() ersetzt durch fetchLocationDevicesThunk()

Version

  • 📦 Version erhöht auf 1.1.127

[1.1.126] 2025-05-21

Cleanup

  • 🧼 Veraltete GIS-API-Fetch-Dateien entfernt, da nun vollständig durch zentrale Redux-Architektur ersetzt:
    • fetchGisStationsMeasurements.js
    • fetchGisStationsStatic.js
    • fetchGisStationsStaticDistrict.js
    • fetchGisStationsStatusDistrict.js
    • fetchGisSystemStatic.js
  • Ebenso entfernt:
    • fetchLocationDevices.js aus /redux/api/fromDB/

Changed

  • 🔁 Neue Ordnerstruktur eingeführt:
    • redux/thunks/webservice/ für TALAS WebServices (Port 80)
    • redux/thunks/database/ für API-Zugriffe auf eigene DB (Port 3000)
  • Alle GIS-Thunks liegen jetzt in /redux/thunks/webservice/ für klare Trennung
  • Thunks übernehmen den Service-Import Slices sind vollständig entkoppelt

Fixed

  • Alle GIS-Redux-Slices importieren nun ausschließlich zentrale Thunks
  • MapComponent.js, DataSheet.js und andere Komponenten nutzen nur noch:
    • gisStationsMeasurements
    • gisStationsStaticDistrict
    • gisStationsStatusDistrict
    • gisSystemStatic

Version

  • 📦 Version erhöht auf 1.1.126

[1.1.125] 2025-05-21

Cleanup

  • 🧼 Unnötige GIS-Fetch-Dateien entfernt:
    • fetchGisStationsMeasurements.js
    • fetchGisStationsStatic.js
    • fetchGisStationsStaticDistrict.js
    • fetchGisStationsStatusDistrict.js
    • fetchGisSystemStatic.js
  • Alle Datenquellen werden jetzt ausschließlich über zentrale Redux Thunks und zugehörige Services geladen
  • Alte Fetch-Struktur (/redux/api/fromWebService) vollständig obsolet

Fixed

  • Alle GIS-Redux-Slices greifen jetzt korrekt auf die Thunks aus redux/thunks/ zu
  • DataSheet.js und MapComponent.js verwenden nur noch:
    • gisStationsMeasurements
    • gisStationsStaticDistrict
    • gisStationsStatusDistrict
    • gisSystemStatic

Changed

  • Versionsnummer aktualisiert auf 1.1.125

[1.1.123] 2025-05-21

Changed

  • 🔁 GIS-Datenquellen konsolidiert: Statt 5 werden jetzt nur 4 zentrale Redux-Slices verwendet:
    • Beibehalten: gisStationsMeasurements, gisStationsStaticDistrict, gisStationsStatusDistrict, gisSystemStatic
    • Entfernt: gisStationsStatic (veraltet / wurde durch StaticDistrict ersetzt)

Fixed

  • MapComponent.js und DataSheet.js bereinigt:
    • Alle Zugriffe auf gisStationsStatic entfernt
    • Zugriff erfolgt nur noch über selectGisStationsStaticDistrict

Cleanup

  • 🧼 Thunks, Services und Slices konsistent:
    • Alle Slices verwenden jetzt zentrale Thunks
    • Nicht benötigte Dateien (fetchGisStatusStationsService.js, fetchGisStatusStationsThunk.js, gisStationsStaticSlice.js) entfernt
  • Redux DevTools zeigen saubere States mit status: "succeeded" für alle vier aktiven GIS-Quellen

[1.1.122] 2025-05-20

Documentation

  • 📄 Für alle Service-Dateien wurde Markdown-Dokumentation erstellt (/docs/services/)
  • Jede .md-Datei enthält:
    • Kurzbeschreibung der Funktion
    • Beschreibung der URL-Parameter und Rückgabewerte
    • Zweck im Projektkontext
  • Exportiert als ZIP zur Weitergabe und Integration

Strukturierte Services dokumentiert:

  • WebServices:
    • fetchGisStationsMeasurementsService
    • fetchGisStationsStaticDistrictService
    • fetchGisStationsStatusDistrictService
    • fetchGisStatusStationsService
    • fetchGisSystemStaticService
    • fetchUserRightsService
  • Datenbank-APIs:
    • fetchDeviceNameByIdService
    • fetchPoiDataService
    • updateLocationInDatabaseService
  • Utilities:
    • fetchWithTimeout

Motivation

  • 🧠 Klare Trennung zwischen Logik und Dokumentation
  • 📦 Unterstützt Wartung, Teamarbeit und Onboarding
  • Dokumentation vollständig unabhängig vom Code nutzbar

[1.1.120] 2025-05-20

Refactor

  • 🔁 Alle Webservice- und Datenbank-Fetches vollständig auf strukturierte Service-Dateien umgestellt
  • Einheitliches Schema für Servicenamen: fetchXyzService.js
  • Webservice-Dateien erwarten keine Importe mehr, sondern holen ?m und ?u direkt aus der URL

Struktur

  • /services/webservice/ → für TALAS WebServices (Port 80)
    • z.B. fetchGisSystemStaticService.js, fetchGisStationsMeasurementsService.js
  • /services/database/ → für API-Fetches von Next.js (Port 3000)
    • z.B. fetchDeviceNameByIdService.js, updateLocationInDatabaseService.js
  • /services/utils/ → z.B. fetchWithTimeout.js

Cleanup

  • Veraltete Hooks entfernt: useFetchWebServiceMap, setGisSystemStaticLoaded, etc.
  • 🧼 Nicht verwendete Service-Imports aus MapComponent.js bereinigt
  • Datei PoiUtils.js gelöscht (nicht verwendet)

Motivation

  • Klare Trennung zwischen Webservice- und DB-Logik
  • 🧠 Bessere Lesbarkeit im Code durch Postfix Service
  • 👨‍💻 Einfache Navigation & Wartbarkeit der Anwendung

[1.1.117] 2025-05-20

Changed

  • 🔁 Projektstruktur unter /services/ neu organisiert nach Datenquelle:
    • /services/webservice/ für TALAS-WebServices (Port 80)
    • /services/database/ für eigene Next.js-APIs (Port 3000)
    • /services/utils/ für Hilfsfunktionen (z.B. fetchWithTimeout)
  • Alle Service-Dateien konsistent benannt nach Schema: fetchXyzService.js
  • Beispiel: fetchGisStationsMeasurementsService.js, fetchPoiData.js, updateLocationInDatabase.js

Motivation

  • Bessere Übersicht nach Quelle und Verantwortung
  • 📦 Klare Trennung zwischen WebService-Fetch und App-APIs
  • 👨‍💻 Erleichtert das Onboarding und Debugging

[1.1.108] 2025-05-20

Removed

  • 🧼 Alte POI-Komponenten gelöscht:
    • AddPoiModalWindowWrapper.js
    • PoiUpdateModalWrapper.js
    • PoiUpdateModalWindow.js
  • Ersetzt durch moderne Komponenten mit direkter Redux-Anbindung (ShowAddStationPopup, PoiUpdateModal)

Cleanup

  • MapComponent.js nutzt jetzt ausschließlich ShowAddStationPopup für das Hinzufügen von POIs
  • Kein indirekter Wrapper oder Popup-Overhead mehr nötig

Fixed

  • Verwirrende doppelte Komponentenbenennungen bereinigt

[1.1.104] 2025-05-19

Removed

  • 🧼 useUpdateGmaData.js entfernt (Redundant zu gisStationsMeasurementsSlice)

Refactor (geplant)

  • useLineData.js und useMapComponentState.js sollen weiter in Redux-Slices überführt werden

[1.1.103] 2025-05-19

Changed

  • 🔁 MapComponent.js überarbeitet:
    • usePoiTypData entfernt
    • POI-Typen werden jetzt über Redux (poiTypesSlice) geladen
    • Zustand isPoiTypLoaded durch Redux status === "succeeded" ersetzt
  • 🔧 Redux-Selektor und dispatch(fetchPoiTypes()) ergänzt für automatisches Laden

Fixed

  • Fehler "Cannot access 'isPoiTypLoaded' before initialization" behoben
  • Build funktioniert wieder nach Hook-Löschung

[1.1.101] 2025-05-19

Removed

  • 🧼 Redundante React-Hooks entfernt, da Funktionalität vollständig in Redux abgebildet ist:
    • useFetchPriorityConfig.js
    • useFetchUserRights.js
    • useFetchWebServiceMap.js
    • useFetchLineStatusData.js

Refactor

  • 🔁 Vorbereitung zur Aufteilung von useLineData.js und useMapComponentState.js in separate Redux-Slices & spezialisierte Hooks
  • 🟡 Validierte React-Hooks beibehalten (z.B. Marker-Handling & Layer-Logik)

[1.1.100] 2025-05-19

Added

  • Vollständige Redux-Dokumentation erstellt:
    • Alle aktiven Redux-Slices als .md-Dateien dokumentiert
    • Struktur: docs/frontend/redux/slices/
    • API-Funktionen in docs/frontend/redux/api/fromWebService/
  • 🌐 Neue Markdown-Dateien u.a. für:
    • poiTypesSlice, urlParameterSlice, zoomTriggerSlice
    • gisStationsStaticSlice, gisSystemStaticSlice, ...
    • polylineLayerVisibleSlice, polylineContextMenuSlice, ...
  • Jede Datei enthält:
    • Initialzustand, Aktionen, Beispielverwendung, Pfadreferenz

Changed

  • README.md: Hinweis auf neue Dokumentationsstruktur ergänzt
  • CHANGELOG.md: Neuer Abschnitt für Version 1.1.100 eingefügt

[1.1.98] 2025-05-19

Changed

  • Setup-Dateien (node-v20.12.1-x64.msi, nssm.exe, ChromeStandaloneSetup64.exe) aus dem Repository entfernt
  • Stattdessen Verlinkung in README.md zu SharePoint-Ordner für interne Tool-Downloads eingefügt
  • Projektstruktur aufgeräumt Installationsdateien blähen Git-Verlauf nicht mehr auf
  • Hinweis in README.md zu Projektorganisation, Tool-Voraussetzungen und Linkstrategie ergänzt

[1.1.97] 2025-05-19

Changed

  • Recoil vollständig aus dem Projekt entfernt:
    • _app.js: RecoilRoot entfernt
    • package.json: recoil deinstalliert
    • package-lock.json: Recoil-Abhängigkeiten entfernt
  • Projekt verwendet ausschließlich Redux mit @reduxjs/toolkit
  • README.md aktualisiert:
    • Hinweis entfernt, dass Recoil verwendet wird
    • Abschnitt hinzugefügt, warum Redux bevorzugt wird (Übersicht, SSR-Fähigkeit bei Next.js)
  • DataSheet.md überarbeitet: Recoil entfernt, Redux-Einsatz dokumentiert
  • Wiki.md als veraltet markiert, da alle Dokumentationen in /docs/ konsolidiert sind

Removed

  • recoil aus package.json und node_modules
  • Erwähnungen von Recoil in Projekt-Dokumentation

[1.1.95] 2025-05-19

Changed

  • Letzter Recoil-Hook in useMarkerLayers.js entfernt:
    • useRecoilValue(mapLayersState) ersetzt durch useSelector(selectMapLayersState)
  • Redux-Selektor selectMapLayersState() aus mapLayersSlice.js verwendet
  • Projekt ist jetzt vollständig Recoil-frei und nur noch Redux-basiert

[1.1.94] 2025-05-19

Changed

  • useCreateAndSetDevices.js vollständig von Recoil auf Redux umgestellt:
    • useRecoilState(polylineEventsDisabledState) entfernt
    • Stattdessen Zugriff über useSelector(state => state.polylineEventsDisabled.disabled)
  • Redux-Slice polylineEventsDisabledSlice.js final integriert
  • Rückgabe von setPolylineEventsDisabled entfernt, da Zustand nun global über Redux verwaltet wird

[1.1.93] 2025-05-19

Changed

  • Letzte Recoil-Reste entfernt:
    • AddPoiModalWindow.js nutzt dispatch(incrementTrigger()) statt useSetRecoilState(...)
  • Vollständige Migration zu Redux abgeschlossen für poiReadFromDbTriggerSlice
  • mapLayersVisibility in AddPoiModalWindow.js korrekt via useSelector(...) aus Redux gelesen

Removed

  • Recoil vollständig aus Projekt entfernt

[1.1.91] 2025-05-19

Changed

  • Recoil-Atoms selectedPoiState und currentPoiState vollständig durch Redux ersetzt
  • Neue Redux-Slices:
    • selectedPoiSlice verwaltet aktuell ausgewählten POI
    • currentPoiSlice verwaltet POI zur Anzeige im Bearbeitungsdialog
  • PoiUpdateModal.js umgestellt auf useSelector(...) für beide Zustände
  • store.js um selectedPoiReducer und currentPoiReducer erweitert

Removed

  • useRecoilValue(currentPoiState) und useRecoilValue(selectedPoiState) aus PoiUpdateModal.js

[1.1.90] 2025-05-19

Changed

  • Redux-Slice urlParameterSlice: Standardwerte für mapId und userId entfernt
    • mapId und userId starten jetzt mit null statt "10" / "484"

[1.1.89] 2025-05-19

Changed

  • Recoil-Atoms mapIdState und userIdState entfernt
  • Stattdessen: Umstellung auf Redux-Slice urlParameterSlice
  • MapComponent.js verwendet jetzt:
    • useSelector(...) für mapId und userId
    • dispatch(setMapId(...)), dispatch(setUserId(...)) in useEffect
  • Redux-Store erweitert um urlParameterReducer

Removed

  • Recoil-Import useRecoilState(mapIdState / userIdState) entfernt aus MapComponent.js

[1.1.88] 2025-05-19

Changed

  • Recoil-Atom zoomTriggerState vollständig durch Redux zoomTriggerSlice ersetzt
  • Betroffene Komponenten:
    • MapComponent.js liest zoomTrigger aus Redux useSelector(...)
    • DataSheet.js verwendet dispatch(incrementZoomTrigger()) bei Icon-Klick
  • Redux-Store erweitert um zoomTriggerReducer

Removed

  • Entfernt: useRecoilState(zoomTriggerState) in DataSheet.js
  • Entfernt: useRecoilValue(zoomTriggerState) in MapComponent.js

[1.1.86] 2025-05-17

Changed

  • Recoil-State selectedAreaState vollständig entfernt
  • Umstellung auf Redux:
    • selectedAreaSlice.js → zentrale Steuerung des Bereichs (Area)
    • DataSheet.js setzt setSelectedArea(...) über Redux
    • MapComponent.js liest selectedArea aus Redux und zentriert Karte

[1.1.85] 2025-05-17

Changed

  • Recoil-Atom readPoiMarkersStore vollständig durch Redux-Slice ersetzt
  • Betroffene Komponenten:
    • index.js verwendet useSelector und dispatch(setPoiMarkers(...)) statt useRecoilState
    • AddPOIModal.js entfernt Recoil, nutzt jetzt Redux setPoiMarkers(...) (optional)
  • Redux-Store aktualisiert:
    • Slice readPoiMarkersStoreSlice eingebunden

Added

  • Redux-Slice readPoiMarkersStoreSlice.js mit Actions:
    • setPoiMarkers(data)
    • clearPoiMarkers()

[1.1.84] 2025-05-17

Changed

  • Recoil-Atom polylineEventsDisabledState entfernt
  • Migration zu Redux-Slice polylineEventsDisabledSlice abgeschlossen
  • Betroffene Komponenten und Funktionen:
    • MapComponent.js useSelector(state => state.polylineEventsDisabled.disabled) verwendet
    • initializeMap.js Callback-Funktion (value) => dispatch(setDisabled(value)) übergeben
    • useCreateAndSetDevices.js Verwendung von useRecoilState entfernt (ToDo: an Redux anpassen)

Added

  • Neue Redux Actions:
    • setDisabled, toggleDisabled in polylineEventsDisabledSlice.js

ToDo

  • useCreateAndSetDevices.js nutzt noch useRecoilState, muss ggf. refaktoriert werden

[1.1.83] 2025-05-17

Changed

  • poiReadFromDbTriggerAtom durch Redux poiReadFromDbTriggerSlice ersetzt
  • Alle Komponenten migriert:
    • index.js nutzt jetzt useSelector für Trigger
    • AddPoiModalWindow.js verwendet dispatch(incrementTrigger())
    • AddPOIModal.js entfernt Recoil, setzt Trigger mit Redux
    • MapComponent.js liest Trigger-Zustand via Redux statt Recoil

Removed

  • Entfernt: alle useSetRecoilState(...) und useRecoilValue(...) für poiReadFromDbTriggerAtom

Added

  • Neue Redux Actions:
    • incrementTrigger, resetTrigger in poiReadFromDbTriggerSlice.js

[1.1.82] 2025-05-17

Changed

  • Recoil-Zustand poiLayerVisibleState vollständig durch Redux poiLayerVisibleSlice ersetzt
  • Betroffene Komponenten:
    • useMapComponentState.js Zugriff via useSelector statt useRecoilValue
    • MapComponent.js Zugriff auf poiLayerVisible über Redux
    • DataSheet.js useRecoilState entfernt, dispatch(setVisible(...)) integriert
  • Redux-Store (store.js) erweitert um poiLayerVisibleReducer

Removed

  • Recoil-Atom poiLayerVisibleState entfernt

Added

  • Neue Redux Actions: setVisible, toggleVisible in poiLayerVisibleSlice.js

[1.1.78] 2025-05-17

Changed

  • fetchGisStatusStations.js:
    • feste URL-Variable NEXT_PUBLIC_SERVER_URL entfernt
    • stattdessen dynamische URL-Berechnung per NEXT_PUBLIC_API_PORT_MODE
    • Zugriff auf Webservice GisStationsStatusDistrict funktioniert jetzt ohne .env.local

Added

  • Dokumentation ergänzt:
    • docs/frontend/services/api/fetchGisStatusStations.md

[1.1.77] 2025-05-17

Changed

  • pages/api/[...path].js:
    • feste Umgebungsvariable NEXT_PUBLIC_SERVER_URL entfernt
    • dynamische Proxy-Zieladresse per NEXT_PUBLIC_API_PORT_MODE definiert (dev vs. prod)
    • Konfiguration via http-proxy-middleware vereinfacht

Added

  • Dokumentation erstellt:
    • docs/server/pages/api/apiProxy.md

[1.1.76] 2025-05-17

Changed

  • config.js angepasst:
    • Entfernt: NEXT_PUBLIC_SERVER_URL aus .env.local
    • Dynamische Berechnung von serverURL anhand window.location + NEXT_PUBLIC_API_PORT_MODE
    • Zugriff auf Webservices funktioniert jetzt automatisch abhängig von Entwicklungs-/Produktionsumgebung

Added

  • Dokumentation ergänzt:
    • docs/frontend/config/config.md

[1.1.75] 2025-05-17

Changed

  • setupPolylines.js und createAndSetDevices.js überarbeitet:
    • Entfernt: NEXT_PUBLIC_BASE_URL aus .env.local
    • Dynamische Linkerstellung basierend auf window.location + NEXT_PUBLIC_API_PORT_MODE
    • Kontextsensitive Menüeinträge öffnen jetzt /talas5/cpl.aspx?... unabhängig von der Umgebung

Added

  • Dokumentation hinzugefügt:
    • docs/frontend/utils/polylines/setupPolylines.md
    • docs/frontend/utils/devices/createAndSetDevices.md

[1.1.74] 2025-05-17

Added

  • Übersichtsdokumentation für Webservices erstellt:
    • docs/frontend/redux/api/fromWebService/README.md
    • beschreibt Zweck, Parameterstruktur, und alle dokumentierten API-Dateien

[1.1.73] 2025-05-17

Changed

  • fetchGisStationsStatusDistrict.js vereinheitlicht:
    • zentrale API-Port-Logik über .env.local (NEXT_PUBLIC_API_PORT_MODE)
    • URL-Parameter idMap und idUser werden dynamisch aus ?m=...&u=... extrahiert
    • Webservice-Aufruf wird korrekt über GisStationsStatusDistrict aufgebaut

Added

  • Dokumentation ergänzt:
    • docs/frontend/redux/api/fromWebService/fetchGisStationsStatusDistrict.md

[1.1.72] 2025-05-17

Changed

  • fetchGisStationsStaticDistrict.js aktualisiert:
    • zentrale Steuerung der API-Port-Logik über .env.local (NEXT_PUBLIC_API_PORT_MODE)
    • Übergabe von idMap und idUser über URL-Parameter ?m=...&u=...
    • Webservice-Endpunkt dynamisch zusammengesetzt

Added

  • Dokumentation erstellt:
    • docs/frontend/redux/api/fromWebService/fetchGisStationsStaticDistrict.md

[1.1.71] 2025-05-17

Changed

  • fetchGisStationsStatic.js aktualisiert:
    • zentrale Steuerung der API-Port-Logik über .env.localNEXT_PUBLIC_API_PORT_MODE
    • Map-ID (idMap) wird direkt aus der URL gelesen (?m=...)
    • Fehlerbehandlung und Content-Type-Prüfung eingebaut

Added

  • Dokumentation hinzugefügt:
    • docs/frontend/redux/api/fromWebService/fetchGisStationsStatic.md

[1.1.70] 2025-05-17

Changed

  • fetchGisSystemStatic.js umgestellt auf zentrale Port-Logik über NEXT_PUBLIC_API_PORT_MODE
  • fetchGisStationsMeasurements.js ebenfalls angepasst mit gleicher URL-/Port-Strategie
  • Beide Funktionen lesen idMap und idUser nun direkt aus der URL (?m=...&u=...)

Added

  • Neue Dokumentation:
    • docs/frontend/redux/api/fromWebService/fetchGisSystemStatic.md
    • docs/frontend/redux/api/fromWebService/fetchGisStationsMeasurements.md
  • Struktur-/Pfadhinweis jeweils am Ende der Markdown-Dateien ergänzt

[1.1.68] 2025-05-15

Changed

  • Verweis auf NEXT_PUBLIC_API_PORT_3000 entfernt
  • API-URL wird nun dynamisch per window.location.hostname:3000 gesetzt
  • .env.local bereinigt: keine API-URL mehr nötig
  • Betroffene Dateien:
    • useFetchPoiData.js
    • poiTypesSlice.js

[1.1.65] 2025-05-15

Changed

  • idMap und idUser werden nicht mehr aus .env.local gelesen, sondern ausschließlich über die URL übergeben (z.B. von TALAS.web).
  • Entfernt: Fallback-Variablen NEXT_PUBLIC_DEFAULT_ID_MAP und NEXT_PUBLIC_DEFAULT_ID_USER.
  • Dokumentation in docs/redux/api/fromWebService.md entsprechend angepasst.

[1.1.64] 2025-05-15

Added

  • Erste Dokumentation der Webservice-Endpunkte in docs/api/webservices.md.
  • Projektstruktur in docs/ vorbereitet für spätere Erweiterung.