- 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
1.8 KiB
1.8 KiB
🧭 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:
selectedDeviceSlicewird bei Hover gesetztlineVisibilitySliceaktualisiert 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:
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
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.jsredux/slices/selectedDeviceSlice.js- Webservices:
fetchGisStationsStaticDistrict.js,fetchGisStationsStatusDistrict.js
📄 Pfad: /docs/frontend/utils/devices/createAndSetDevices.md