This commit is contained in:
ISA
2025-06-24 15:07:00 +02:00
parent b6c6fad3b3
commit 4070429193
60 changed files with 87 additions and 214 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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>

View File

@@ -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

View File

@@ -4,6 +4,8 @@
Zeigt ein modales Fenster mit Koordinateninformationen an, z.B. aus einem Kontextmenü heraus.
![CoordinatePopup](../../screenshots/CoordinatePopup.png)
## Features
- Darstellung eines Koordinatenwerts (`lat,lng`)

View File

@@ -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.
---
## ![useMapContextMenu](../../screenshots/useMapContextMenu.png)
## 📂 Enthaltene Dateien

View File

@@ -5,6 +5,8 @@
Initialisiert Kontextmenüeinträge für die Leaflet-Karte.
Wird typischerweise in `initializeMap()` oder `MapComponent` verwendet.
![useMapContextMenu](../../screenshots/useMapContextMenu.png)
## Kontextmenüeinträge
| Eintrag | Funktion |

View File

@@ -4,6 +4,8 @@
Ein einfaches benutzerdefiniertes Kontextmenü zur Interaktion mit Linien (Polylinien) auf der Karte.
![GIS Ployline contextmenu](../../screenshots/PolylineContextMenu.png)
## Zweck
Das Menü erlaubt folgende Interaktionen:

View File

@@ -1,3 +1,5 @@
# 📄 Übersicht: docs/components/gisPolylines
- [PolylineContextMenu](PolylineContextMenu.md)
- [PolylineContextMenu](PolylineContextMenu.md)
![GIS Polylines](../../screenshots/gisPolylines.png)

View File

@@ -4,6 +4,8 @@
Ein einfacher, grauer runder Marker als Stützpunkt in einer Polyline.
![CircleIcon](../../../screenshots/CircleIcon.png)
## Eigenschaften
- Stil: grauer Kreis mit schwarzem Rand

View File

@@ -4,6 +4,8 @@
Ein Viereck zur Markierung des Endpunkts einer Polyline.
![EndIcon](../../../screenshots/EndIcon.png)
## Eigenschaften
- Stil: graues Quadrat mit schwarzem Rand

View File

@@ -3,4 +3,6 @@
- [CircleIcon](CircleIcon.md)
- [EndIcon](EndIcon.md)
- [StartIcon](StartIcon.md)
- [SupportPointIcons](SupportPointIcons.md)
- [SupportPointIcons](SupportPointIcons.md)
![gisPolylinesIcons](../../../screenshots/gisPolylinesIcons.png)

View File

@@ -4,6 +4,8 @@
Ein SVG-Dreieck zur Markierung des Startpunkts einer Polyline.
![StartIcon](../../../screenshots/StartIcon.png)
## Eigenschaften
- Schwarzes Dreieck mit grauem Overlay (Polygon SVG)

View File

@@ -4,6 +4,8 @@
Definiert zwei Icons für interaktive Stützpunkte in einer Polyline:
![CircleIcon](../../../screenshots/CircleIcon.png)
## AddSupportPointIcon
- Grüner Kreis mit weißem Rand und Pluszeichen

View File

@@ -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.
![PlusRoundIcon](../../../../screenshots/PlusRoundIcon.png)
## Eigenschaften
| Attribut | Wert |

View File

@@ -1,3 +1,5 @@
# 📄 Übersicht: docs/components/icons/devices/overlapping
- [PlusRoundIcon](PlusRoundIcon.md)
- [PlusRoundIcon](PlusRoundIcon.md)
![PlusRoundIcon](../../../../screenshots/PlusRoundIcon.png)

View File

@@ -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.
---
![Overview](../../screenshots/overview1.png)
## 🎯 Zweck
@@ -41,6 +41,8 @@ Verwendet umfangreiche Redux-Slices zur Steuerung von:
- Sichtbarkeit einzelner Layergruppen
- Aktuelle Selektion (Area, Gerät, POI)
![ReduxSlices](../../screenshots/ReaduxSlices.png)
---
## 🔧 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
![LocalStorage](../../screenshots/LocalStorage.png)
---
## 🧪 Besonderheiten

View File

@@ -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)
![Overview](../../screenshots/overview1.png)

View File

@@ -5,6 +5,8 @@
Zeigt ein modales Formular an, um einen neuen POI auf der Karte zu erstellen.
Die Koordinaten (`latlng`) werden automatisch übernommen.
![POI hinzufügen Modal](../../screenshots/AddPOIModal.png)
## Funktionen
- POI-Name, Typ und zugehöriges Gerät auswählbar

View File

@@ -4,6 +4,8 @@
Ein Dialog zur Aktualisierung oder Löschung bestehender POIs.
![POI Update Modal](../../screenshots/PoiUpdateModal.png)
## Features
- Zeigt aktuellen Namen, Beschreibung, Gerät und Typ

View File

@@ -1,4 +1,6 @@
# 📄 Übersicht: docs/components/pois
- [AddPOIModal](AddPOIModal.md)
- [PoiUpdateModal](PoiUpdateModal.md)
- [PoiUpdateModal](PoiUpdateModal.md)
![POIs](../../screenshots/POIs.png)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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)

View File

@@ -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
![TALAS-Layer](../screenshots/TALAS-Layer.png)
## Parameter
- `systemId`: ID des Gerätesystems (z.B. 1 = TALAS)

View File

@@ -4,6 +4,9 @@
Verwaltet alle Marker-Layergruppen dynamisch und modular in einem zentralen Hook.
Beispiel: TALAS Layer ist mit Pfeilen markiert
![TALAS-Layer](../screenshots/TALAS-Layer.png)
## Funktionen
- Initialisiert LayerGroups für 15+ Gerätesysteme

View File

@@ -4,11 +4,18 @@
Custom Hook zur dynamischen Steuerung von Layer-Sichtbarkeit basierend auf Redux.
Beispiel: TALAS Layer ist mit Pfeilen markiert
![TALAS-Layer](../screenshots/mapLayersVisibilityTALAS.png)
Redux
![TALAS-Layer](../screenshots/mapLayersVisibilityRedux.png)
Local Storage
![TALAS-Layer](../screenshots/mapLayersVisibility.png)
## Features
- Entfernt oder zeigt Marker je nach `mapLayersVisibility`
- Nutzt `OverlappingMarkerSpiderfier` (`oms`)
- Normalisiert Layer-Keys (z.B. `"GMA"``"gma"`)
- Nutzt `OverlappingMarkerSpiderfier`
- Nutzt Layer-IDs
## Intern

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 372 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

BIN
docs/screenshots/POIs.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 398 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 377 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 815 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

4
package-lock.json generated
View File

@@ -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",

View File

@@ -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",