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:
ISA
2025-05-27 15:03:03 +02:00
parent 40afadb178
commit 2b79c6008c
2 changed files with 31 additions and 3 deletions

View File

@@ -1,2 +1,2 @@
// /config/appVersion
export const APP_VERSION = "1.1.192";
export const APP_VERSION = "1.1.193";

View File

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