docs:
@@ -25,4 +25,4 @@ NEXT_PUBLIC_USE_MOCKS=true
|
||||
NEXT_PUBLIC_BASE_PATH=/talas5
|
||||
# Oder leer lassen für direkten Zugriff -> NEXT_PUBLIC_BASE_PATH=
|
||||
# App-Versionsnummer
|
||||
NEXT_PUBLIC_APP_VERSION=1.1.294
|
||||
NEXT_PUBLIC_APP_VERSION=1.1.295
|
||||
|
||||
@@ -26,4 +26,4 @@ NEXT_PUBLIC_BASE_PATH=/talas5
|
||||
# Oder leer lassen für direkten Zugriff -> NEXT_PUBLIC_BASE_PATH=
|
||||
|
||||
# App-Versionsnummer
|
||||
NEXT_PUBLIC_APP_VERSION=1.1.294
|
||||
NEXT_PUBLIC_APP_VERSION=1.1.295
|
||||
@@ -159,7 +159,7 @@ const PoiUpdateModal = ({ onClose, poiData }) => {
|
||||
>
|
||||
<div className="flex flex-col mb-4">
|
||||
<label htmlFor="description" className="block mb-2 font-bold text-sm text-gray-700">
|
||||
Beschreibung:
|
||||
Bezeichnung:
|
||||
</label>
|
||||
<input
|
||||
type="text"
|
||||
@@ -167,7 +167,7 @@ const PoiUpdateModal = ({ onClose, poiData }) => {
|
||||
name="description"
|
||||
value={description}
|
||||
onChange={e => setDescription(e.target.value)}
|
||||
placeholder="Beschreibung der Station"
|
||||
placeholder="Bezeichnung eingeben..."
|
||||
className="block p-2 w-full border-2 border-gray-200 rounded-md text-sm"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -51,3 +51,21 @@ die Daten von DB auch mit WebSocket gelöst werden
|
||||
- [x] TODO: POI bearbeiten funktioniert es nicht
|
||||
- [ ] TODO: Linien Links noch mit Port 3000
|
||||
- [ ] TODO: Checkliste für README.md vorbereiten
|
||||
|
||||
## 🐞 Aktuelle Bugs
|
||||
|
||||
- [ ] Tooltip zeigt `unknown` bei bestimmten Linien
|
||||
→ prüfen in `setupPolylines.js`, ob alle Geräte korrekt benannt sind
|
||||
|
||||
- [ ] Tooltip zeigt `N/A` bei Station → untersuchen, ob `station.Name` in `createAndSetDevices.js`
|
||||
gesetzt wird
|
||||
|
||||
## ✨ Ideen & Verbesserungen
|
||||
|
||||
- [ ] ESC-Taste schließt `VersionInfoModal`
|
||||
- [ ] Zurück-Link in jedem `.md` Footer automatisieren
|
||||
|
||||
## 🧹 Technische Schulden
|
||||
|
||||
- [ ] Redundante Kontextmenülogik auflösen
|
||||
- [ ] Bessere Trennung zwischen Mock- und Live-API in Service-Funktionen
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
Zeigt ein modales Fenster mit Koordinateninformationen an, z. B. aus einem Kontextmenü heraus.
|
||||
|
||||

|
||||
|
||||
## Features
|
||||
|
||||
- Darstellung eines Koordinatenwerts (`lat,lng`)
|
||||
|
||||
@@ -2,9 +2,11 @@
|
||||
|
||||
# 🖱️ `contextmenu/` – Kontextmenü-Komponenten
|
||||
|
||||
Dieses Verzeichnis enthält Komponenten und Hooks zur Anzeige und Steuerung von Kontextmenüs in der Leaflet-Kartenanwendung. Sie dienen der Interaktion mit POIs, Koordinaten und Layer-Objekten per Rechtsklick.
|
||||
Dieses Verzeichnis enthält Komponenten und Hooks zur Anzeige und Steuerung von Kontextmenüs in der
|
||||
Leaflet-Kartenanwendung. Sie dienen der Interaktion mit POIs, Koordinaten und Layer-Objekten per
|
||||
Rechtsklick.
|
||||
|
||||
---
|
||||
## 
|
||||
|
||||
## 📂 Enthaltene Dateien
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
Initialisiert Kontextmenüeinträge für die Leaflet-Karte.
|
||||
Wird typischerweise in `initializeMap()` oder `MapComponent` verwendet.
|
||||
|
||||

|
||||
|
||||
## Kontextmenüeinträge
|
||||
|
||||
| Eintrag | Funktion |
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
Ein einfaches benutzerdefiniertes Kontextmenü zur Interaktion mit Linien (Polylinien) auf der Karte.
|
||||
|
||||

|
||||
|
||||
## Zweck
|
||||
|
||||
Das Menü erlaubt folgende Interaktionen:
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# 📄 Übersicht: docs/components/gisPolylines
|
||||
|
||||
- [PolylineContextMenu](PolylineContextMenu.md)
|
||||
- [PolylineContextMenu](PolylineContextMenu.md)
|
||||
|
||||

|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
Ein einfacher, grauer runder Marker als Stützpunkt in einer Polyline.
|
||||
|
||||

|
||||
|
||||
## Eigenschaften
|
||||
|
||||
- Stil: grauer Kreis mit schwarzem Rand
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
Ein Viereck zur Markierung des Endpunkts einer Polyline.
|
||||
|
||||

|
||||
|
||||
## Eigenschaften
|
||||
|
||||
- Stil: graues Quadrat mit schwarzem Rand
|
||||
|
||||
@@ -3,4 +3,6 @@
|
||||
- [CircleIcon](CircleIcon.md)
|
||||
- [EndIcon](EndIcon.md)
|
||||
- [StartIcon](StartIcon.md)
|
||||
- [SupportPointIcons](SupportPointIcons.md)
|
||||
- [SupportPointIcons](SupportPointIcons.md)
|
||||
|
||||

|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
Ein SVG-Dreieck zur Markierung des Startpunkts einer Polyline.
|
||||
|
||||

|
||||
|
||||
## Eigenschaften
|
||||
|
||||
- Schwarzes Dreieck mit grauem Overlay (Polygon SVG)
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
Definiert zwei Icons für interaktive Stützpunkte in einer Polyline:
|
||||
|
||||

|
||||
|
||||
## AddSupportPointIcon
|
||||
|
||||
- Grüner Kreis mit weißem Rand und Pluszeichen
|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
Ein einfaches Leaflet-Icon, das ein rundes Pluszeichen darstellt.
|
||||
Wird für zusätzliche UI-Markierungen auf Geräten oder überlappenden Icons verwendet.
|
||||
|
||||

|
||||
|
||||
## Eigenschaften
|
||||
|
||||
| Attribut | Wert |
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
# 📄 Übersicht: docs/components/icons/devices/overlapping
|
||||
|
||||
- [PlusRoundIcon](PlusRoundIcon.md)
|
||||
- [PlusRoundIcon](PlusRoundIcon.md)
|
||||
|
||||

|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
Die zentrale React-Komponente zur Darstellung und Steuerung der Leaflet-Karte.
|
||||
Bindet alle Marker, Layer, POIs, Linien und das Kontextmenü dynamisch ein.
|
||||
|
||||
---
|
||||

|
||||
|
||||
## 🎯 Zweck
|
||||
|
||||
@@ -41,6 +41,8 @@ Verwendet umfangreiche Redux-Slices zur Steuerung von:
|
||||
- Sichtbarkeit einzelner Layergruppen
|
||||
- Aktuelle Selektion (Area, Gerät, POI)
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## 🔧 Lokale Steuerung
|
||||
@@ -49,6 +51,8 @@ Verwendet umfangreiche Redux-Slices zur Steuerung von:
|
||||
- Karte speichert Zoom & Center dauerhaft im Browser
|
||||
- Kontextmenü-Einträge ändern sich je nach Rechten & Modus
|
||||
|
||||

|
||||
|
||||
---
|
||||
|
||||
## 🧪 Besonderheiten
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# 📄 Übersicht: docs/components/mainComponent
|
||||
|
||||
- [MapComponent](MapComponent.md)
|
||||
Die zentrale React-Komponente zur Darstellung und Steuerung der Leaflet-Karte.
|
||||
Bindet alle Marker, Layer, POIs, Linien und das Kontextmenü dynamisch ein.
|
||||
|
||||
- [MapComponent](MapComponent.md)
|
||||
|
||||

|
||||
|
||||
@@ -5,6 +5,8 @@
|
||||
Zeigt ein modales Formular an, um einen neuen POI auf der Karte zu erstellen.
|
||||
Die Koordinaten (`latlng`) werden automatisch übernommen.
|
||||
|
||||

|
||||
|
||||
## Funktionen
|
||||
|
||||
- POI-Name, Typ und zugehöriges Gerät auswählbar
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
Ein Dialog zur Aktualisierung oder Löschung bestehender POIs.
|
||||
|
||||

|
||||
|
||||
## Features
|
||||
|
||||
- Zeigt aktuellen Namen, Beschreibung, Gerät und Typ
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
# 📄 Übersicht: docs/components/pois
|
||||
|
||||
- [AddPOIModal](AddPOIModal.md)
|
||||
- [PoiUpdateModal](PoiUpdateModal.md)
|
||||
- [PoiUpdateModal](PoiUpdateModal.md)
|
||||
|
||||

|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
<!-- /docs/hooks/layers/useCiscoRouterMarkersLayer.md -->
|
||||
|
||||
# 🌐 useCiscoRouterMarkersLayer.js
|
||||
|
||||
Hook zur Verwaltung aller Cisco-Router-Marker in der Leaflet-Karte.
|
||||
|
||||
## Funktionen
|
||||
|
||||
- Lädt Geräte per `createAndSetDevices(6, ...)`
|
||||
- Fügt Marker hinzu & registriert Popup/Kontextmenü
|
||||
- Verwendet `checkOverlappingMarkers(...)`
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,15 +0,0 @@
|
||||
<!-- /docs/hooks/layers/useDauzMarkersLayer.md -->
|
||||
|
||||
# 🔧 useDauzMarkersLayer.js
|
||||
|
||||
Spezialisierter Hook zur Verwaltung von DAUZ-Gerätemarkern (System-ID: 110)
|
||||
|
||||
## Verhalten
|
||||
|
||||
- Marker mit Popup & Kontextmenü
|
||||
- Nutzung von `createAndSetDevices(...)`
|
||||
- Sichtbarkeit direkt über Kartenlayer steuerbar
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,15 +0,0 @@
|
||||
<!-- /docs/hooks/layers/useEciMarkersLayer.md -->
|
||||
|
||||
# 🛰️ useEciMarkersLayer.js
|
||||
|
||||
Verwaltet die Darstellung und Events für ECI-Marker (System-ID: 2)
|
||||
|
||||
## Features
|
||||
|
||||
- Kontextmenü & Popup für jeden Marker
|
||||
- Erkennung überlappender Marker (`checkOverlappingMarkers`)
|
||||
- Nutzung von `createAndSetDevices(...)`
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,15 +0,0 @@
|
||||
<!-- /docs/hooks/layers/useGmaMarkersLayer.md -->
|
||||
|
||||
# 🌡️ useGmaMarkersLayer.js
|
||||
|
||||
Spezialhook für GMA-Marker mit Messwertanzeige (LT, FBT, GT, RLF).
|
||||
|
||||
## Besonderheiten
|
||||
|
||||
- Tooltip enthält Temperatur-/Feuchtigkeitswerte aus Redux
|
||||
- Eigenes Kontextmenü mit Zoom/Zentrieren
|
||||
- Verwendet `marker.options.areaName` zur Messzuordnung
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,14 +0,0 @@
|
||||
<!-- /docs/hooks/layers/useLteModemMarkersLayer.md -->
|
||||
|
||||
# 📶 useLteModemMarkersLayer.js
|
||||
|
||||
Steuert Marker vom Typ LTE-Modem (System-ID: 5)
|
||||
|
||||
## Features
|
||||
|
||||
- Standard-Kontextmenü + Popup
|
||||
- Integration mit OMS und Overlap-Check
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,14 +0,0 @@
|
||||
<!-- /docs/hooks/layers/useMessstellenMarkersLayer.md -->
|
||||
|
||||
# 🧾 useMessstellenMarkersLayer.js
|
||||
|
||||
Für Messstellen-Marker (System-ID: 13)
|
||||
|
||||
## Verhalten
|
||||
|
||||
- Einfache Marker mit Tooltip
|
||||
- Nutzung von `createAndSetDevices(...)` + Kontextmenü
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,14 +0,0 @@
|
||||
<!-- /docs/hooks/layers/useOtdrMarkersLayer.md -->
|
||||
|
||||
# 🔍 useOtdrMarkersLayer.js
|
||||
|
||||
Darstellung von OTDR-Messpunkten (System-ID: 9)
|
||||
|
||||
## Funktionen
|
||||
|
||||
- Popup-Interaktion beim Hover
|
||||
- Marker mit Kontextmenü via `addContextMenuToMarker`
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,11 +0,0 @@
|
||||
# 🏭 useSiemensMarkersLayer.js
|
||||
|
||||
Für Siemens-Geräte (System-ID: 8).
|
||||
|
||||
- Marker mit Kontextmenü und Overlap-Prüfung
|
||||
- Integration mit OMS
|
||||
- Nutzung von `checkOverlappingMarkers(...)`
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,11 +0,0 @@
|
||||
# 📡 useSmsfunkmodemMarkersLayer.js
|
||||
|
||||
Filtert `GisSystemStatic` nach SMS Modem (System 111 oder Name).
|
||||
|
||||
- Icon: `/img/icons/pois/sms-funkmodem.png`
|
||||
- Kontextmenü & Popup
|
||||
- Sichtbarkeit über `isVisible` steuerbar
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,11 +0,0 @@
|
||||
# ❔ useSonstigeMarkersLayer.js
|
||||
|
||||
Für alle Geräte mit System-ID 200 (Sonstige).
|
||||
|
||||
- Klassische Leaflet-Marker
|
||||
- Kontextmenü und Popup
|
||||
- Nutzung von `createAndSetDevices(...)`
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,10 +0,0 @@
|
||||
# 🌐 useTalasMarkersLayer.js
|
||||
|
||||
Für TALAS-Systeme (System-ID: 1).
|
||||
|
||||
- Popup + Kontextmenü auf Marker
|
||||
- Fügt Marker zuerst zu OMS, dann zu Karte hinzu
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,10 +0,0 @@
|
||||
# 🔗 useTalasiclMarkersLayer.js
|
||||
|
||||
Spezialhook für Geräte vom Typ TALASICL (System-ID: 100).
|
||||
|
||||
- Erstellt Marker mit Standardverhalten
|
||||
- Kontextmenü, Popup, Overlap-Prüfung
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,10 +0,0 @@
|
||||
# ⚙️ useTkComponentsMarkersLayer.js
|
||||
|
||||
Für TK-Komponenten (System-ID: 30).
|
||||
|
||||
- Lädt Marker via `createAndSetDevices`
|
||||
- Marker-Koordinaten können debug-geloggt werden
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,11 +0,0 @@
|
||||
# 💡 useUlafMarkersLayer.js
|
||||
|
||||
Spezialhook für ULAF-Systeme (System-ID: 0).
|
||||
|
||||
- Marker mit ULAF-Icon
|
||||
- Kontextmenü und Popup (statisch)
|
||||
- Dynamisch generierter Popupinhalt
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,10 +0,0 @@
|
||||
# 🧰 useWagoMarkersLayer.js
|
||||
|
||||
Für WAGO-Systeme (System-ID: 7).
|
||||
|
||||
- Kontextmenü, Popup, Overlapping-Support
|
||||
- OMS-Integration und Layer-Hinzufügung
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -1,11 +0,0 @@
|
||||
# 🔷 useWdmMarkersLayer.js
|
||||
|
||||
Verwaltet WDM-Marker (System-ID: 10) in Leaflet.
|
||||
|
||||
- Marker mit Kontextmenü
|
||||
- Mouseover-Popup
|
||||
- Nutzung von `createAndSetDevices(...)`
|
||||
|
||||
---
|
||||
|
||||
[Zurück zur Übersicht](../../README.md)
|
||||
@@ -5,6 +5,9 @@
|
||||
Custom Hook zur Initialisierung von Leaflet-Markern für ein bestimmtes System.
|
||||
Bindet `createAndSetDevices(...)` automatisch in einen `useEffect`.
|
||||
|
||||
Beispiel: TALAS Layer ist mit Pfeilen markiert
|
||||

|
||||
|
||||
## Parameter
|
||||
|
||||
- `systemId`: ID des Gerätesystems (z. B. 1 = TALAS)
|
||||
|
||||
@@ -4,6 +4,9 @@
|
||||
|
||||
Verwaltet alle Marker-Layergruppen dynamisch und modular in einem zentralen Hook.
|
||||
|
||||
Beispiel: TALAS Layer ist mit Pfeilen markiert
|
||||

|
||||
|
||||
## Funktionen
|
||||
|
||||
- Initialisiert LayerGroups für 15+ Gerätesysteme
|
||||
|
||||
@@ -4,11 +4,18 @@
|
||||
|
||||
Custom Hook zur dynamischen Steuerung von Layer-Sichtbarkeit basierend auf Redux.
|
||||
|
||||
Beispiel: TALAS Layer ist mit Pfeilen markiert
|
||||

|
||||
Redux
|
||||

|
||||
Local Storage
|
||||

|
||||
|
||||
## Features
|
||||
|
||||
- Entfernt oder zeigt Marker je nach `mapLayersVisibility`
|
||||
- Nutzt `OverlappingMarkerSpiderfier` (`oms`)
|
||||
- Normalisiert Layer-Keys (z. B. `"GMA"` → `"gma"`)
|
||||
- Nutzt `OverlappingMarkerSpiderfier`
|
||||
- Nutzt Layer-IDs
|
||||
|
||||
## Intern
|
||||
|
||||
|
||||
BIN
docs/screenshots/AddPOIModal.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
docs/screenshots/CircleIcon.png
Normal file
|
After Width: | Height: | Size: 372 KiB |
BIN
docs/screenshots/CoordinatePopup.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
docs/screenshots/EndIcon.png
Normal file
|
After Width: | Height: | Size: 299 KiB |
BIN
docs/screenshots/LocalStorage.png
Normal file
|
After Width: | Height: | Size: 74 KiB |
BIN
docs/screenshots/POIs.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
docs/screenshots/PlusRoundIcon.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
BIN
docs/screenshots/PoiUpdateModal.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/screenshots/PolylineContextMenu.png
Normal file
|
After Width: | Height: | Size: 153 KiB |
BIN
docs/screenshots/ReaduxSlices.png
Normal file
|
After Width: | Height: | Size: 97 KiB |
BIN
docs/screenshots/StartIcon.png
Normal file
|
After Width: | Height: | Size: 296 KiB |
BIN
docs/screenshots/TALAS-Layer.png
Normal file
|
After Width: | Height: | Size: 1.0 MiB |
BIN
docs/screenshots/gisPolylines.png
Normal file
|
After Width: | Height: | Size: 398 KiB |
BIN
docs/screenshots/gisPolylinesIcons.png
Normal file
|
After Width: | Height: | Size: 377 KiB |
BIN
docs/screenshots/mapLayersVisibility.png
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
docs/screenshots/mapLayersVisibilityRedux.png
Normal file
|
After Width: | Height: | Size: 68 KiB |
BIN
docs/screenshots/mapLayersVisibilityTALAS.png
Normal file
|
After Width: | Height: | Size: 815 KiB |
BIN
docs/screenshots/useMapContextMenu.png
Normal file
|
After Width: | Height: | Size: 8.4 KiB |
4
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "nodemap",
|
||||
"version": "1.1.294",
|
||||
"version": "1.1.295",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "nodemap",
|
||||
"version": "1.1.294",
|
||||
"version": "1.1.295",
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.13.3",
|
||||
"@emotion/styled": "^11.13.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "nodemap",
|
||||
"version": "1.1.294",
|
||||
"version": "1.1.295",
|
||||
"dependencies": {
|
||||
"@emotion/react": "^11.13.3",
|
||||
"@emotion/styled": "^11.13.0",
|
||||
|
||||