Commit Graph

181 Commits

Author SHA1 Message Date
ISA
9f05a4f63b feat(config): Map-Parameter (Zoom, Center, etc.) in config.json ausgelagert
- minZoom, maxZoom, center, zoomOutCenter und basePath in config.json konfigurierbar gemacht
- Kommentare zur Erklärung als _comment-Felder ergänzt
- initializeMap.js und zoomAndCenterUtils.js angepasst, um Werte aus config.json zu lesen
- OSM-Standards für Zoom-Stufen dokumentiert
2025-08-20 10:03:21 +02:00
ISA
9a2b438eaf feat: basePath-Konfiguration von .env in config.json verschoben
basePath wird jetzt in config.json gepflegt statt als NEXT_PUBLIC_BASE_PATH in .env.*
Alle relevanten Code-Stellen lesen basePath dynamisch aus config.json
Dokumentation und Beispiele in Markdown-Dateien entsprechend angepasst
Erhöhte Flexibilität für Deployments ohne Rebuild
2025-08-20 08:42:24 +02:00
ISA
bf4fc95b8e Fix Leaflet map initialization: prevent DOM errors and ensure robust container checks
- Refactored initializeMap to accept the DOM node instead of the ref object
- Updated all checks to use the DOM node directly
- Improved useInitializeMap to only call initializeMap when the container is ready
- Prevents "mapRef.current ist nicht definiert oder nicht im DOM" errors
- Ensures map is only initialized when the container is attached
2025-08-19 15:56:24 +02:00
ISA
418651a2af Fix: Leaflet "Map container is already initialized" error is now handled gracefully
- Fehler beim mehrfachen Initialisieren der Leaflet-Map wird nun abgefangen
- Anwendung zeigt keine störende Fehlermeldung mehr im Frontend
- Verbesserte Nutzererfahrung beim Laden und Aktualisieren der Karte
2025-08-19 14:34:50 +02:00
ISA
854eff668a cleanup after merge 2025-07-30 15:37:17 +02:00
ISA
53c670feba fix: Geräte-Marker für Systeme ohne Statusdaten anzeigen (z. B. GMA)
- `createAndSetDevices.js` angepasst, sodass Marker auch ohne `statusDistrictData` erzeugt werden.
- Problem behoben, dass Marker wie GMA trotz vorhandener Koordinaten und Sichtbarkeit nicht gezeichnet wurden.
- Sicherheitsprüfung für Statusdaten optional gemacht, um Systems ohne Messdaten darzustellen.
2025-07-30 11:13:34 +02:00
ISA
37aec649ee feat: Geräte/Stations-Marker werden nur für Systeme mit Allow=1 angezeigt
- Geräte mit Allow=0 in GisSystemStatic werden auf der Karte ausgeblendet
- Daten bleiben unverändert, nur die Anzeige/Zeichnung ist
2025-07-28 16:21:48 +02:00
ISA
0a97c359d8 feat: POI-Erstellung, -Bearbeitung und -Löschung vollständig überarbeitet
- POI-Tooltip zeigt jetzt den korrekten Gerätenamen aus Redux (gisStationsStaticDistrict)
- Bearbeitungsmodal (PoiUpdateModal) verwendet Redux-Daten (idLD → Gerätelabel) zur Initialisierung
- Fix: Geräte-Dropdown im Modal zeigt nun den ausgewählten POI korrekt an
- Refactor: `handleUpdatePoi()` nutzt `description` statt `name`
- Fehlerbehandlung im Modal verbessert (alert bei leerem Feld, besseres Logging)
- Redux-Thunk `updatePoiThunk` + `updatePoiService` stabilisiert
- Map aktualisiert POIs nach Bearbeitung automatisch

