- alle festen "/talas5/" Pfade entfernt - dynamischer basePath für API-Links und Station öffnen - README.md und CHANGELOG.md aktualisiert - Version erhöht auf 1.1.188
43 KiB
📄 CHANGELOG
Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentiert.
[1.1.188] – 2025-05-27
♻️ Refactor
- Alle hartkodierten
/talas5/-Pfadangaben entfernt - Dynamischer
basePatheingeführt über.env.local → NEXT_PUBLIC_BASE_PATH - Unterstützt jetzt auch den Betrieb ohne Unterverzeichnis
🧠 Architektur
fetchGisLinesStatusService.js,fetchGisStationsStaticDistrictService.js,useGmaMarkersLayer.js,setupPolylines.jsu. 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
- Beschreibt die API
🧠 Architektur
- Dokumentation enthält ausführlichen Abschnitt „🔗 Verwendet in“ mit klaren Verweisen auf:
MapComponent,createAndSetDevices,priorityConfigSlice, u. a.
- Leaflet-Markerdarstellung über
zIndexOffsetauf Basis vonpriorityConfig.levelwird erklärt
🔧 Version
- 📦 Version erhöht auf 1.1.187
[1.1.186] – 2025-05-27
🔥 Removed
- Umgebungsvariable
NEXT_PUBLIC_USE_MOCK_APIvollständig entfernt - Veralteter Entwicklungsmodus mit Mockdaten ist nicht mehr aktiv
- Alle Dateien und Codepfade, die sich auf
/webServiceMockdata/odermockModebezogen, gelöscht
🧠 Architektur
- Die Anwendung läuft nun ausschließlich mit realer Datenanbindung:
- 🔌 Next.js-API → MySQL (Docker)
- 🌐 TALAS.web-Services (IIS)
📄 Dokumentation
README.mdaktualisiert:- 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/frontendunddocs/serverfolgt 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
- Statt
✅ 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
- 🔁 Neue Dateien:
🧠 Architektur
- Einhaltung des Musters:
Service → Thunk → Slice - Status-Handling und Fehleranzeige über
updateAreaSlicemöglich useAreaMarkersLayer.jsnutzt jetzt Redux-Thunk und optionalenonUpdateSuccess-Callback- Redux-Version kompatibel mit DevTools und zentraler Fehlerbehandlung
✅ Clean
updateAreaUtil.jsist überflüssig und wurde entfernt- MapComponent verwendet jetzt
updateAreaThunkdirekt für Bereichsmarker
📄 README.md (optional)
- Wenn gewünscht, kann in
README.mdein neuer Punkt unter🚀 Funktionenergä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.pngdargestellt, egal welcher Typ - Ursache:
setupPOIs.jshat versehentlichpoi.idPoi === poi.idPoigeprüft stattpoi.idPoiTyp === ...
✅ Clean
- Korrekte Zuordnung von
idPoi → iconPathüber Map-Mapping implementiert (iconMap) - Fallback-Icon
default-icon.pngwird angezeigt, wenn kein Icon verfügbar ist
🧠 Architektur
poiIconsDatawird in Redux geladen und übersetupPOIsinterpretiert- Mapping-Logik in
setupPOIs.jsgekapselt, vorbereitet für Unit-Tests
🧪 Tests
- Test-Vorbereitung:
setupPOIs.jswurde 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:
idPoiTypfehlte inmarker.options - Lösung:
idPoiTypimsetupPOIs.jsan Marker übergeben und inhandleEditPoi()verwendet
- Ursache:
✅ Clean
poiUtils.jsundsetupPOIs.jsum konsistente Übergabe von Marker-Metadaten erweitert- Berechtigungsprüfung in
handleEditPoi()auf.some(r => r.IdRight === 56)umgestellt PoiUpdateModal.jsvollstä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.jsvollständig auf direkte Geräte-ID (idLD) überreact-selectumgestellt- Thunk
getDeviceIdByNameThunkentfernt, da ID direkt im Dropdown verfügbar ist updatePoiThunk+updatePoiService.jserfolgreich integriert für POST-AnfragehandleSubmit()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) inPoiUpdateModal.jsrefaktoriert - Direkten
fetch(...)-Aufruf entfernt und ersetzt durch:- Service:
deletePoiService.js - Redux Thunk:
deletePoiThunk.js
- Service:
🧠 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.jsumgestellt auf ReduxpoiTypSlice- Direkter
fetch("/api/talas_v5_DB/poiTyp/readPoiTyp")entfernt - POI-Typen jetzt über
fetchPoiTypThunkgeladen
🧠 Architektur
- POI-Typen einheitlich über Redux-Store statt lokalem State
poiTypDatakommt nun ausselectPoiTypData(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.jsundpoiUtils.jsvereinheitlicht handleEditPoi(...)überprüft jetzt korrekt mit.some(...)
💥 Bugfix
- Fehler
TypeError: fetchLocationDevicesFromDB is not a functioninPoiUpdateModal.jsbehoben- Ursache: falscher Import aus Slice statt Thunk
- Lösung: Import auf
fetchLocationDevicesThunkgeändert
🧠 Architektur
- POI-Rechte über Webservice vollständig in Redux geladen
PoiUpdateModal.jsverwendet 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
addPoiThunkumgesetzt AddPOIModal.jsvollständig umgebaut:- kein direktes
fetch(...)mehr - stattdessen: Redux Thunk + Service
- Statusanzeige über
status/errorausaddPoiSlice
- kein direktes
- 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()ausAddPOIModal.jsentfernt- API-Aufrufe vollständig in
services/database/addPoiService.jsgekapselt
🧠 Architektur
- Redux-Standardstruktur eingehalten:
Service→Thunk→Slice - Redux-Status wird in Modal direkt über
useSelectorabgebildet
🔧 Version
- 📦 Version erhöht auf 1.1.158
[1.1.153] - 2025-05-22
✨ Features
- Neue Redux-Slices erstellt:
poiIconsDataSliceundpoiTypSlice - 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.jsentfernt 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.jsglobal verwaltet
✅ Cleanup
useFetchPoiData.jsgelöscht, da Funktionalität durch Thunks ersetzt wurde
[1.1.150] - 2025-05-22
Removed
config.jsvollständig gelöscht – keine Abhängigkeiten mehr im Projekt- Funktion
isMockMode()entfernt – direkter Zugriff aufprocess.env.NEXT_PUBLIC_USE_MOCK_APIersetzt zentrale Hilfsfunktion
Changed
fetchUserRightsService.js,fetchGisSystemStaticService.jsunduseMapComponentState.jsangepasst:- Verwendet dynamisch
window.location+.env.localstatt config.js - Verbesserte Übersichtlichkeit und zentrale Steuerung über
.env.local
- Verwendet dynamisch
Architecture
- Konfiguration und API-Port-Steuerung vollständig in
.env.localausgelagert - 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
webserviceGisLinesStatusUrlausconfig.jsentfernt – URL wird zentral infetchGisLinesStatusService.jsaufgebaut.
Geändert
useLineData.jsangepasst, um Redux Store zu nutzen statt URL-Parameter.MapComponent.jsentsprechend refaktoriert.
[1.1.147] - 2025-05-22
Hinzugefügt
- Redux-Slice
gisUserRightsFromWebserviceeingeführt zur Ablösung vonuseLoadUserRights.js - Zustand
userRightsjetzt vollständig über Redux gesteuert
Geändert
MapComponent.jsangepasst:useLoadUserRights.jsentfernt, stattdessen Thunk + Selector verwendetfetchUserRightsThunkdirekt inMapComponent.jsintegriert
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.jskorrigiert- Erwartet wurde
json.Lines, geliefert wurde aberjson.Statis - Daten landen jetzt korrekt im Redux Slice
gisLinesStatus
- Erwartet wurde
Architecture
- 🔁 Vollständige Redux-Anbindung von Linienstatus über
fetchGisLinesStatusThunk - 🧠 Daten aus WebService
GisLinesStatuswerden 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.jsverwendet jetzt nur noch Redux-Selectoren (selectGisStationsStaticDistrict,selectGisStationsStatusDistrict)- Entfernt: direkter
fetch(...)-Zugriff überconfig.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.jsunduseDynamicMarkerLayers.jsangepasst 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.jszeigte nach Seiten-Neuladen keine GIS-Systeme mehr an- Ursache:
useEffectreagierte nicht aufGisSystemStatic - behoben durch Ergänzen der Abhängigkeit im
useEffect
- Ursache:
Renamed
- 🔄
DataSheet.jswurde inMapLayersControlPanel.jsumbenannt- 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:
mapGisStationsMeasurementsUrlausconfig.js, da die URL nicht mehr benötigt wird - 🧼 Entfernt: alte manuelle
fetch(...)-Logik inMapComponent.jszur Messdatenaktualisierung - 🔄 Stattdessen wird
fetchGisStationsMeasurementsThunkaus Redux verwendet - 🧠 Architekturstandard eingehalten:
/services/ → Thunk → Slicefü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ürDataSheet - 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.jsvollständig vonfetch(...)auf Redux-Architektur umgestellt- Neuer Service:
fetchGisLinesService.jsfür API-Aufruf - Neuer Thunk:
fetchGisLinesThunk.jsunter/redux/thunks/database/ - Neuer Slice:
gisLinesSlice.jsmit Statusverwaltung (idle/loading/succeeded/failed) - Redux-Selektor
selectGisLinesinMapComponent.jsgenutzt
- Neuer Service:
- Direkter
fetch("/api/talas_v5_DB/gisLines/readGisLines")entfernt und durchdispatch(fetchGisLinesThunk())ersetzt - Alle Linien-Daten werden nun zentral über Redux geladen und in
linePositionsumgewandelt
Version
- 📦 Version erhöht auf 1.1.130
[1.1.128] – 2025-05-21
Changed
- 🧠 Neue Datenquelle
priorityConfigvollständig in Redux integriert:- Neuer Service:
fetchPriorityConfigService.jsunter/services/database/ - Neuer Thunk:
fetchPriorityConfigThunk.jsunter/redux/thunks/database/ - Neuer Slice:
priorityConfigSlice.jsunter/redux/slices/database/ - Registrierung im Store (
priorityConfigReducer) ergänzt
- Neuer Service:
MapComponent.jsnutzt jetztdispatch(fetchPriorityConfigThunk())zur Initialisierung- Alle alten
useState+fetch(...)für Prioritätsdaten entfernt
Fixed
- ❌ Fehler
fetchPriorityConfigThunk is not definedbehoben durch Import und richtigen Store-Zugriff - ❌ Bug: Redux Slice zeigte keine Daten – Ursache war fehlendes
dispatchder Thunk-Funktion → behoben
Cleanup
- 🧼
fetchPriorityConfigwird ausschließlich zentral über Redux gehandhabt
Architekturhinweis
- 🔄 Komponente wie
MapComponentist der Trigger:
Thunks, Services und Redux-Slices alleine führen nichts aus – sie müssen durch eindispatch(...)aktiviert werden.
Version
- 📦 Version erhöht auf 1.1.128
[1.1.127] – 2025-05-21
Changed
- 🧱
fetchLocationDevices.jswurde vollständig entfernt (lag zuvor unter/redux/api/fromDB/) - Stattdessen wird der neue Service
fetchLocationDevicesService.jsin/services/database/verwendet - Neuer Thunk
fetchLocationDevicesThunk.jsunter/redux/thunks/database/eingeführt locationDevicesFromDBSlice.jsersetzt durchlocationDevicesSlice.jsmit Anbindung an den neuen ThunkMapComponent.jsnutzt jetztdispatch(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 durchfetchLocationDevicesThunk()
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.jsfetchGisStationsStatic.jsfetchGisStationsStaticDistrict.jsfetchGisStationsStatusDistrict.jsfetchGisSystemStatic.js
- Ebenso entfernt:
fetchLocationDevices.jsaus/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.jsund andere Komponenten nutzen nur noch:gisStationsMeasurementsgisStationsStaticDistrictgisStationsStatusDistrictgisSystemStatic
Version
- 📦 Version erhöht auf 1.1.126
[1.1.125] – 2025-05-21
Cleanup
- 🧼 Unnötige GIS-Fetch-Dateien entfernt:
fetchGisStationsMeasurements.jsfetchGisStationsStatic.jsfetchGisStationsStaticDistrict.jsfetchGisStationsStatusDistrict.jsfetchGisSystemStatic.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.jsundMapComponent.jsverwenden nur noch:gisStationsMeasurementsgisStationsStaticDistrictgisStationsStatusDistrictgisSystemStatic
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 durchStaticDistrictersetzt)
- ✅ Beibehalten:
Fixed
MapComponent.jsundDataSheet.jsbereinigt:- Alle Zugriffe auf
gisStationsStaticentfernt - Zugriff erfolgt nur noch über
selectGisStationsStaticDistrict
- Alle Zugriffe auf
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:
fetchGisStationsMeasurementsServicefetchGisStationsStaticDistrictServicefetchGisStationsStatusDistrictServicefetchGisStatusStationsServicefetchGisSystemStaticServicefetchUserRightsService
- Datenbank-APIs:
fetchDeviceNameByIdServicefetchPoiDataServiceupdateLocationInDatabaseService
- 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
?mund?udirekt aus der URL
Struktur
/services/webservice/→ für TALAS WebServices (Port 80)- z. B.
fetchGisSystemStaticService.js,fetchGisStationsMeasurementsService.js
- z. B.
/services/database/→ für API-Fetches von Next.js (Port 3000)- z. B.
fetchDeviceNameByIdService.js,updateLocationInDatabaseService.js
- z. B.
/services/utils/→ z. B.fetchWithTimeout.js
Cleanup
- ❌ Veraltete Hooks entfernt:
useFetchWebServiceMap,setGisSystemStaticLoaded, etc. - 🧼 Nicht verwendete Service-Imports aus
MapComponent.jsbereinigt - ❌ Datei
PoiUtils.jsgelö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.jsPoiUpdateModalWrapper.jsPoiUpdateModalWindow.js
- Ersetzt durch moderne Komponenten mit direkter Redux-Anbindung (
ShowAddStationPopup,PoiUpdateModal)
Cleanup
- MapComponent.js nutzt jetzt ausschließlich
ShowAddStationPopupfü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.jsentfernt (Redundant zugisStationsMeasurementsSlice)
Refactor (geplant)
useLineData.jsunduseMapComponentState.jssollen weiter in Redux-Slices überführt werden
[1.1.103] – 2025-05-19
Changed
- 🔁
MapComponent.jsüberarbeitet:usePoiTypDataentfernt- POI-Typen werden jetzt über Redux (
poiTypesSlice) geladen - Zustand
isPoiTypLoadeddurch Reduxstatus === "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.jsuseFetchUserRights.jsuseFetchWebServiceMap.jsuseFetchLineStatusData.js
Refactor
- 🔁 Vorbereitung zur Aufteilung von
useLineData.jsunduseMapComponentState.jsin 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/
- Alle aktiven Redux-Slices als
- 🌐 Neue Markdown-Dateien u. a. für:
poiTypesSlice,urlParameterSlice,zoomTriggerSlicegisStationsStaticSlice,gisSystemStaticSlice, ...polylineLayerVisibleSlice,polylineContextMenuSlice, ...
- Jede Datei enthält:
- Initialzustand, Aktionen, Beispielverwendung, Pfadreferenz
Changed
README.md: Hinweis auf neue Dokumentationsstruktur ergänztCHANGELOG.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.mdzu SharePoint-Ordner für interne Tool-Downloads eingefügt - Projektstruktur aufgeräumt – Installationsdateien blähen Git-Verlauf nicht mehr auf
- Hinweis in
README.mdzu Projektorganisation, Tool-Voraussetzungen und Linkstrategie ergänzt
[1.1.97] – 2025-05-19
Changed
- Recoil vollständig aus dem Projekt entfernt:
_app.js:RecoilRootentferntpackage.json:recoildeinstalliertpackage-lock.json: Recoil-Abhängigkeiten entfernt
- Projekt verwendet ausschließlich Redux mit
@reduxjs/toolkit README.mdaktualisiert:- 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 dokumentiertWiki.mdals veraltet markiert, da alle Dokumentationen in/docs/konsolidiert sind
Removed
recoilauspackage.jsonundnode_modules- Erwähnungen von Recoil in Projekt-Dokumentation
[1.1.95] – 2025-05-19
Changed
- Letzter Recoil-Hook in
useMarkerLayers.jsentfernt:useRecoilValue(mapLayersState)ersetzt durchuseSelector(selectMapLayersState)
- Redux-Selektor
selectMapLayersState()ausmapLayersSlice.jsverwendet - Projekt ist jetzt vollständig Recoil-frei und nur noch Redux-basiert
[1.1.94] – 2025-05-19
Changed
useCreateAndSetDevices.jsvollständig von Recoil auf Redux umgestellt:useRecoilState(polylineEventsDisabledState)entfernt- Stattdessen Zugriff über
useSelector(state => state.polylineEventsDisabled.disabled)
- Redux-Slice
polylineEventsDisabledSlice.jsfinal integriert - Rückgabe von
setPolylineEventsDisabledentfernt, da Zustand nun global über Redux verwaltet wird
[1.1.93] – 2025-05-19
Changed
- Letzte Recoil-Reste entfernt:
AddPoiModalWindow.jsnutztdispatch(incrementTrigger())stattuseSetRecoilState(...)
- Vollständige Migration zu Redux abgeschlossen für
poiReadFromDbTriggerSlice mapLayersVisibilityinAddPoiModalWindow.jskorrekt viauseSelector(...)aus Redux gelesen
Removed
- Recoil vollständig aus Projekt entfernt
[1.1.91] – 2025-05-19
Changed
- Recoil-Atoms
selectedPoiStateundcurrentPoiStatevollständig durch Redux ersetzt - Neue Redux-Slices:
selectedPoiSlice– verwaltet aktuell ausgewählten POIcurrentPoiSlice– verwaltet POI zur Anzeige im Bearbeitungsdialog
PoiUpdateModal.jsumgestellt aufuseSelector(...)für beide Zuständestore.jsumselectedPoiReducerundcurrentPoiReducererweitert
Removed
useRecoilValue(currentPoiState)unduseRecoilValue(selectedPoiState)ausPoiUpdateModal.js
[1.1.90] – 2025-05-19
Changed
- Redux-Slice
urlParameterSlice: Standardwerte fürmapIdunduserIdentferntmapIdunduserIdstarten jetzt mitnullstatt"10"/"484"
[1.1.89] – 2025-05-19
Changed
- Recoil-Atoms
mapIdStateunduserIdStateentfernt - Stattdessen: Umstellung auf Redux-Slice
urlParameterSlice MapComponent.jsverwendet jetzt:useSelector(...)fürmapIdunduserIddispatch(setMapId(...)),dispatch(setUserId(...))inuseEffect
- Redux-Store erweitert um
urlParameterReducer
Removed
- Recoil-Import
useRecoilState(mapIdState / userIdState)entfernt ausMapComponent.js
[1.1.88] – 2025-05-19
Changed
- Recoil-Atom
zoomTriggerStatevollständig durch ReduxzoomTriggerSliceersetzt - Betroffene Komponenten:
MapComponent.js– liestzoomTriggeraus ReduxuseSelector(...)DataSheet.js– verwendetdispatch(incrementZoomTrigger())bei Icon-Klick
- Redux-Store erweitert um
zoomTriggerReducer
Removed
- Entfernt:
useRecoilState(zoomTriggerState)inDataSheet.js - Entfernt:
useRecoilValue(zoomTriggerState)inMapComponent.js
[1.1.86] – 2025-05-17
Changed
- Recoil-State
selectedAreaStatevollständig entfernt - Umstellung auf Redux:
selectedAreaSlice.js→ zentrale Steuerung des Bereichs (Area)DataSheet.js– setztsetSelectedArea(...)über ReduxMapComponent.js– liestselectedAreaaus Redux und zentriert Karte
[1.1.85] – 2025-05-17
Changed
- Recoil-Atom
readPoiMarkersStorevollständig durch Redux-Slice ersetzt - Betroffene Komponenten:
index.js– verwendetuseSelectorunddispatch(setPoiMarkers(...))stattuseRecoilStateAddPOIModal.js– entfernt Recoil, nutzt jetzt ReduxsetPoiMarkers(...)(optional)
- Redux-Store aktualisiert:
- Slice
readPoiMarkersStoreSliceeingebunden
- Slice
Added
- Redux-Slice
readPoiMarkersStoreSlice.jsmit Actions:setPoiMarkers(data)clearPoiMarkers()
[1.1.84] – 2025-05-17
Changed
- Recoil-Atom
polylineEventsDisabledStateentfernt - Migration zu Redux-Slice
polylineEventsDisabledSliceabgeschlossen - Betroffene Komponenten und Funktionen:
MapComponent.js–useSelector(state => state.polylineEventsDisabled.disabled)verwendetinitializeMap.js– Callback-Funktion(value) => dispatch(setDisabled(value))übergebenuseCreateAndSetDevices.js– Verwendung vonuseRecoilStateentfernt (ToDo: an Redux anpassen)
Added
- Neue Redux Actions:
setDisabled,toggleDisabledinpolylineEventsDisabledSlice.js
ToDo
useCreateAndSetDevices.jsnutzt nochuseRecoilState, muss ggf. refaktoriert werden
[1.1.83] – 2025-05-17
Changed
poiReadFromDbTriggerAtomdurch ReduxpoiReadFromDbTriggerSliceersetzt- Alle Komponenten migriert:
index.js– nutzt jetztuseSelectorfür TriggerAddPoiModalWindow.js– verwendetdispatch(incrementTrigger())AddPOIModal.js– entfernt Recoil, setzt Trigger mit ReduxMapComponent.js– liest Trigger-Zustand via Redux statt Recoil
Removed
- Entfernt: alle
useSetRecoilState(...)unduseRecoilValue(...)fürpoiReadFromDbTriggerAtom
Added
- Neue Redux Actions:
incrementTrigger,resetTriggerinpoiReadFromDbTriggerSlice.js
[1.1.82] – 2025-05-17
Changed
- Recoil-Zustand
poiLayerVisibleStatevollständig durch ReduxpoiLayerVisibleSliceersetzt - Betroffene Komponenten:
useMapComponentState.js– Zugriff viauseSelectorstattuseRecoilValueMapComponent.js– Zugriff aufpoiLayerVisibleüber ReduxDataSheet.js–useRecoilStateentfernt,dispatch(setVisible(...))integriert
- Redux-Store (
store.js) erweitert umpoiLayerVisibleReducer
Removed
- Recoil-Atom
poiLayerVisibleStateentfernt
Added
- Neue Redux Actions:
setVisible,toggleVisibleinpoiLayerVisibleSlice.js
[1.1.78] – 2025-05-17
Changed
fetchGisStatusStations.js:- feste URL-Variable
NEXT_PUBLIC_SERVER_URLentfernt - stattdessen dynamische URL-Berechnung per
NEXT_PUBLIC_API_PORT_MODE - Zugriff auf Webservice
GisStationsStatusDistrictfunktioniert jetzt ohne.env.local
- feste URL-Variable
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_URLentfernt - dynamische Proxy-Zieladresse per
NEXT_PUBLIC_API_PORT_MODEdefiniert (dev vs. prod) - Konfiguration via
http-proxy-middlewarevereinfacht
- feste Umgebungsvariable
Added
- Dokumentation erstellt:
docs/server/pages/api/apiProxy.md
[1.1.76] – 2025-05-17
Changed
config.jsangepasst:- Entfernt:
NEXT_PUBLIC_SERVER_URLaus.env.local - Dynamische Berechnung von
serverURLanhandwindow.location+NEXT_PUBLIC_API_PORT_MODE - Zugriff auf Webservices funktioniert jetzt automatisch abhängig von Entwicklungs-/Produktionsumgebung
- Entfernt:
Added
- Dokumentation ergänzt:
docs/frontend/config/config.md
[1.1.75] – 2025-05-17
Changed
setupPolylines.jsundcreateAndSetDevices.jsüberarbeitet:- Entfernt:
NEXT_PUBLIC_BASE_URLaus.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
- Entfernt:
Added
- Dokumentation hinzugefügt:
docs/frontend/utils/polylines/setupPolylines.mddocs/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.jsvereinheitlicht:- zentrale API-Port-Logik über
.env.local(NEXT_PUBLIC_API_PORT_MODE) - URL-Parameter
idMapundidUserwerden dynamisch aus?m=...&u=...extrahiert - Webservice-Aufruf wird korrekt über
GisStationsStatusDistrictaufgebaut
- zentrale API-Port-Logik über
Added
- Dokumentation ergänzt:
docs/frontend/redux/api/fromWebService/fetchGisStationsStatusDistrict.md
[1.1.72] – 2025-05-17
Changed
fetchGisStationsStaticDistrict.jsaktualisiert:- zentrale Steuerung der API-Port-Logik über
.env.local(NEXT_PUBLIC_API_PORT_MODE) - Übergabe von
idMapundidUserüber URL-Parameter?m=...&u=... - Webservice-Endpunkt dynamisch zusammengesetzt
- zentrale Steuerung der API-Port-Logik über
Added
- Dokumentation erstellt:
docs/frontend/redux/api/fromWebService/fetchGisStationsStaticDistrict.md
[1.1.71] – 2025-05-17
Changed
fetchGisStationsStatic.jsaktualisiert:- 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
- zentrale Steuerung der API-Port-Logik über
Added
- Dokumentation hinzugefügt:
docs/frontend/redux/api/fromWebService/fetchGisStationsStatic.md
[1.1.70] – 2025-05-17
Changed
fetchGisSystemStatic.jsumgestellt auf zentrale Port-Logik überNEXT_PUBLIC_API_PORT_MODEfetchGisStationsMeasurements.jsebenfalls angepasst mit gleicher URL-/Port-Strategie- Beide Funktionen lesen
idMapundidUsernun direkt aus der URL (?m=...&u=...)
Added
- Neue Dokumentation:
docs/frontend/redux/api/fromWebService/fetchGisSystemStatic.mddocs/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_3000entfernt - API-URL wird nun dynamisch per
window.location.hostname:3000gesetzt .env.localbereinigt: keine API-URL mehr nötig- Betroffene Dateien:
useFetchPoiData.jspoiTypesSlice.js
[1.1.65] – 2025-05-15
Changed
idMapundidUserwerden nicht mehr aus.env.localgelesen, sondern ausschließlich über die URL übergeben (z. B. von TALAS.web).- Entfernt: Fallback-Variablen
NEXT_PUBLIC_DEFAULT_ID_MAPundNEXT_PUBLIC_DEFAULT_ID_USER. - Dokumentation in
docs/redux/api/fromWebService.mdentsprechend 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.