docs: Projektstruktur der Dokumentation an Quellcode angepasst
- Verzeichnisstruktur unter /docs spiegelt nun die tatsächliche Projektstruktur wider - frontend/server-Trennung entfernt zugunsten von /docs/pages, /docs/redux, /docs/utils etc. - Erhöht Wiederauffindbarkeit, Übersichtlichkeit und Entwicklerfreundlichkeit
This commit is contained in:
79
docs/utils/devices/createAndSetDevices.md
Normal file
79
docs/utils/devices/createAndSetDevices.md
Normal file
@@ -0,0 +1,79 @@
|
||||
# 🧭 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`
|
||||
Reference in New Issue
Block a user