Commit Graph

26 Commits

Author SHA1 Message Date
Ismail Ali
984ce72201 refactor: Recoil durch Redux ersetzt und Fehler behoben
- Entfernt `useRecoilState(mapLayersState)` und durch `useSelector(selectMapLayersState)` ersetzt.
- Alle `setMapLayersVisibility` durch `dispatch(setLayerVisibility(...))` ersetzt.
- LocalStorage-Handling für `mapLayersVisibility` mit Redux umgesetzt.
- Fehler "setMapLayersVisibility is not defined" behoben, indem `dispatch` verwendet wurde.
- Sicherstellung, dass `mapLayersSlice` im Redux-Store registriert ist.
2025-03-11 21:17:12 +01:00
ISA
449d19a728 fix: Duplizierte Kontextmenü-Einträge verhindert und Cleanup hinzugefügt
- Kontextmenü wird jetzt nur einmal hinzugefügt, wenn es noch nicht existiert.
- Vor dem Hinzufügen wird geprüft, ob bereits Einträge existieren, um Duplikate zu vermeiden.
- Kontextmenü wird entfernt, wenn außerhalb geklickt wird, um Speicherlecks zu verhindern.
- Nutzung eines `Set()` für Menü-IDs, um doppelte Einträge sicher zu verhindern.
2025-03-11 16:19:11 +01:00
ISA
1444a24244 git commit -m "fix: Station öffnen im Kontextmenü für POIs deaktiviert" 2025-03-11 12:05:45 +01:00
ISA
c98694a515 useEffect Block von MapComponent.js in useFetchPoiData.js ausgelagert 2025-03-11 11:02:40 +01:00
ISA
c7e948a27a feat: useEffect für WebService-Abfragen in eigenen Hook ausgelagert
- useEffect-Block für API-Abfragen (GIS Stations Status, Measurements, System Static) in `useFetchWebServiceMap.js` ausgelagert
- Verbesserung der Code-Struktur und Übersichtlichkeit in `MapComponent.js`
- Logging hinzugefügt, um API-Abrufe und Fehler besser nachzuverfolgen
- Sicherstellung, dass `localStorage`-Werte korrekt aktualisiert werden
2025-03-11 10:11:00 +01:00
ISA
0998fcf7c2 was nicht ausgelagert ist entfernt 2025-03-11 08:31:15 +01:00
ISA
a846bd14ce Kommentare entfernt, was nicht benötigt wird 2025-03-11 07:52:27 +01:00
ISA
f59fb62d29 hooks auslagern von MapComponent, useInitializeMap.js und useLoadUserRights.js 2025-03-11 07:45:08 +01:00
ISA
0dce495435 refactor: mainComponent/hooks/webServices/ 2025-03-11 06:47:46 +01:00
Ismail Ali
c797282d35 fix: TypeError: Cannot read properties of null (reading 'contextmenu')
Fehlerbehandlung für `contextmenu` in Polyline-Kontextmenü verbessert
- Fehler abgefangen, wenn `contextmenu` null ist, um React-Fehlermeldung zu vermeiden.
- `window.onerror` hinzugefügt, um den Fehler global zu unterdrücken und die Seite sofort neu zu laden.
- `try-catch` in `setupPolylines.js` eingefügt, um Fehler beim Schließen des Kontextmenüs abzufangen.
- Redux-Countdown-Management verbessert, um Timing-Konflikte zwischen `setupPolylines.js` und `MapComponent.js` zu verhindern.
- SetInterval durch Redux-Status gesteuert, um Synchronisation zwischen Polyline-Kontextmenü und Kartenaktualisierung zu gewährleisten.

