1683 lines
50 KiB
Markdown
1683 lines
50 KiB
Markdown
# 📄 CHANGELOG
|
||
|
||
Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
|
||
|
||
---
|
||
|
||
## [1.1.240] – 2025-06-06
|
||
|
||
### ✨ UI-Verbesserung
|
||
|
||
- Das Icon für den Bearbeitungsmodus (`EditModeToggle`) wird nun bei fehlender Berechtigung
|
||
(Recht-ID 56 nicht vorhanden) ausgegraut dargestellt.
|
||
- Tooltip erscheint bei Mouseover mit dem Hinweis: **„Keine Bearbeitungsrechte“**
|
||
- Kein Klick möglich – `pointerEvents: none`, bei gleichzeitig sichtbarem Icon für besseres UX
|
||
|
||
### ♻️ Refactor
|
||
|
||
- `EditModeToggle.js` vollständig angepasst zur dynamischen Rechteprüfung über
|
||
`gisUserRightsFromWebservice` Redux Slice.
|
||
|
||
### 🔧 Version
|
||
|
||
- 📦 `appVersion.js` auf Version **1.1.240** erhöht
|
||
|
||
---
|
||
|
||
## [1.1.238] – 2025-06-06
|
||
|
||
### ♻️ Refactor
|
||
|
||
- Zentrale `cleanupMarkers()`-Funktion erstellt, um Memory Leaks bei Leaflet-Markern zu vermeiden.
|
||
- Marker-Cleanup in `MapComponent.js`, `createAndSetDevices.js`, `setupPOIs.js` und `markerUtils.js`
|
||
integriert.
|
||
- Marker werden jetzt zuverlässig bei Kartenwechsel oder Neuladung entfernt.
|
||
|
||
### ✨ Feature
|
||
|
||
- Neue Überwachung des Speicherverbrauchs über `monitorMemory.js`.
|
||
- Redux-Slice `heapMonitorSlice.js` speichert regelmäßig `usedJSHeapSize`.
|
||
- Heap-Wachstum kann live über Redux DevTools beobachtet werden.
|
||
- Automatischer Reload der Seite bei mehr als **8 GB** Heap-Verbrauch (z. B. bei iFrame-Nutzung in
|
||
TALAS.web).
|
||
|
||
### 🔧 Version
|
||
|
||
- 📦 `appVersion.js` auf Version **1.1.238** erhöht
|
||
|
||
---
|
||
|
||
## [1.1.232] – 2025-06-04
|
||
|
||
### ✨ Added
|
||
|
||
- GMA-Werte (z. B. FBT, GT, LT, RLF) werden nun im Tooltip angezeigt – direkt aus
|
||
`gisStationsMeasurements`.
|
||
|
||
### 🛠 Changed
|
||
|
||
- `createAndSetDevices.js` überarbeitet: GMA-Messwerte werden dynamisch anhand `Na`-Feld gruppiert
|
||
und in Map-Tooltips eingebunden.
|
||
- Hilfsstruktur `gmaMap` integriert zur sicheren Zuordnung von Messwerten über `IdLD`.
|
||
|
||
### 🧪 Debug & Visualisierung
|
||
|
||
- Tooltip zeigt standardmäßig `"-"` bei fehlenden Werten.
|
||
- Darstellung ist aktuell nur für `System === 11` aktiv (z. B. GMA-Messstellen).
|
||
|
||
### 🔧 Version
|
||
|
||
- 📦 `appVersion.js` auf Version **1.1.232** erhöht
|
||
|
||
---
|
||
|
||
## [1.1.231] – 2025-06-04
|
||
|
||
### ✨ Added
|
||
|
||
- Neue API-Endpunkte unter `pages/api/mocks/webservice/` erstellt zum Abruf statischer Mockdaten
|
||
(`GisSystemStatic.json`, `GisLinesStatus.json`, `GisStationsStaticDistrict.json`, ...).
|
||
- Zentrale Umgebungsvariable `NEXT_PUBLIC_USE_MOCKS` eingeführt zur Steuerung des Mockbetriebs.
|
||
|
||
### 🧠 Architektur
|
||
|
||
- Alle `fetchGis*.js` Service-Dateien prüfen nun `process.env.NEXT_PUBLIC_USE_MOCKS`, um je nach
|
||
Modus echte Webservices oder Mock-API-Endpunkte aufzurufen.
|
||
- `.env.production` setzt `NEXT_PUBLIC_USE_MOCKS=false` für sichere Produktionsumgebung.
|
||
- `.env.local` erlaubt flexiblen Mock-Modus für lokale Entwicklung.
|
||
- Alert-Hinweis (nur zu Testzwecken) im Mock-Mode eingebaut zur Visualisierung des aktuellen Modus.
|
||
|
||
### 🛡️ Sicherheit
|
||
|
||
- Mockdaten-Verzeichnis `/mockData/*.json` vollständig über `.gitignore` vom Repository
|
||
ausgeschlossen.
|
||
- `.env.local` bleibt lokal – Produktionsbuild verwendet automatisch `.env.production`.
|
||
|
||
### 🛠 Clean
|
||
|
||
- Alle alten Zugriffe auf `/public/*.json` ersetzt durch `pages/api/mocks/webservice/*.js`.
|
||
- Entwicklungsversionen nutzen nun `http://localhost:3000/api/mocks/webservice/...` statt `/public`.
|
||
|
||
### 🔧 Version
|
||
|
||
- 📦 `appVersion.js` auf Version **1.1.231** erhöht
|
||
|
||
---
|
||
|
||
## [1.1.230] – 2025-06-04
|
||
|
||
### 🐞 Fixed
|
||
|
||
- Gerätemarker wurden bei jeder Datenaktualisierung mehrfach gezeichnet → Marker-Layer vor dem
|
||
Neuladen jetzt korrekt geleert
|
||
- OverlappingMarkerSpiderfier (Spiderfy) bei überlappenden Geräten reaktiviert
|
||
|
||
### ♻️ Refactor
|
||
|
||
- Markerlogik in `useDynamicDeviceLayers.js` verbessert: Sichtbarkeit, Ersetzung und OMS-Handling
|
||
zentral geregelt
|
||
|
||
### 🔧 Version
|
||
|
||
- 📦 `appVersion.js` auf Version `1.1.230` erhöht
|
||
|
||
---
|
||
|
||
## [1.1.216] – 2025-06-02
|
||
|
||
### Hinzugefügt
|
||
|
||
- Einheitliche Verwendung der Funktion `openInNewTab()` für Kontextmenü-Link bei Geräten, Linien und
|
||
GMA.
|
||
- Kontextmenüpunkt „Station öffnen (Tab)“ öffnet nun korrekt `/devices/cpl.aspx?...` anstelle von
|
||
z. B. `/cpl.aspx?...`.
|
||
|
||
### Geändert
|
||
|
||
- Port 3000 wird aus generierten Links entfernt (auch in Entwicklungsumgebung).
|
||
- `setupPolylines.js`, `contextMenuUtils.js` und `useGmaMarkersLayer.js` angepasst, um einheitliche
|
||
Navigation zu gewährleisten.
|
||
|
||
---
|
||
|
||
## [1.1.211] – 2025-06-02
|
||
|
||
### Hinzugefügt
|
||
|
||
- Leaflet-Kontextmenü für Geräte-Marker (Stations/Geräte) aktiviert
|
||
- Menüpunkt „Station öffnen (Tab)“ erscheint nun direkt im Marker-Kontextmenü, basierend auf
|
||
`marker.options.link`
|
||
- Redux-Abhängigkeit (`selectedDevice`) für Kontextmenü entfernt
|
||
|
||
### Geändert
|
||
|
||
- `addContextMenuToMarker` prüft nun direkt auf `marker.options.idDevice` und `link` anstatt
|
||
globalen Zustand
|
||
|
||
---
|
||
|
||
## [1.1.209] – 2025-06-02
|
||
|
||
### Added
|
||
|
||
- Dynamische Initialisierung aller Gerätegruppen-Layer (system-<IdSystem>) ü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: `Service` → `Thunk` → `Slice`
|
||
- 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.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.
|