📦 Version erhöht auf 1.1.253
🗓️ 11.06.2025
2025-06-11 07:41:10 +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
ISA
004af608fc fix: POI Bearbeiten 2025-06-10 08:52:17 +02:00
Ismail Ali
074a89b77c feat: WebSocket-Integration mit automatischer UI-Aktualisierung für alle Geräte-Daten
- WebSocket sendet aktualisierte Webservice-Daten (GisLinesStatus, GisStationsStaticDistrict, GisStationsMeasurements)
- Redux-Thunk wird durch WebSocket ausgelöst → Redux Store aktualisiert
- `useDynamicDeviceLayers` & `createAndSetDevices` reagieren auf neue Redux-Daten
- UI wird nun zuverlässig neu gerendert, wenn sich Marker-Daten ändern
- Verbesserte Stabilität und Konsistenz zwischen Datenquelle, Redux und UI
2025-06-09 09:18:43 +02:00
Ismail Ali
db54cc7cca test: WebSocket-Datenprüfung erfolgreich – JSON wird bei Änderung gespeichert
- Webservice-Antworten werden nun korrekt mit vorherigen Daten verglichen
- Bei Änderungen wird automatisch eine neue JSON-Datei unter /debug erstellt
- Keine Datei-Erstellung bei identischen Antworten
- Funktion `saveJsonIfChanged` erfolgreich in utils/websocket ausgelagert
2025-06-08 08:52:45 +02:00
ISA
c5846e3ba9 chore(env): .env.local entfernt und durch .env.development ersetzt
- Umgebungsvariablen klar getrennt: .env.development für dev, .env.production für Build
- Verhindert versehentliche Verwendung von .env.local bei next build
- Build-Umgebung verwendet jetzt korrekt .env.production
2025-06-06 12:16:29 +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
1ec0a8a611 feat: automatische Heap-Überwachung integriert mit Reload bei Überschreitung
- monitorHeapAndReload() in /utils/common/monitorMemory.js ausgelagert
- automatische Heap-Prüfung im 10s-Intervall in MapComponent integriert
- reload bei Überschreitung von 8 GB Heap zur Stabilisierung bei Langzeitbetrieb
- useEffect-Cleanup ergänzt mit clearInterval für sauberes Entfernen bei Unmount
- Ziel: frühzeitige Entlastung vor möglichem Memory Overflow
2025-06-06 11:05:33 +02:00
ISA
f7f7122620 feat: Marker-Cleanup zur Vermeidung von Memory Leaks implementiert
- cleanupMarkers() Utility in /utils/common/cleanupMarkers.js erstellt
- Marker-Cleanup in MapComponent.js vor createAndSetDevices() integriert
- createAndSetDevices.js von Cleanup-Verantwortung befreit (reine Erzeugung)
- setupPOIs.js erweitert um cleanupMarkers() vor Layer-Neuerstellung
- poiUtils.js und markerUtils.js angepasst: cleanupMarkers() ersetzt .remove()
- Memory Leaks durch verwaiste Tooltips, Events und Marker behoben
- Grundlage für wiederverwendbare Marker-Cleanup-Logik für POIs, Geräte, Linien geschaffen
2025-06-06 10:21:56 +02:00
ISA
ec31b36b3d feat: Healthcheck um Webservices, API-Routen und .env-Prüfungen erweitert
- Externe Webservices von TALAS V5 integriert und geprüft (Statuscode + Antwortstruktur)
- Eigene API-Endpunkte wie /api/talas_v5_DB/getDevices hinzugefügt und validiert
- Prüfung von NEXT_PUBLIC_USE_MOCKS zur Vermeidung von Mockdaten in Produktion
- Validierung der Umgebungsvariablen wie DB_HOST, DB_NAME und NODE_ENV ergänzt
- Response-Status 200 bei vollständigem Erfolg, 207 bei Teilfehlern
- Verbesserung der JSON-Antwortstruktur zur einfacheren Analyse
2025-06-05 15:23:59 +02:00
ISA
f4342e17ef feat(gma): GMA-Werte aus Measurements-Redux im Marker-Tooltip angezeigt
- createAndSetDevices.js erweitert mit dynamischer GMA-Zuordnung
- Tooltip für System 11 zeigt LT, FBT, GT, RLF
- GMA-Zuordnung über gmaMap basierend auf Na und IdLD
- Version auf 1.1.232 erhöht
2025-06-04 12:14:14 +02:00
ISA
569790d35f fix: Marker-Duplikate & Spiderfy repariert | version 1.1.230 2025-06-04 08:23:55 +02:00
ISA
d887c49d4f feat: Kontextmenü-Link für Marker, Linien und GMA vereinheitlicht – openInNewTab verwendet, Port entfernt, /devices/ ergänzt 2025-06-02 14:27:45 +02:00
ISA
0289656b08 feat: separator in contextmenu 2025-06-02 11:47:12 +02:00
ISA
771254db7e PS C:\Users\isa.LTW\Desktop\02.06.2025\NodeMap\02.06.2025 NodeMap> git push work tags
error: src refspec tags does not match any
error: failed to push some refs to 'http://10.10.0.12:3000/ISA/nodeMap'
PS C:\Users\isa.LTW\Desktop\02.06.2025\NodeMap\02.06.2025 NodeMap>
2025-06-02 11:15:34 +02:00
Ismail Ali
fda7476872 feat(gma): dauerhafte Tooltips mit Messwerten für GMA-Geräte hinzugefügt
- Tooltip mit Temperatur, FBT, GT und RLF aus gisStationsMeasurements.js
- Tooltip dauerhaft sichtbar rechts über dem GMA-Marker
- bestehende Popup-Funktionalität bleibt erhalten
- Refactoring in createAndSetDevices.js zur besseren Wartbarkeit
- useCreateAndSetDevices und useDynamicDeviceLayers eingebunden
2025-05-29 14:00:27 +02:00
Ismail Ali
534f8f062b Tooltip wird angezeigt 2025-05-29 13:20:37 +02:00
Ismail Ali
25508e9b22 fix(map): OverlappingMarkerSpiderfier importiert und Initialisierung korrigiert
- fehlenden Import 'overlapping-marker-spiderfier-leaflet' ergänzt
- Fehler "ReferenceError: OverlappingMarkerSpiderfier is not defined" behoben
- Spiderfy-Funktionalität bei überlappenden Markern jetzt voll funktionsfähig
2025-05-28 20:47:54 +02:00
ISA
fe3ecaa900 feat(map): OMS (OverlappingMarkerSpiderfier) vollständig integriert
- Marker werden nun korrekt bei OMS registriert
- Klick auf Plus-Icon spiderfied überlappende Marker
- useDynamicDeviceLayers um oms erweitert
- checkOverlappingMarkers optimiert für dynamische Marker-Gruppen
- Fehlerbehandlung für ungültige Marker-Typen ergänzt
2025-05-28 14:23:11 +02:00
ISA
85924e575f wip: Dynamische Layers /Geräte Gruppen Erkennung , overlapping funktioniert es noch nicht 2025-05-28 13:57:34 +02:00
ISA
40afadb178 fix(devices): Duplikate im Kontextmenü "Station öffnen" behoben
- Mehrfaches Hinzufügen bei jedem Rechtsklick unterbunden
- Kontextmenü-Initialisierung mit contextMenuCreated abgesichert
- Datei: createAndSetDevices.js
2025-05-27 14:45:58 +02:00
ISA
cdca624874 refactor: basePath als Umgebungsvariable eingeführt (NEXT_PUBLIC_BASE_PATH)
- 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
2025-05-27 11:58:28 +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
873ce0ba5e feat(poi): Mouseover-Tooltip für POIs mit Tailwind-Styling ersetzt Popup
- bindPopup entfernt und durch bindTooltip ersetzt
- Tooltip zeigt POI-Details bei Hover
- Tailwind-Klassen sorgen für einheitliches Design (rund, schatten, padding)
- Version auf 1.1.177 erhöht
2025-05-26 14:08:26 +02:00
ISA
03a1f480e0 refactor 2025-05-26 11:12:45 +02:00
ISA
1a37aa7a3a fix: POI-Icons erscheinen nun korrekt je nach Typ
- Fehler behoben: Alle POIs zeigten immer dasselbe Icon (z. B. poi-marker-icon-4.png)
- Ursache: In setupPOIs.js wurde iconPath fälschlich anhand von idPoiTyp gesucht, obwohl nur idPoi verfügbar war
- Lösung: Icon-Zuordnung erfolgt jetzt über Mapping idPoi → path (Map)
- Kein Backend-Änderung nötig
- Standard-Icon wird verwendet, wenn kein Eintrag im Mapping vorhanden ist