🚀 Fehler tritt jetzt nicht mehr in der React-Oberfläche auf und wird automatisch behoben.
2025-03-10 22:33:27 +01:00
Ismail Ali
6c7b372291 Seite neu laden wenn die Fehler kommt , aber wird kurz angezeigt 2025-03-10 22:21:36 +01:00
Ismail Ali
cc716eb4e7 contextmenu, manchmal geht manchmal nicht, Timing Problem 2025-03-10 22:01:22 +01:00
ISA
8ab1c53996 fix: Behebt TypeError: Cannot read properties of null (reading 'contextmenu') mit Redux
- Implementiert `store.subscribe()` in `setupPolylines.js`, um das Kontextmenü-Handling über Redux zu steuern.
- Ersetzt `useDispatch()` und `useSelector()` durch `store.dispatch()` und `store.getState()` in einer Nicht-React-Datei.
- Fügt eine `forceClose`-Action in `polylineContextMenuSlice.js` hinzu, um das Kontextmenü synchron mit `setInterval` zu schließen.
- Stellt sicher, dass das Kontextmenü **immer vor Ablauf des 20-Sekunden-Intervalls** geschlossen wird.
- Verhindert doppelte Menüinstanzen und sorgt für ein stabiles Verhalten bei wiederholten Interaktionen.

 Fix für `TypeError: Cannot read properties of null (reading 'contextmenu')`
 **Verhindert Kontextmenü-Fehler beim automatischen Datenupdate**
 **Redux-gesteuerte Menüverwaltung für stabilere Performance**
 **Kein unerwartetes Offenbleiben oder erneutes Rendern des Menüs mehr**
2025-03-10 13:49:11 +01:00
ISA
1298ce3a81 POI hinzufügen auf die Kabelstrecken/Polylines ausgeblendert 2025-03-10 10:02:48 +01:00
Ismail Ali
6f47709256 fix: Automatische Aktualisierung von Spiderfy/Unspiderfy im Intervall
- `map.fire("click")` im `setInterval()` hinzugefügt, um Linien sofort auszublenden
- Spiderfy/Unspiderfy wird nun regelmäßig aktualisiert, ohne manuelles Klicken
- Debugging-Log hinzugefügt, um Klick-Event zu überwachen
2025-03-09 18:46:38 +01:00
Ismail Ali
06e468e560 fix: Korrektur der Datenquelle für Geräte-Dropdown
- API-Antwort direkt analysiert: `Points` liegt auf oberster Ebene, nicht unter `data`
- Anpassung der Zuweisung: `const locationDeviceData = gisStationsStatic?.Points ?? [];`
- Dropdown wird nun korrekt mit Gerätenamen befüllt
2025-03-09 13:23:02 +01:00
Ismail Ali
42217e09e6 Umbenennung von ShowAddStationPopup.js in AddPOIModal.js für bessere Verständlichkeit" 2025-03-09 09:45:32 +01:00
Ismail Ali
ffb76857c7 feat(context-menu): Fix POI hinzufügen Modal und State-Handling
- `useMapContextMenu.js`:
  - `openPoiModal` in `addItemsToMapContextMenu` integriert, um Zugriff auf `setShowCoordinatesModal` und `setShowPoiModal` zu ermöglichen.
  - `setShowCoordinatesModal` wird korrekt als Parameter übergeben und verwaltet.
  - `POI hinzufügen`-Eintrag im Kontextmenü wurde verbessert.

- `MapComponent.js`:
  - `setShowCoordinatesModal`, `setShowPoiModal` und `setPopupCoordinates` werden jetzt korrekt an `addItemsToMapContextMenu` übergeben.
  - `ShowAddStationPopup` Modal öffnet sich jetzt korrekt und überlagert die Seite.
  - UI-Verbesserungen für Modale und Fix für doppeltes Öffnen von Modalen.

