Commit Graph

85 Commits

Author SHA1 Message Date
ISA
f2a322a91b fix: Kabelstrecken werden ausgeblendet 2025-08-22 09:46:31 +02:00
ISA
e7192a7623 WIP: Kabelstrecken wird deaktiviert beim neuladen der Seite 2025-08-21 14:00:09 +02:00
ISA
5c06abc85e Systeme mit Map === 0 vollständig ausgeblenden 2025-08-11 10:17:09 +02:00
ISA
7c89d8dae5 In Redux Slice mapLayersSlice
state[key] = system.Allow === 1 && system.Map === 1;
2025-08-11 10:04:03 +02:00
ISA
d8567a9928 feat: implement map-specific localStorage and TALAS-Kabelstrecken dependency logic
- Add map-specific localStorage keys using URL parameters (m=mapId, u=userId)
- Implement kartenspezifische Sichtbarkeitseinstellungen per Map/User
- Fix localStorage priority over GisSystemStatic Allow values to preserve user settings
- Add bidirectional TALAS ↔ Kabelstrecken dependency logic:
  * Kabelstrecken aktiviert → TALAS automatisch aktiviert
  * TALAS deaktiviert → Kabelstrecken automatisch deaktiviert
- Update mapLayersSlice.js to respect existing localStorage values over system defaults
- Modify MapComponent.js to load map-specific visibility settings on mount
- Update MapLayersControlPanel.js with kartenspezifische localStorage handling
- Fix useDynamicDeviceLayers.js visibility logic (corrected boolean conditions)
- Update useAreaMarkersLayer.js for map-specific localStorage keys

BREAKING CHANGES:
- localStorage structure changed from "mapLayersVisibility" to "mapLayersVisibility_m{mapId}_u{userId}"
- User visibility preferences now have priority over GisSystemStatic Allow values
- TALAS and Kabelstrecken are now logically linked (dependency relationship)

This resolves issues with:
- Map switching losing visibility settings
- Browser reload overriding user preferences with system defaults
- Missing logical connection between TALAS stations and their cable routes
2025-07-29 10:12:56 +02:00
ISA
4755cefdd7 feat: implement device filtering based on GisSystemStatic Allow property
- Add Allow=1 filter in createAndSetDevices.js to hide devices with Allow=0
- Update mapLayersSlice.js setInitialLayers to respect Allow values for visibility
- Modify MapLayersControlPanel.js localStorage initialization to set visibility based on Allow property
- Only systems with Allow=1 are now visible by default, Allow=0 systems are hidden
- Ensures consistent filtering across device markers and layer visibility controls

This change addresses the requirement to hide stations/devices when their corresponding
IdSystem in GisSystemStatic.json has Allow=0, improving the map display by showing
only authorized/allowed systems to users.
2025-07-29 08:11:31 +02:00
ISA
9d7a696f91 feat: Add persistent localStorage for Kabelstrecken (polylines) visibility
- Add kabelstreckenVisible state with localStorage persistence
- Implement dual localStorage variables (kabelstreckenVisible + polylineVisible) for compatibility
- Add event system for cross-component polyline visibility updates
- Update MapComponent to listen for polylineVisibilityChanged events
- Ensure polylines display correctly on browser reload
- Migrate from Redux-only state to localStorage-first approach
- Add comprehensive debug logging for troubleshooting