# Version: 1.1.166
2025-05-26 08:45:28 +02:00
Ismail Ali
dd0cad47ae fix: POI-Typ wird beim Öffnen des Modals korrekt vorausgewählt
- idPoiTyp an Marker übergeben und in handleEditPoi verwendet
- Dropdown-Zuweisung in PoiUpdateModal.js über Redux poiTypData
- Version erhöht auf 1.1.164
2025-05-25 11:41:23 +02:00
Ismail Ali
0d59fff439 User Rights include 56: 2025-05-25 11:20:35 +02:00
ISA
28dd0006bc fix: POI-Bearbeiten-Rechte geprüft, Kontextmenü & Modal korrigiert
- Rechteprüfung auf .some(r => r.IdRight === 56) umgestellt
- Bug in PoiUpdateModal behoben (falscher fetchLocationDevices Import)
- Modal öffnet sich nur mit gültigem Bearbeitungsrecht
- Version auf 1.1.159 erhöht
2025-05-23 13:49:57 +02:00
ISA
b48a5b2b58 chore: config.js entfernt – Konfiguration zentral über .env.local
- alle Importe und Aufrufe von config.js entfernt
- Webservices nutzen direkt window.location + NEXT_PUBLIC_API_PORT_MODE
- zentrale Konfigurationsstrategie über .env.local abgeschlossen
2025-05-22 15:02:57 +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
e11a4d3fb2 chore: entferne utils.js – lagere alle Funktionen in spezialisierte Module aus
- lösche nicht mehr benötigte oder veraltete Funktionen aus utils.js
- verschiebe relevante Logik in Dateien wie mapUtils.js
- entferne alle Importe von utils.js im gesamten Projekt
- vereinfache die Projektstruktur und reduziere Duplikate
2025-05-22 08:31:32 +02:00
ISA
79e190d1f4 chore: ungenutzte Funktion createAndSetMarkers aus utils.js entfernt 2025-05-22 08:14:07 +02:00
ISA
d1ef0b355d feat: Geräte-Marker vollständig auf Redux umgestellt
- createAndSetDevices.js angepasst: Datenbezug jetzt nur noch über Redux-Store (Selectoren)
- fetch aus config.js entfernt (keine Verwendung von mapGisStationsStaticDistrictUrl mehr)
- MapComponent.js und useDynamicMarkerLayers.js entsprechend aktualisiert
- Fehlerbehandlung verbessert („Redux enthält keine gültigen Geräte-/Statusdaten“)
- CHANGELOG.md aktualisiert auf Version 1.1.139
2025-05-22 07:58:55 +02:00
ISA
0f899e6465 refactor: Quellcode aufräumen 2025-05-20 13:58:53 +02:00
ISA
2846bc0b13 refactor: Services nach Datenquelle getrennt – webservice/, database/ und utils/ Struktur eingeführt (v1.1.117) 2025-05-20 13:27:20 +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
7b1d255432 refactor+docs: BASE_URL entfernt, Port-Logik vereinheitlicht (v1.1.75)
- setupPolylines.js und createAndSetDevices.js auf dynamische Link-Generierung umgestellt
- Entfernung von NEXT_PUBLIC_BASE_URL aus .env.local
- Verwendung von NEXT_PUBLIC_API_PORT_MODE zur Steuerung von :80 in Dev
- Neue Dokumentationen unter /docs/frontend/utils/{polylines,devices}/
- CHANGELOG.md und appVersion.js auf Version 1.1.75 aktualisiert
2025-05-16 20:44:52 +02:00
ISA
7c67111ccd docs verzeichnis und .env.local in Gitea speichern 2025-05-15 10:47:10 +02:00
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