Commit Graph

133 Commits

Author SHA1 Message Date
ISA
a1e33f650e feat: Kontextmenü für Stützpunkte nur im Edit-Mode anzeigen 2025-03-14 14:18:29 +01:00
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
a846bd14ce Kommentare entfernt, was nicht benötigt wird 2025-03-11 07:52:27 +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
ISA
b6c07bbc7d Fix: redrawPoline.js und POI hinzufgen auf die Karte in Kontextmenü 2025-03-10 08:34:52 +01:00
ISA
2c6561c89d Mock von public Verzeichnis entfernt und von /webServiceMockData/ nutzen, in config.js ist die Konfiguration 2025-03-07 12:02:49 +01:00
ISA
c6269b75a3 git commit -m "feat: Mock-API über /api/mockData/webService erfolgreich implementiert 🚀
- JSON-Dateien aus /webServiceMockdata als echte API-Mocks verfügbar
- API-Endpunkte unter /api/mockData/webService/ hinzugefügt
- Fehlerhafte Platzhalter in den API-Handlern korrigiert
- Alle Mock-URLs in config.js auf die neuen API-Routen umgestellt
- Tests erfolgreich durchgeführt, Mock-API funktioniert einwandfrei"
2025-03-07 10:01:18 +01:00
Ismail Ali
a837291048 refactor: Polyline-Sichtbarkeit auf Redux umgestellt (ersetzt Recoil)
- Sichtbarkeitsstatus für Kabelstrecken/Polylines wird jetzt zentral im Redux-Store verwaltet.
- Initialer Zustand wird aus localStorage gelesen und direkt in Redux gesetzt.
- DataSheet-Checkbox steuert Redux-Status und synchronisiert mit localStorage.
- MapComponent.js verwendet Redux-State direkt zur Steuerung von setupPolylines.
- setupPolylines.js ist jetzt komplett "dumm" und bekommt den Sichtbarkeitsstatus nur noch als Parameter.
- Konsistente Lösung für Initial-Laden, Checkbox-Wechsel und Map-Neuladen umgesetzt.
2025-03-06 19:54:29 +01:00
ISA
335b88d449 fix: Leaflet contextmenu-Event angepasst (event.preventDefault() durch event.originalEvent.preventDefault() ersetzt)
- Problem: Leaflet-Events besitzen kein preventDefault(), nur deren originalEvent (natives DOM-Event).
- Lösung: Zugriff auf event.originalEvent eingebaut, um Fehler beim Kontextmenü zu vermeiden.
- Test: Marker-Kontextmenü öffnet Popup jetzt korrekt, ohne Runtime Error.
2025-03-06 12:19:43 +01:00
ISA
915ffbd85e Marker aktualisieren alle 60 Sekunden, später in Redux lösen 2025-03-06 10:25:47 +01:00
Ismail Ali
4c5ef0e33e Daten von Mock bekommen 2025-03-05 17:47:28 +01:00
ISA
82001a4beb mockApi erstellt, um die Eingabe zu simulieren, aber funktioniert nocht nicht ganz 2025-03-05 12:37:08 +01:00
ISA
3a21abd4bb Test Datei entfernt 2025-03-05 09:48:02 +01:00
ISA
6f1df8db94 merge fix v1.0.8.1 Browser lädt ständig die Seite neu wenn keine Linien existieren 2025-02-12 14:51:17 +01:00
ISA
2e37545e55 Noch alte image für Geräte.
Bereiche und Standorte von Auswahlmenü auskommentiert,
2025-02-05 10:51:05 +01:00
ISA
f4210a4776 Merge branch 'v1.0.8.1' into fix/ohne-externe-babel 2025-02-05 10:27:36 +01:00
ISA
b467ff3835 feat: Linienanzeige abhängig vom Status der Stationen (CPLs)
- Polylinien werden nur angezeigt, wenn die zugehörigen Stationen (CPLs) aktiv sind
- Redux speichert den Status der Stationen (1 = aktiv, 0 = inaktiv)
- setupPolylines.js überprüft jetzt direkt in Redux, ob eine Linie gezeichnet werden soll
- Entfernt den unnötigen activeLines-Parameter in MapComponent.js für eine bessere Struktur
- Optimierte Performance: Linien ändern sich dynamisch ohne Seiten-Reload
2025-02-04 09:27:42 +01:00
ISA
3e92fda934 WIP: referesh polyline wennactive oder inaktive sind (GIS Lines) 2025-02-03 15:56:57 +01:00
ISA
1f9286a6cf CPL nicht anzeigen wenn nicht Aktive ist idLD und Active Spalte in location_device, Status wird in Redux gespeichert für die ensprechende Linie(WIP) 2025-02-03 14:51:14 +01:00
ISA
e03dff4814 Redux: alle Active 1 und 0 speichern 2025-02-03 13:15:59 +01:00
ISA
3fb5e54af7 Redux, idLD speichern nur Aktive Geräte 2025-02-03 08:46:18 +01:00
Ismail Ali
b2777612f2 Wenn in der Tabelle location_device in der Spalte active = 0 steht wird die TALAS-Meldestation auf der Karte nicht mehr als CPL angezeigt. 2025-02-02 18:03:21 +01:00
Ismail Ali
5b2cb762cc fix: Behebt Endlosschleife und doppelte Recoil-Atom-Registrierung
- `index.js` als Client-Komponente deklariert (`"use client"`) zur Vermeidung von SSR-Problemen.
- `useEffect` optimiert, um unendliche API-Requests durch `isMounted`-Check zu verhindern.
- `loadData()` angepasst, um API-Fehler korrekt abzufangen und erneute Ladeversuche zu vermeiden.
- Doppelte Registrierung von `poiReadFromDbTriggerAtom` durch HMR verhindert.
- Ungültige MySQL-Option `acquireTimeout` entfernt, um Verbindungsfehler zu beheben.