Fixes issue where Kabelstrecken checkbox state was lost on page reload
and polylines were not displayed until manual toggle.
2025-07-25 13:09:18 +02:00
Ismail Ali
8e5dac82b5 feat: Geräteauswahl und Anzeige beim POI-Handling auf WebService umgestellt
- setupPOIs.js angepasst: Gerätedaten (LD_Name) aus GisStationsStaticDistrict verwendet
- MapComponent.js übergibt WebService-Geräte (`Points`) als gisDevices an setupPOIs
- PoiUpdateModal.js nutzt LD_Name für react-select Dropdown statt name aus DB
- Dropdown-Anzeige und Tooltip-Daten für POIs nun konsistent mit WebService-Geräteliste
2025-06-10 17:55:36 +02:00
Ismail Ali
b067a4c97e feat: WebSocket-Integration mit UI-Reaktivierung für GisStationsStaticDistrict
- WebSocket-Trigger implementiert, der `fetchGisStationsStaticDistrictThunk` ausführt.
- Trigger-Mechanismus über `useState` (`triggerUpdate`) sorgt für gezielten UI-Re-Render.
- Problem gelöst, dass Redux-Store zwar neue Daten enthielt, aber die UI nicht aktualisiert wurde.
- MapComponent.js und useDynamicDeviceLayers.js entsprechend angepasst.
2025-06-09 00:24:33 +02:00
ISA
51d2d58f8e ♻️ Refactor: cleanupMarkers util eingeführt für alle Marker-Typen + Feature: Heap-Memory-Monitoring über Redux-Slice mit Auto-Reload bei >8GB 2025-06-06 11:36:06 +02:00
ISA
be2da8414c git commit -m "refactor: Gerätelayer dynamisch über IdSystem initialisiert
BREAKING CHANGE: Sichtbarkeit der Gerätegruppen basiert nun auf 'system-<IdSystem>' statt auf Namen wie 'SMSFunkmodem'. Statische Layer-Konfiguration im Redux-Slice entfernt."
2025-06-02 09:00:49 +02:00
ISA
4c6386edea refactor(utils): saveLineData entfernt und durch Redux-Thunk ersetzt
- updatePolylineCoordinatesThunk in markerUtils.js und poiUtils.js eingebunden
- zentrale Hilfsfunktion savePolylineRedux erstellt
- fetch() entfernt, Version auf 1.1.183 erhöht
2025-05-27 08:33:02 +02:00
ISA
44cb27ce0f refactor(area): Bereichsaktualisierung von util auf Redux umgestellt
- updateAreaUtil.js entfernt
- updateAreaService, updateAreaThunk, updateAreaSlice eingeführt
- useAreaMarkersLayer nutzt jetzt updateAreaThunk
- MapComponent umgestellt auf Redux-Dispatch
- Version erhöht auf 1.1.182
2025-05-27 07:55:12 +02:00
ISA
b6acf719ff refactor(polylines): fetch-Aufruf in setupPolylines durch Redux-Thunk ersetzt
- updatePolylineCoordinatesThunk verwendet
- Service-Architektur mit Redux Toolkit umgesetzt
- fetch entfernt, Version auf 1.1.181 erhöht
2025-05-26 15:38:52 +02:00
ISA
5dea7f3e5d refactor(poiTypes): fetch-Logik aus Slice entfernt, fetchPoiTypThunk korrekt eingebunden
- fetchPoiTypes aus poiTypesSlice entfernt
- fetchPoiTypThunk.js + Service verwendet
- dispatch-Aufrufe in Komponenten angepasst
- Fehler "is not a function" beseitigt
- Version auf 1.1.180 erhöht
2025-05-26 14:54:39 +02:00
ISA
cd46401f14 fix(poi): Fehler beim Hinzufügen von POIs behoben (Modal blieb offen)
- Falsche URL im addPoiService korrigiert (/addLocation → /addPoi)
- Redux-Status wird nach erfolgreichem Hinzufügen zurückgesetzt (resetAddPoiStatus)
- Modal schließt jetzt zuverlässig nach dem Dispatch
- Ladeanzeige "Wird hinzugefügt..." verschwindet korrekt
- Version auf 1.1.176 erhöht
2025-05-26 13:52:17 +02:00
ISA
03a1f480e0 refactor 2025-05-26 11:12:45 +02:00
ISA
c8d7fbe434 refactoring 2025-05-26 10:28:48 +02:00
ISA
7c8a553235 refactoring 2025-05-26 10:11:58 +02:00
ISA
8034e28a45 refactoring 2025-05-26 10:04:08 +02:00
ISA
90db829095 refactoring 2025-05-26 09:14:13 +02:00
ISA
34f460902e refactoring 2025-05-26 09:05:31 +02:00
Ismail Ali
fc6a706769 refactor: POI aktualisieren auf updatePoiThunk + ID aus react-select umgestellt
- Thunk getDeviceIdByNameThunk entfernt
- idLD direkt aus Dropdown gelesen
- updatePoiThunk + updatePoiService vollständig eingebunden
- Fehlerbehandlung in handleSubmit verbessert
- Version erhöht auf 1.1.162
2025-05-24 09:18:34 +02:00
ISA
b69a3efae3 refactor: POI-Löschfunktion über Redux Thunk deletePoiThunk umgesetzt
- fetch("/deletePoi") in PoiUpdateModal entfernt
- deletePoiService + deletePoiThunk eingeführt
- Kein Redux Slice nötig, da kein Status gespeichert wird
- Version auf 1.1.161 erhöht
2025-05-23 14:28:10 +02:00
ISA
0a1c0e5fbe refactor: POI-Daten vollständig in Redux integriert
- useFetchPoiData.js entfernt
- Neue Redux-Slices für POI-Typen und POI-Icons erstellt
- Neue Services und Thunks hinzugefügt
- fetch-Aufrufe durch zentralisierte Redux-Logik ersetzt
- store.js aktualisiert und neue States registriert
2025-05-23 11:14:13 +02:00
ISA
8cb995040d refactor and cleanup 2025-05-23 08:36:38 +02:00
ISA
0a0e63feef cleanup: MapComponent.js 2025-05-22 13:25:30 +02:00
ISA
97ee76c5b5 fix: korrigiere fetchGisLinesStatusService für WebService-Antwort 'Statis'
- ersetzt Zugriff auf json.Lines durch json.Statis
- behebt leeren Redux-State bei Linienstatus
- Daten aus Webservice fließen jetzt korrekt in gisLinesStatusSlice
2025-05-22 11:30:03 +02:00
ISA
230bededa0 Linien werden angezeigt aber noch nicht mit Daten von Redux Store sondern direkt fetch Aufruf 2025-05-21 13:42:00 +02:00
ISA
067eba95b5 feat: priorityConfig vollständig auf Redux umgestellt – Slice, Thunk und Service integriert und zentral ausgelagert 2025-05-21 12:27:36 +02:00
ISA
71a6aeef1c refactor: fetchLocationDevices.js entfernt – Nutzung über Thunk + Service strukturiert neu aufgesetzt 2025-05-21 11:02:40 +02:00
ISA
0b7704935f cleanup: alte GIS-Fetch-Dateien und unnötige Service-Imports entfernt – vollständige Umstellung auf zentrale Thunks abgeschlossen 2025-05-21 10:41:59 +02:00
ISA
86f1c1feb0 cleanup: veraltete GIS-Fetch-Dateien entfernt – Projekt verwendet nur noch zentrale Thunks und Services 2025-05-21 10:04:26 +02:00
ISA
3a30162783 refactor: GIS-Redux-Slices reduziert auf 4 (statt 5) – veraltete Slices und Thunks entfernt, Code bereinigt 2025-05-21 09:57:02 +02:00
Ismail Ali
2b4f6e755b docs: vollständige Redux-Slices und Webservice-APIs dokumentiert (v1.1.100) 2025-05-19 19:28:26 +02:00
ISA
13e176fda8 feat: Recoil vollständig entfernt, Projekt nutzt nur noch Redux
- RecoilRoot aus _app.js entfernt
- recoil aus package.json & package-lock.json gelöscht
- README.md aktualisiert: Redux statt Recoil
- DataSheet.md & Wiki.md angepasst
- Projekt ist jetzt vollständig Recoil-frei
2025-05-19 13:10:11 +02:00
ISA
37c41f71f4 chore: entfernt Standardwerte für mapId/userId in urlParameterSlice (jetzt null statt '10'/'484') 2025-05-19 08:43:14 +02:00
Ismail Ali
651326b532 refactor: Entfernt Recoil-Atoms mapIdState & userIdState – ersetzt durch Redux-Slice urlParameter
- MapComponent.js nutzt jetzt useSelector für mapId/userId
- Übergabe dynamischer Parameter via dispatch(setMapId), dispatch(setUserId)
- Store um urlParameterReducer erweitert
2025-05-18 20:56:11 +02:00
Ismail Ali
947317165c refactor: Recoil-Zustand zoomTriggerState durch Redux zoomTriggerSlice ersetzt
- MapComponent.js nutzt jetzt Redux useSelector für zoomTrigger
- DataSheet.js verwendet dispatch(incrementZoomTrigger())
- Recoil vollständig entfernt und Store zentralisiert
2025-05-18 17:49:48 +02:00
Ismail Ali
20aba9bbac feat: Recoil-State 'selectedAreaState' durch Redux ersetzt
- Redux-Slice 'selectedAreaSlice' erstellt mit set/clear Funktionen
- DataSheet.js verwendet dispatch(setSelectedArea(...)) für Dropdown-Auswahl
- MapComponent.js liest Bereichsauswahl über useSelector aus Redux Store
- Recoil-Importe entfernt, Zustand zentralisiert
2025-05-18 17:21:16 +02:00
Ismail Ali
b6bb533339 feat: Recoil-Atom 'readPoiMarkersStore' durch Redux ersetzt
- Slice 'readPoiMarkersStoreSlice' hinzugefügt mit set/clear Funktionen
- index.js vollständig auf Redux umgestellt: useSelector + dispatch(setPoiMarkers)
- AddPOIModal.js verwendet Redux (Dispatch vorbereitet), Recoil entfernt
- store.js um readPoiMarkersStoreReducer ergänzt
- CHANGELOG.md auf 1.1.85 aktualisiert
2025-05-18 15:49:26 +02:00
Ismail Ali
819639164a feat: Recoil-State polylineEventsDisabledState durch Redux ersetzt
- Migration von Recoil zu Redux abgeschlossen für Polyline-Interaktionsstatus
- `MapComponent.js` verwendet jetzt Redux `useSelector` und `dispatch(setDisabled(...))`
- `initializeMap.js` bekommt Callback-Funktion zur Steuerung des Redux-Status
- Redux-Slice `polylineEventsDisabledSlice.js` mit Actions `setDisabled`, `toggleDisabled` integriert
- Hinweis: `useCreateAndSetDevices.js` verwendet noch `useRecoilState`, muss refaktoriert werden
2025-05-18 11:56:39 +02:00
Ismail Ali
7cbabdbebd feat: Recoil-Atom 'poiReadFromDbTriggerAtom' vollständig durch Redux-Slice ersetzt
- Redux Slice 'poiReadFromDbTriggerSlice' eingeführt mit Trigger-Zähler
- Verwendet in index.js, AddPoiModalWindow.js, AddPOIModal.js und MapComponent.js
- Recoil entfernt und durch useSelector / dispatch(incrementTrigger()) ersetzt
- CHANGELOG.md auf 1.1.83 aktualisiert
2025-05-17 17:33:33 +02:00
Ismail Ali
a0d92cd13f feat: Recoil-Zustand 'poiLayerVisibleState' durch Redux ersetzt
- Recoil-Zugriffe in MapComponent.js, DataSheet.js, useMapComponentState.js entfernt
- Redux Slice poiLayerVisibleSlice eingeführt
- Redux Store konfiguriert
- Zustand 'visible' wird über Redux verwaltet
- CHANGELOG.md auf Version 1.1.82 aktualisiert
2025-05-17 16:01:03 +02:00
Ismail Ali
695ec7a55c Datasheet Markdown 2025-05-17 12:30:45 +02:00
ISA
3d3184caf2 docs+refactor: fetchGisStationsStatusDistrict Port-Logik vereinheitlicht
- zentrale Steuerung über .env.local (`NEXT_PUBLIC_API_PORT_MODE`)
- URL-Parameter m/u werden in idMap/idUser übersetzt
- Webservice-Aufruf korrekt über /GisStationsStatusDistrict aufgebaut
- Doku ergänzt: /docs/frontend/redux/api/fromWebService/fetchGisStationsStatusDistrict.md
- CHANGELOG.md auf v1.1.73 aktualisiert
2025-05-16 13:48:08 +02:00
ISA
be6638f74c docs+refactor: fetchGisStationsStaticDistrict vereinheitlicht
- zentrale API-Port-Logik über .env.local (`NEXT_PUBLIC_API_PORT_MODE`)
- URL-Parameter m/u aus der URL extrahiert und übergeben
- neue Doku unter /docs/frontend/redux/api/fromWebService/fetchGisStationsStaticDistrict.md
- CHANGELOG.md auf Version 1.1.72 erweitert
2025-05-16 13:37:54 +02:00
ISA
128b8fea5d docs+refactor: fetchGisStationsStatic API-Aufruf vereinheitlicht
- fetchGisStationsStatic.js verwendet jetzt zentrale Port-Logik über .env.local (NEXT_PUBLIC_API_PORT_MODE)
- Map-ID wird direkt aus der URL gelesen (?m=...)
- Fehlerprüfung auf JSON-Antwort eingebaut
- Doku erstellt: /docs/frontend/redux/api/fromWebService/fetchGisStationsStatic.md
- CHANGELOG.md aktualisiert (v1.1.71)
2025-05-16 13:27:48 +02:00
ISA
04ad5b99e6 docs+refactor: Port-Logik und URL-Handling für Webservices vereinheitlicht
- fetchGisSystemStatic und fetchGisStationsMeasurements nutzen jetzt zentrale .env-Steuerung (NEXT_PUBLIC_API_PORT_MODE)
- feste :3000- oder :80-Zugriffe entfernt, dynamisch via hostname aufgebaut
- URL-Parameter m/u aus der Query übernommen
- zwei neue Dokumentationsdateien im Verzeichnis /docs/frontend/redux/api/fromWebService/
- CHANGELOG.md auf Version 1.1.69 aktualisiert
2025-05-16 13:12:10 +02:00
ISA
21205d0981 docs: Webservice fetchGisSystemStatic dokumentiert mit Portlogik und URL-Parameter
- .env-Variable NEXT_PUBLIC_API_PORT_MODE beschrieben
- Beispielaufruf und URL-Mapping ergänzt
- Pfadstruktur /docs/frontend/redux/api/... übernommen
2025-05-16 10:24:04 +02:00