docs: createAndSetDevices.md um Bugfix-Hinweis zum Kontextmenü erweitert
- Erklärung zu contextMenuCreated-Flag hinzugefügt - Schutz vor doppeltem Kontextmenü dokumentiert - Hinweis auf setMarkersFunction ergänzt - Testszenarien und Verhalten ergänzt
This commit is contained in:
@@ -1,3 +1,5 @@
|
||||
<!-- /docs/utils/devices/createAndSetDevices.md -->
|
||||
|
||||
# 🧭 createAndSetDevices.js – Geräte setzen und verwalten
|
||||
|
||||
## Zweck
|
||||
@@ -6,10 +8,12 @@ Diese Datei erstellt Leaflet-Marker für aktive Geräte basierend auf Webservice
|
||||
und konfiguriert Kontexteinträge für Interaktionen wie:
|
||||
|
||||
- Geräte-Popup anzeigen
|
||||
- Station per Klick öffnen
|
||||
- Station/Gerät per Klick in neue Tab öffnen -> Kontextmenü ->Item "Station öffnen (Tab)"
|
||||
- Statusinformationen einblenden
|
||||
- Redux-Aktionen für ausgewähltes Gerät auslösen
|
||||
|
||||
Die erzeugten Marker werden über `setMarkersFunction(markersData)` an die aufrufende Komponente übergeben.
|
||||
|
||||
---
|
||||
|
||||
## Datenquellen
|
||||
@@ -60,6 +64,21 @@ window.open(`${baseUrl}cpl.aspx?ver=35&kue=24&id=${station.IdLD}`, "_blank");
|
||||
|
||||
---
|
||||
|
||||
## Schutz vor doppelten Kontextmenüs
|
||||
|
||||
Ein `contextMenuCreated`-Flag stellt sicher, dass pro Marker nur **ein** Kontextmenü erzeugt wird:
|
||||
|
||||
```js
|
||||
if (!contextMenuCreated) {
|
||||
contextMenuCreated = true;
|
||||
marker.bindContextMenu({ ... });
|
||||
}
|
||||
```
|
||||
|
||||
➡ Verhindert Duplikate bei wiederholten Rechtsklicks
|
||||
|
||||
---
|
||||
|
||||
## Weitere Funktionen
|
||||
|
||||
- Popup-HTML enthält Statusanzeigen (Name, Farbe, Meldung)
|
||||
@@ -68,6 +87,15 @@ window.open(`${baseUrl}cpl.aspx?ver=35&kue=24&id=${station.IdLD}`, "_blank");
|
||||
|
||||
---
|
||||
|
||||
## Tests
|
||||
|
||||
- Marker wird bei gültigen Daten erzeugt
|
||||
- Kontextmenü enthält nur **einen** Eintrag „Station öffnen“
|
||||
- Popup zeigt korrekte Statusinformationen (Farben, Texte)
|
||||
- Redux `setSelectedDevice(...)` wird korrekt aufgerufen
|
||||
|
||||
---
|
||||
|
||||
## Siehe auch
|
||||
|
||||
- `setupPolylines.js`
|
||||
@@ -76,4 +104,4 @@ window.open(`${baseUrl}cpl.aspx?ver=35&kue=24&id=${station.IdLD}`, "_blank");
|
||||
|
||||
---
|
||||
|
||||
📄 Pfad: `/docs/frontend/utils/devices/createAndSetDevices.md`
|
||||
📄 Pfad: `/docs/frontend/utils/devices/createAndSetDevices.md`
|
||||
|
||||
Reference in New Issue
Block a user