- setupPolylines.js und createAndSetDevices.js auf dynamische Link-Generierung umgestellt
- Entfernung von NEXT_PUBLIC_BASE_URL aus .env.local
- Verwendung von NEXT_PUBLIC_API_PORT_MODE zur Steuerung von :80 in Dev
- Neue Dokumentationen unter /docs/frontend/utils/{polylines,devices}/
- CHANGELOG.md und appVersion.js auf Version 1.1.75 aktualisiert
79 lines
1.8 KiB
Markdown
79 lines
1.8 KiB
Markdown
# 🧭 createAndSetDevices.js – Geräte setzen und verwalten
|
||
|
||
## Zweck
|
||
|
||
Diese Datei erstellt Leaflet-Marker für aktive Geräte basierend auf Webservice-Daten
|
||
und konfiguriert Kontexteinträge für Interaktionen wie:
|
||
|
||
- Geräte-Popup anzeigen
|
||
- Station per Klick öffnen
|
||
- Statusinformationen einblenden
|
||
- Redux-Aktionen für ausgewähltes Gerät auslösen
|
||
|
||
---
|
||
|
||
## Datenquellen
|
||
|
||
Die Daten stammen aus:
|
||
|
||
- `GisStationsStaticDistrict` (statische Stationsinfos)
|
||
- `GisStationsStatusDistrict` (Statusinformationen)
|
||
|
||
Sie werden entweder über echte Webservices oder Mock-Daten geladen.
|
||
|
||
---
|
||
|
||
## Besonderheiten
|
||
|
||
- Marker werden mit Prioritätsicons gerendert
|
||
- Redux-Slices:
|
||
- `selectedDeviceSlice` wird bei Hover gesetzt
|
||
- `lineVisibilitySlice` aktualisiert Linienstatus
|
||
- Leaflet-Kontextmenü (nur Marker) mit Menüeintrag:
|
||
„Station öffnen (Tab)“
|
||
|
||
---
|
||
|
||
## Dynamische URL mit Port-Logik
|
||
|
||
Die Station-Links im Kontextmenü nutzen keine feste URL mehr.
|
||
Stattdessen wird dynamisch unterschieden:
|
||
|
||
```js
|
||
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
|
||
|
||
const baseUrl =
|
||
mode === "dev"
|
||
? \`\${window.location.protocol}//\${window.location.hostname}:80/talas5/\`
|
||
: \`\${window.location.origin}/talas5/\`;
|
||
```
|
||
|
||
➡ Dadurch wird verhindert, dass bei jeder Server-IP `.env.local` oder ein Build nötig ist.
|
||
|
||
---
|
||
|
||
## Kontextmenüaktion
|
||
|
||
```js
|
||
window.open(`${baseUrl}cpl.aspx?ver=35&kue=24&id=${station.IdLD}`, "_blank");
|
||
```
|
||
|
||
---
|
||
|
||
## Weitere Funktionen
|
||
|
||
- Popup-HTML enthält Statusanzeigen (Name, Farbe, Meldung)
|
||
- Marker werden auf Klick animiert (bounce-Effekt)
|
||
- Kontextmenüeinträge werden sauber entfernt bei Klick außerhalb
|
||
|
||
---
|
||
|
||
## Siehe auch
|
||
|
||
- `setupPolylines.js`
|
||
- `redux/slices/selectedDeviceSlice.js`
|
||
- Webservices: `fetchGisStationsStaticDistrict.js`, `fetchGisStationsStatusDistrict.js`
|
||
|
||
---
|
||
|
||
📄 Pfad: `/docs/frontend/utils/devices/createAndSetDevices.md` |