refactor+docs: BASE_URL entfernt, Port-Logik vereinheitlicht (v1.1.75)

- 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
This commit is contained in:
Ismail Ali
2025-05-16 20:44:52 +02:00
parent c9df728777
commit 7b1d255432
7 changed files with 206 additions and 21 deletions

View File

@@ -0,0 +1,77 @@
# 🧭 setupPolylines.js Polylinien zeichnen und verwalten
## Zweck
Diese Datei enthält die zentrale Funktion `setupPolylines`, die in der Kartenkomponente (Leaflet) Polylinien sowie Marker basierend auf Gerätekonfigurationen zeichnet und verwaltet.
Sie wird verwendet, um:
- Polylinien basierend auf Koordinaten zu zeichnen
- Stützpunkte visuell als Marker anzuzeigen
- Marker kontextsensitiv mit Optionen (z.B. „Stützpunkt entfernen“, „Koordinaten anzeigen“) auszustatten
- Linien aktualisieren und neue Koordinaten in die Datenbank schreiben
- Kontextmenü-Interaktionen zu ermöglichen
---
## Besonderheiten
- Marker mit speziellen Icons (Start, Ende, Zwischenpunkt)
- Interaktivität abhängig vom Bearbeitungsmodus (editMode aus `localStorage`)
- Kontextmenü pro Marker und Linie individuell steuerbar
- API-Aufrufe zur Koordinaten-Aktualisierung:
`POST /api/talas_v5_DB/gisLines/updateLineCoordinates`
---
## Dynamische URL mit Port-Steuerung
Die Datei verwendet **keine feste API-Basis-URL** mehr aus `.env.local`.
Stattdessen wird `NEXT_PUBLIC_API_PORT_MODE` genutzt, um zwischen Entwicklungs- und Produktionsumgebung zu unterscheiden:
```env
NEXT_PUBLIC_API_PORT_MODE=dev
```
### Beispiel im Code:
```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/`;
```
---
## Kontextmenüaktionen
- Station öffnen (neuer Tab)
- Koordinaten anzeigen
- Zoom in/out
- Karte zentrieren
- Stützpunkt hinzufügen/entfernen (wenn editMode)
---
## Speicherorte
- Polylinien und LineColors werden unter `window.polylines` und `window.lineColors` global gespeichert
- Aktive Redux-Slices:
- `polylineContextMenuSlice`
- `addPoiOnPolylineSlice`
- `polylineLayerVisibleSlice`
---
## Siehe auch
- API-Aufruf: `/api/talas_v5_DB/gisLines/updateLineCoordinates`
- `utils/geometryUtils.js`, `poiUtils.js`, `eventHandlers.js`
- `redux/slices/polylineContextMenuSlice.js`
---
📄 Pfad: `/docs/frontend/utils/polylines/setupPolylines.md`