Diese Änderungen verhindern unerwartete Reloads und verbessern die Stabilität der Anwendung.
2025-02-02 13:01:04 +01:00
ISA
78ad2219ec geoCoder hinter dataSheet ausblenden 2025-01-10 12:23:11 +01:00
ISA
d7978790e1 feat: Proxy-APIs und Integrationstests für WebServices hinzugefügt
- Vier Proxy-Endpunkte implementiert:
  1. gisStationsStatusDistrict
  2. gisStationsStaticDistrict
  3. gisStationsMeasurements
  4. gisSystemStatic

- API-Integrationstests mit Jest für alle Endpunkte erstellt:
  - Tests verwenden echte API-Responses statt Mock-Daten.
  - Erfolgreiche Anfragen mit gültigen Parametern getestet.
  - Fehlende Parameter und ungültige Parameter getestet.

- Code enthält:
  - Dynamische URL-Generierung für Proxy-Weiterleitungen.
  - Prüfung von Headern, Statuscodes und JSON-Strukturen.
  - Unterstützung für CORS und OPTIONS-Anfragen.

- Ergebnis:
  - Alle Tests erfolgreich bestanden.
  - APIs bereit für produktive Nutzung und Erweiterungen.
2025-01-03 14:02:29 +01:00
ISA
ad766b412c Gerät in neue Tab öffnen vergessen 2024-12-30 10:35:39 +01:00
ISA
30fdd2ca65 Geräte icon links verschieben 2024-12-30 10:27:54 +01:00
ISA
ba3bb1b7d4 feat: Dynamische Marker-Farben basierend auf API-Daten mit Standardfarbe Grün hinzugefügt
- SVG-Icons für Marker implementiert und dynamisch eingefärbt basierend auf API-Daten (idLD und Attribute Co).
- Niedrigstes Level bestimmt die Farbe der Marker.
- Standardfarbe Grün (#008013) für Marker ohne ID hinzugefügt.
- Popup-Informationen mit Farbindikatoren und zusätzlichen Geräteinformationen erstellt.
- SVG-Struktur und innere Icons beibehalten, um eine konsistente Darstellung sicherzustellen.
2024-12-30 10:13:41 +01:00
ISA
fb18bc243c SVG dateien erstellt für die Icons, alle von iconify runtergeladen außer der background 2024-12-30 07:38:55 +01:00
ISA
8f3b56903e SVG background image and icon from iconify icons router example 2024-12-29 17:43:08 +01:00
ISA
ee69f85734 icons nur grün da und erstemal statische Farbe mit Level in createAndSetDevice.js 2024-12-28 11:47:47 +01:00
ISA
6f7c60d341 link geändert für prio API 2024-12-27 14:33:42 +01:00
ISA
54c458ef5f utils/utils.js entfernt, weil alles ist ausgelagert 2024-12-27 11:12:36 +01:00
ISA
fdac9b6901 feat: Geocoder-Suchfeld zur Karte hinzugefügt
- Leaflet-Control-Geocoder integriert, um die Suche nach Koordinaten und Adressen zu ermöglichen.
- Suchfeld in der oberen linken Ecke platziert.
- Automatische Marker-Platzierung und Popup-Anzeige bei erfolgreicher Suche implementiert.
- Layer-Gruppen initialisiert und Suchfeld nach Layer-Setup hinzugefügt.
2024-12-23 12:30:45 +01:00
ISA
35a6d4120b feat: API-Endpunkte für Bereichs-Updates implementiert
- Neuer Endpunkt `updateBereich.js` für die Aktualisierung von Bereichskoordinaten per PUT-Request.
- Utility-Funktion `updateBereichUtil.js` hinzugefügt, um API-Aufrufe für Bereichs-Updates im Frontend zu kapseln.
- Fehler bei der URL in `updateBereichUtil.js` behoben, um sicherzustellen, dass die Koordinaten korrekt aktualisiert werden.
- Verbesserte Fehlerbehandlung und Logging zur Debug-Unterstützung.
2024-12-21 05:49:43 +01:00
ISA
38b43cbe48 bereich.png erstellt und bei editMode active marker.setZIndexOffset(1000); 2024-12-20 08:10:45 +01:00
ISA
c85b0ee0ba Postfix *Slice.js in slices folder
Gängige Praxis: *Slice.js
Verwendung: Wenn du Redux Toolkit und createSlice nutzt, ist der Postfix Slice gängiger.
Begründung:
createSlice ist ein Begriff aus Redux Toolkit.
Der Name vermittelt, dass die Datei nicht nur den Reducer enthält, sondern auch Aktionen und den initialen Zustand.
Häufig in modernen Projekten verwendet.
2024-12-18 21:12:53 +01:00
ISA
19e0570310 Files copy and paste from store atoms and selector to redux slices folder 2024-12-18 07:29:47 +01:00
ISA
509a80e1a9 Lastenheft.js in gitignore 2024-12-17 07:05:22 +01:00
ISA
a00e322cbb fix: GMA Tooltip Kontextmenü schließen wenn versucht neu aufzurufen 2024-12-16 13:49:43 +01:00
ISA
251fe7235f WIP: Plus-Icon bei überlappende Marker ausblenden wenn nur eine oder keine sichtbar geschaltet werden in Checkboxen 2024-12-12 20:53:56 +01:00
ISA
8a628c9f16 refactor: .env.local und /config/urls.js aufgeräumt und initializeMap.js 2024-12-12 13:36:15 +01:00
ISA
e9ce6088b8 WIP: Station öffnen in Kontextmenü für Tooltip 2024-12-12 08:59:05 +01:00
ISA
c45c31714e fix: Verbesserung der Marker-Auswahl beim Plus-Icon-Klick
- Beim Klicken auf das Plus-Symbol wird jetzt nur der erste nahegelegene Marker simuliert angeklickt.
- Überflüssige Klick-Events auf andere Marker wurden entfernt, um die Benutzerfreundlichkeit zu erhöhen.
- Konsolenmeldungen für die Marker-Auswahl bleiben erhalten.
2024-12-11 12:30:00 +01:00