Fixes: Problem, dass mehrere Modale gleichzeitig geöffnet wurden und `setShowCoordinatesModal` nicht definiert war.
2025-03-09 09:37:01 +01:00
Ismail Ali
e4bb12fe18 WIP: POI hinzufügen Modal 2025-03-09 00:52:34 +01:00
Ismail Ali
c227b57f9b POI hinzufügen in useMapContextMenu.js aber noch kein Logik 2025-03-08 22:33:20 +01:00
Ismail Ali
806347f0dd feat: Fix Redux-Datenstruktur für GisStationsStaticDistrict und Bereichs-Dropdown
- `GisStationsStaticDistrict` wird jetzt korrekt aus Redux gelesen und verwendet `Points` als Array.
- Fehler `find is not a function` behoben durch Zugriff auf `GisStationsStaticDistrict.Points`.
- Sicherstellung, dass `Points` existiert, bevor darauf zugegriffen wird.
- Konsole-Logs für Debugging hinzugefügt, um leere oder ungültige Daten zu erkennen.
- Bereichsauswahl im Dropdown funktioniert jetzt korrekt und fliegt zur gewählten Station auf der Karte.

 Tested: Dropdown zeigt jetzt die `Area_Name`-Werte und `map.flyTo()` funktioniert korrekt.
2025-03-08 12:10:21 +01:00
Ismail Ali
28dbf80462 feat: API-URLs dynamisch aus .env.local statt config.js
- Alle API-URLs nutzen jetzt `process.env.NEXT_PUBLIC_API_BASE_URL`
- `fetchGisStationsMeasurements`, `fetchGisStationsStaticDistrict`, `fetchGisStationsStatusDistrict`, `fetchGisSystemStatic` angepasst
- `idMap` und `idUser` werden dynamisch aus URL oder `.env.local` bezogen
- Entfernte `config.js`-Abhängigkeit für API-URLs
- `.env.local` erlaubt jetzt flexible Server-IPs ohne Code-Anpassung
2025-03-08 08:06:07 +01:00
Ismail Ali
53ad8b3402 feat: GisSystemStatic in Redux integriert
- API-Response für GisSystemStatic in Redux Store gespeichert
- Server-IP aus `.env.local` geladen (`NEXT_PUBLIC_API_BASE_URL`)
- `idMap` und `idUser` aus URL-Parametern extrahiert
- fetchGisSystemStatic angepasst für dynamische Werte
- Redux Store aktualisiert und getestet
2025-03-07 23:50:42 +01:00
Ismail Ali
6636f841a2 feat: GisStationsMeasurements in Redux-Store integriert
- API-Loader für GisStationsMeasurements erstellt
- Redux-Slice für GisStationsMeasurements angelegt und im Store registriert
- Initialisierungs-Hook useInitGisStationsMeasurements hinzugefügt
- Daten werden jetzt beim Start automatisch geladen und zentral im Redux-Store gespeichert
- Vorbereitung für spätere Nutzung in UI-Komponenten
2025-03-07 22:33:47 +01:00
Ismail Ali
86d8e4924a feat: GisStationsStaticDistrict in Redux-Store integriert
- WebService-Endpoint für GisStationsStaticDistrict angebunden
- Daten beim Start der Anwendung automatisch geladen und in Redux gespeichert
- UI (DataSheet) verwendet die Daten direkt aus dem Redux-Store
- Fehlerhandling und Initialzustand in Redux-Slice verbessert
- Alte lokale Fetch-Logik entfernt, zentrale Datenhaltung über Redux
2025-03-07 22:20:21 +01:00
Ismail Ali
c57ae7717a feat: Geräte-Daten aus Redux-Store in POI-Bearbeiten-Modal integriert
- Geräte-Liste wird jetzt direkt aus dem Redux-Store (locationDevicesFromDB) verwendet.
- Dropdown-Menü zeigt alle verfügbaren Geräte aus der Datenbank.
- Beim Öffnen des Modals wird der vorher zugewiesene Gerätname automatisch ausgewählt (Pre-Selection).
- Cleanup und Optimierung: Keine separaten API-Calls mehr im Modal.
- Struktur verbessert durch Auslagerung der Lade-Logik in useInitLocationDevices Hook.
2025-03-07 20:52:00 +01:00