Files
nodeMap/CHANGELOG.md
ISA 97ee76c5b5 fix: korrigiere fetchGisLinesStatusService für WebService-Antwort 'Statis'
- ersetzt Zugriff auf json.Lines durch json.Statis
- behebt leeren Redux-State bei Linienstatus
- Daten aus Webservice fließen jetzt korrekt in gisLinesStatusSlice
2025-05-22 11:30:03 +02:00

825 lines
25 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📄 CHANGELOG
Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
---
## [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.local``NEXT_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.