Commit Graph

193 Commits

Author SHA1 Message Date
ISA
5b86d5293b feat: Plus und Minus Zoom Icons 2025-09-16 12:13:49 +02:00
ISA
31c770f778 feat: Plus und Minus Zoom Icons 2025-09-16 12:12:31 +02:00
ISA
995f084e15 chore: maxZoom = 20; 2025-09-16 11:55:41 +02:00
ISA
a2d3338624 fix: kein DB Verbindung von der Anwendung
Der Fehler war, dass im Code die Funktion getDebugLog() verwendet wurde, die nicht definiert war.
Dadurch ist beim Erstellen des Datenbank-Pools ein Fehler aufgetreten, bevor überhaupt eine Verbindung zur Datenbank aufgebaut werden konnte.

Erst nachdem die Debug-Logik entfernt wurde, konnte die Verbindung erfolgreich hergestellt werden.
Das Problem lag also nicht an der Datenbank oder an den Zugangsdaten, sondern an einem fehlenden bzw. nicht importierten Hilfsfunktion im Pool-Code.
2025-09-12 12:19:51 +02:00
ISA
61ed542ea4 feat: osm von server als proxy für den client 2025-09-09 16:11:23 +02:00
ISA
4befddd440 fix: Station öffnen in Tab 2025-08-26 11:33:24 +02:00
ISA
5b7868145c add: Leaflet | © OpenStreetMap contributors 2025-08-25 06:44:37 +02:00
ISA
3896381a8f Debug-Logging zentralisiert: Nutzung von process.env.NEXT_PUBLIC_DEBUG_LOG entfernt und auf getDebugLog() mit config.json umgestellt
- Alle Vorkommen von process.env.NEXT_PUBLIC_DEBUG_LOG entfernt
- Debug-Konfiguration erfolgt jetzt ausschließlich über public/config.json
- getDebugLog()-Utility überall verwendet
- .env-Dateien werden für Debug-Logging nicht mehr benötigt
- Alle betroffenen Komponenten, Services und API
2025-08-22 11:10:40 +02:00
ISA
f2a322a91b fix: Kabelstrecken werden ausgeblendet 2025-08-22 09:46:31 +02:00
ISA
d68b17c382 feat: public/config.json 2025-08-20 14:45:47 +02:00
ISA
22692f8153 fix: leere Array 2025-08-20 14:41:57 +02:00
ISA
819fde9605 Safeguard: prevent errors when GisStationsMeasurements is empty or missing
- Ensure createAndSetDevices.js always uses an array for measurements
- Prevents crashes if measurement data is empty
2025-08-20 14:03:38 +02:00
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