This commit is contained in:
ISA
2025-05-28 08:04:34 +02:00
parent 97fbb6fdc1
commit 5f0133d638
107 changed files with 1446 additions and 454 deletions

View File

@@ -1,2 +1,2 @@
// /config/appVersion // /config/appVersion
export const APP_VERSION = "1.1.195"; export const APP_VERSION = "1.1.196";

View File

@@ -1,17 +0,0 @@
# addPoiOnPolylineSlice
Verwaltet den Status für das Hinzufügen eines POIs auf einer bestehenden Polyline.
## 🔧 Zustand
```ts
{
isOpen: false,
latlng: null
}
```
## 🎯 Aktionen
- `openAddPoiOnPolylineModal(latlng)` öffnet das Modal mit Koordinaten
- `closeAddPoiOnPolylineModal()` schließt das Modal

View File

@@ -1,22 +0,0 @@
# 📍 currentPoiSlice
Verwaltet den aktuell ausgewählten POI (z.B. für Bearbeitung oder Anzeige im Modal).
## 🔧 Zustand
```ts
{
currentPoi: null
}
```
## 🎯 Aktionen
- `setCurrentPoi(poi)` setzt den aktiven POI
- `clearCurrentPoi()` löscht aktuellen POI
## 🔎 Selector
```ts
selectCurrentPoi = (state) => state.currentPoi.currentPoi;
```

View File

@@ -0,0 +1,40 @@
<!-- /docs/redux/slices/database/area/updateAreaSlice.md -->
# 🧩 updateAreaSlice.js
Redux-Slice zur Verwaltung des Update-Zustands beim Aktualisieren eines Bereichs (Area).
---
## Zustand
```js
{
status: "idle" | "loading" | "succeeded" | "failed",
error: string | null
}
```
---
## Thunk
- `updateAreaThunk`: Führt den API-Call zum Speichern von `x`, `y` für `idLocation` & `idMaps` durch.
---
## Aktionen
- `resetUpdateAreaStatus()`: Setzt Status auf `"idle"` und entfernt Fehler
---
## Verwendung
In der Komponente `useAreaMarkersLayer.js` beim Ziehen und Speichern von Stationsmarkern.
---
## Fehlerbehandlung
- Fehlernachricht wird in `error` gespeichert, falls `updateAreaThunk` fehlschlägt.

View File

@@ -0,0 +1,45 @@
<!-- /docs/redux/slices/database/locationDevicesSlice.md -->
# 🧩 locationDevicesSlice.js
Redux-Slice zur Verwaltung von Standortgeräten (Devices) aus der Tabelle `location_device`.
---
## Zustand
```js
{
data: [],
status: "idle" | "loading" | "succeeded" | "failed",
error: string | null
}
```
---
## Thunks
- `fetchLocationDevicesThunk`: Lädt Geräte aus der API
---
## Aktionen
- `clearLocationDevices()`: Löscht Geräte-Array und setzt Status zurück
---
## Selektoren
```js
selectLocationDevices = (state) => state.locationDevices.data;
selectLocationDeviceStatus = (state) => state.locationDevices.status;
```
---
## Besonderheiten
- Zustand wird bei `pending`, `fulfilled` und `rejected` aktualisiert
- Fehlernachricht wird in `error` gespeichert

View File

@@ -0,0 +1,3 @@
# 🧩 addPoiOnPolylineSlice.js
Redux-Slice zur Verwaltung von addPoiOnPolyline.

View File

@@ -0,0 +1,3 @@
# 🧩 addPoiSlice.js
Redux-Slice zur Verwaltung von addPoi.

View File

@@ -0,0 +1,3 @@
# 🧩 currentPoiSlice.js
Redux-Slice zur Verwaltung von currentPoi.

View File

@@ -0,0 +1,3 @@
# 🧩 poiIconsDataSlice.js
Redux-Slice zur Verwaltung von POIIconsData.

View File

@@ -0,0 +1,3 @@
# 🧩 poiLayerVisibleSlice.js
Redux-Slice zur Verwaltung von POILayerVisible.

View File

@@ -0,0 +1,3 @@
# 🧩 poiMarkersSlice.js
Redux-Slice zur Verwaltung von POIMarkers.

View File

@@ -0,0 +1,3 @@
# 🧩 poiReadFromDbTriggerSlice.js
Redux-Slice zur Verwaltung von POIReadFromDbTrigger.

View File

@@ -0,0 +1,3 @@
# 🧩 poiTypSlice.js
Redux-Slice zur Verwaltung von POITyp.

View File

@@ -0,0 +1,3 @@
# 🧩 poiTypesSlice.js
Redux-Slice zur Verwaltung von POITypes.

View File

@@ -0,0 +1,3 @@
# 🧩 readPoiMarkersStoreSlice.js
Redux-Slice zur Verwaltung von readPoiMarkersStore.

View File

@@ -0,0 +1,3 @@
# 🧩 selectedPoiSlice.js
Redux-Slice zur Verwaltung von selectedPoi.

View File

@@ -0,0 +1,25 @@
<!-- /docs/redux/slices/database/polylines/gisLinesSlice.md -->
# 🧩 gisLinesSlice.js
Verwaltet alle Linienobjekte, die aus der Datenbank (`gis_lines`) gelesen wurden.
## Zustand
```js
{
data: [],
status: "idle" | "loading" | "succeeded" | "failed",
error: string | null
}
```
## Thunk
- `fetchGisLinesThunk()`
## Selector
```js
selectGisLines = (state) => state.gisLines.data
```

View File

@@ -0,0 +1,25 @@
<!-- /docs/redux/slices/database/polylines/polylineContextMenuSlice.md -->
# 🧩 polylineContextMenuSlice.js
Verwaltet den Zustand des Kontextmenüs bei Polylinien (z.B. Stützpunkt hinzufügen/entfernen).
## Zustand
```js
{
isOpen: false,
position: { lat, lng } | null,
forceClose: false,
timerStart: number | null,
countdown: number,
countdownActive: boolean
}
```
## Aktionen
- `openPolylineContextMenu(payload)`
- `closePolylineContextMenu()`
- `updateCountdown()`
- `forceCloseContextMenu()`

View File

@@ -0,0 +1,16 @@
<!-- /docs/redux/slices/database/polylines/polylineEventsDisabledSlice.md -->
# 🧩 polylineEventsDisabledSlice.js
Steuert, ob Interaktionen mit Polylinien (z.B. Ziehen, Klicks) temporär deaktiviert sind.
## Zustand
```js
{ disabled: boolean }
```
## Aktionen
- `setDisabled(boolean)`
- `toggleDisabled()`

View File

@@ -0,0 +1,21 @@
<!-- /docs/redux/slices/database/polylines/polylineLayerVisibleSlice.md -->
# 🧩 polylineLayerVisibleSlice.js
Steuert die Sichtbarkeit des Polylinienlayers auf der Karte.
## Zustand
```js
{ visible: boolean }
```
## Aktion
- `setPolylineVisible(boolean)`
## Selector
```js
selectPolylineVisible = (state) => state.polylineLayerVisible.visible
```

View File

@@ -0,0 +1,22 @@
<!-- /docs/redux/slices/database/polylines/updatePolylineCoordinatesSlice.md -->
# 🧩 updatePolylineCoordinatesSlice.js
Redux-Slice zur Überwachung des Lade-/Fehlerstatus bei der Aktualisierung von Linienkoordinaten.
## Zustand
```js
{
status: "idle" | "loading" | "succeeded" | "failed",
error: string | null
}
```
## Thunk
- `updatePolylineCoordinatesThunk()`
## Aktion
- `resetUpdateStatus()`

View File

@@ -1,16 +1,24 @@
# 📶 lineVisibilitySlice <!-- /docs/redux/slices/ui/lineVisibilitySlice.md -->
Speichert, welche Linien (Kabelstrecken) aktiv sichtbar sind. # 📶 lineVisibilitySlice.js
## 🔧 Zustand Redux-Slice zur Steuerung der Sichtbarkeit aktiver Linien auf der Karte.
```ts ## Zustand
```js
{ {
activeLines: { [idLD]: true | false } activeLines: {
[idLD]: true | false
}
} }
``` ```
## 🎯 Aktionen ## Aktionen
- `updateLineStatus({ idLD, active })` - `updateLineStatus({ idLD, active })`: Einzelne Linie sichtbar/unsichtbar
- `setActiveLines({...})` - `setActiveLines({ ... })`: Ganze Objektzuweisung
## Anwendung
Wird verwendet z.B. in `useLineData.js`, `MapComponent.js`

View File

@@ -1,18 +1,27 @@
# 🗺️ mapLayersSlice <!-- /docs/redux/slices/ui/mapLayersSlice.md -->
Verwaltet Sichtbarkeit der verschiedenen Map-Layer pro System (TALAS, ECI, GMA usw.). # 🗺️ mapLayersSlice.js
## 🔧 Zustand Verwaltet die Sichtbarkeit einzelner Layergruppen (z.B. GMA, ECI, Siemens).
```ts ## Zustand
```js
{ {
TALAS: true, TALAS: true,
ECI: true, ECI: true,
ULAF: true,
... ...
} }
``` ```
## 🎯 Aktionen ## Aktionen
- `toggleLayer(layerName)` - `toggleLayer(layer)`: Sichtbarkeit toggeln
- `setLayerVisibility({ layer, visibility })` - `setLayerVisibility({ layer, visibility })`: Sichtbarkeit explizit setzen
## Selector
```js
selectMapLayersState = (state) => state.mapLayers
```

View File

@@ -1,16 +0,0 @@
# 👁️ poiLayerVisibleSlice
Steuert, ob der POI-Layer auf der Karte angezeigt wird.
## 🔧 Zustand
```ts
{
visible: true
}
```
## 🎯 Aktionen
- `setVisible(true|false)`
- `toggleVisible()`

View File

@@ -1,16 +0,0 @@
# 🔄 poiReadFromDbTriggerSlice
Verwaltet einen Trigger, um POIs aus der DB neu zu laden.
## 🔧 Zustand
```ts
{
trigger: 0
}
```
## 🎯 Aktionen
- `incrementTrigger()` erhöht den Wert (z.B. um useEffect auszulösen)
- `resetTrigger()` setzt auf 0 zurück

View File

@@ -1,71 +0,0 @@
# 🧩 poiTypesSlice Redux Slice für POI-Typen
## Zweck
Dieses Slice verwaltet die Liste der POI-Typen (`poiTyp`) aus der Datenbank.
Die Daten werden beim Start der Karte vom Server abgerufen und im Redux Store gespeichert.
---
## Quelle
API-Endpunkt:
```
/api/talas_v5_DB/poiTyp/readPoiTyp
```
Die Daten werden über einen `createAsyncThunk` geladen:
```js
export const fetchPoiTypes = createAsyncThunk("poiTypes/fetchPoiTypes", async () => {
// ...
});
```
---
## Dynamische API-URL
Damit kein Rebuild bei jedem Serverwechsel nötig ist, wird die API-URL dynamisch bestimmt:
```js
let API_BASE_URL = "";
if (typeof window !== "undefined") {
API_BASE_URL = `${window.location.protocol}//${window.location.hostname}:3000`;
} else {
API_BASE_URL = "http://localhost:3000";
}
```
➡ Dadurch kann dieselbe `.next`-Build auf verschiedenen Servern verwendet werden, ohne neu zu builden.
---
## Datenstruktur im Redux Store
```ts
{
poiTypes: {
items: [], // Liste aller POI-Typen
status: "idle" | "loading" | "succeeded" | "failed"
}
}
```
---
## Verwendung in Komponenten
Diese Daten werden typischerweise verwendet in:
- `components/pois/AddPoiModalWindow.js`
- `MapComponent.js` (indirekt)
---
## Siehe auch
- [`useFetchPoiData`](../../frontend/hooks/useFetchPoiData.md)
- API-Datei: `pages/api/talas_v5_DB/poiTyp/readPoiTyp.js`

View File

@@ -1,23 +0,0 @@
# 📋 polylineContextMenuSlice
Verwaltet das Kontextmenü für Polylinien (z.B. für Aktionen wie POI einfügen).
## 🔧 Zustand
```ts
{
isOpen: false,
position: { lat, lng },
forceClose: false,
timerStart: null,
countdown: 20,
countdownActive: false
}
```
## 🎯 Aktionen
- `openPolylineContextMenu(position)`
- `closePolylineContextMenu()`
- `updateCountdown()`
- `forceCloseContextMenu()`

View File

@@ -1,16 +0,0 @@
# 🚫 polylineEventsDisabledSlice
Steuert, ob Events auf Polylinien (z.B. Klicks) deaktiviert sind.
## 🔧 Zustand
```ts
{
disabled: false
}
```
## 🎯 Aktionen
- `setDisabled(true|false)`
- `toggleDisabled()`

View File

@@ -1,15 +0,0 @@
# 📏 polylineLayerVisibleSlice
Steuert, ob der Layer mit Kabelstrecken (Polylinien) angezeigt wird.
## 🔧 Zustand
```ts
{
visible: false
}
```
## 🎯 Aktionen
- `setPolylineVisible(true|false)` → speichert Zustand auch in `localStorage`

View File

@@ -1,16 +0,0 @@
# 📌 readPoiMarkersStoreSlice
Enthält alle POI-Marker, die von der Datenbank gelesen wurden.
## 🔧 Zustand
```ts
{
poiMarkers: []
}
```
## 🎯 Aktionen
- `setPoiMarkers(array)`
- `clearPoiMarkers()`

View File

@@ -0,0 +1,16 @@
<!-- /docs/redux/slices/ui/selectedAreaSlice.md -->
# 📍 selectedAreaSlice.js
Steuert die aktuell selektierte Station/Bereich in der Karte.
## Zustand
```js
{ area: null | object }
```
## Aktionen
- `setSelectedArea(area)`
- `clearSelectedArea()`

View File

@@ -1,14 +1,16 @@
# 🔧 selectedDeviceSlice <!-- /docs/redux/slices/ui/selectedDeviceSlice.md -->
Speichert das aktuell ausgewählte Gerät (z.B. für Detailanzeige, Popup oder Bearbeitung). # 🖥️ selectedDeviceSlice.js
## 🔧 Zustand Speichert das aktuell ausgewählte Gerät aus der Karte.
```ts ## Zustand
null | { ...deviceData }
```js
null | { ...Gerät }
``` ```
## 🎯 Aktionen ## Aktionen
- `setSelectedDevice(device)` - `setSelectedDevice(device)`
- `clearSelectedDevice()` - `clearSelectedDevice()`

View File

@@ -1,14 +0,0 @@
# 📍 selectedPoiSlice
Speichert den aktuell ausgewählten POI (z.B. für Detailanzeige, Update oder Modal-Interaktion).
## 🔧 Zustand
```ts
null | { ...poiData }
```
## 🎯 Aktionen
- `setSelectedPoi(poi)`
- `clearSelectedPoi()`

View File

@@ -1,18 +1,20 @@
# 🌐 urlParameterSlice <!-- /docs/redux/slices/ui/urlParameterSlice.md -->
Verwaltet `mapId` und `userId`, die aus der URL gelesen werden. # 🔗 urlParameterSlice.js
## 🔧 Zustand Verwaltet die URL-Parameter `m` (mapId) und `u` (userId).
```ts ## Zustand
```js
{ {
mapId: null | string, mapId: number | null,
userId: null | string userId: number | null
} }
``` ```
## 🎯 Aktionen ## Aktionen
- `setMapId(id)` - `setMapId(id)`
- `setUserId(id)` - `setUserId(id)`
- `setFromURL({ m, u })` gleichzeitig beide setzen aus URL-Params - `setFromURL({ m, u })`

View File

@@ -0,0 +1,25 @@
<!-- /docs/redux/slices/webservice/gisLinesStatusSlice.md -->
# 🧩 gisLinesStatusSlice.js
Lädt und speichert Statusdaten von Linien (z.B. Spannungswerte, Betriebszustand) aus dem Webservice.
## Zustand
```js
{
data: [],
status: "idle" | "loading" | "succeeded" | "failed",
error: string | null
}
```
## Thunk
- `fetchGisLinesStatusThunk()`
## Selector
```js
selectGisLinesStatusFromWebservice = (state) => state.gisLinesStatusFromWebservice
```

View File

@@ -1,26 +1,25 @@
# 📈 gisStationsMeasurementsSlice <!-- /docs/redux/slices/webservice/gisStationsMeasurementsSlice.md -->
Verwaltet Messdaten für GIS-Stationen, z.B. Spannungen, Strom, Sensorwerte etc. # 🧩 gisStationsMeasurementsSlice.js
## 🔧 Pfad Verwaltet Messwerte einzelner Stationen (z.B. Schleifenwiderstand, Isolation) aus Webservice-Antworten.
`/redux/slices/webService/gisStationsMeasurementsSlice.js`
## 📦 Initial State ## Zustand
```ts ```js
{ {
data: [], data: [],
status: "idle", status: "idle" | "loading" | "succeeded" | "failed",
error: null error: string | null
} }
``` ```
## 🔁 Thunk: `fetchGisStationsMeasurementsFromWebService` ## Thunk
Verwendet `fetchGisStationsMeasurements()` als API-Quelle. - `fetchGisStationsMeasurementsThunk()`
## 📊 Selector ## Selector
```ts ```js
selectGisStationsMeasurements = (state) => state.gisStationsMeasurements.data; selectGisStationsMeasurements = (state) => state.gisStationsMeasurements.data
``` ```

View File

@@ -1,18 +1,25 @@
# 🏙️ gisStationsStaticDistrictSlice <!-- /docs/redux/slices/webservice/gisStationsStaticDistrictSlice.md -->
Verwaltet statische Daten für GIS-Bezirksstationen. # 🧩 gisStationsStaticDistrictSlice.js
## 🔧 Pfad Lädt und speichert statische Standortdaten (z.B. Koordinaten) der Stationen im aktuellen Bezirk.
`/redux/slices/webService/gisStationsStaticDistrictSlice.js`
## 📦 Initial State ## Zustand
```ts ```js
{ {
data: [], data: { Points: [] },
status: "idle", status: "idle" | "loading" | "succeeded" | "failed",
error: null error: string | null
} }
``` ```
## 🔁 Thunk: `fetchGisStationsStaticDistrictFromWebService` ## Thunk
- `fetchGisStationsStaticDistrictThunk()`
## Selector
```js
selectGisStationsStaticDistrict = (state) => state.gisStationsStaticDistrict.data
```

View File

@@ -1,26 +0,0 @@
# 🛰️ gisStationsStaticSlice
Verwaltet statische Informationen zu GIS-Stationen z.B. für das Dropdown im DataSheet-Bereich.
## 🔧 Pfad
`/redux/slices/webService/gisStationsStaticSlice.js`
## 📦 Initial State
```ts
{
data: null,
status: "idle",
error: null
}
```
## 🔁 Thunk: `fetchGisStationsStatic`
Lädt Daten über dynamisch erzeugte URL (`idMap` aus `window.location.search`).
## 🧪 Logging
```ts
console.log("📡 API Request URL in redux slice:", url);
```

View File

@@ -1,18 +1,25 @@
# 📶 gisStationsStatusDistrictSlice <!-- /docs/redux/slices/webservice/gisStationsStatusDistrictSlice.md -->
Verwaltet Statusinformationen für GIS-Bezirksstationen (z.B. online/offline, Fehlerstatus). # 🧩 gisStationsStatusDistrictSlice.js
## 🔧 Pfad Verwaltet den Status aller Stationen im aktuellen Bezirk aus Webservice-Daten.
`/redux/slices/webService/gisStationsStatusDistrictSlice.js`
## 📦 Initial State ## Zustand
```ts ```js
{ {
data: [], data: [],
status: "idle", status: "idle" | "loading" | "succeeded" | "failed",
error: null error: string | null
} }
``` ```
## 🔁 Thunk: `fetchGisStationsStatusDistrictFromWebService` ## Thunk
- `fetchGisStationsStatusDistrictThunk()`
## Selector
```js
selectGisStationsStatusDistrict = (state) => state.gisStationsStatusDistrict.data
```

View File

@@ -1,25 +1,25 @@
# 🧭 gisSystemStaticSlice <!-- /docs/redux/slices/webservice/gisSystemStaticSlice.md -->
Verwaltet statische GIS-Systemdaten (`Systems[]`), die vom Server zurückgegeben werden. # 🧩 gisSystemStaticSlice.js
## 🔧 Pfad Verwaltet statische Gerätedaten aller Systeme, die vom Webservice zurückgegeben werden.
`/redux/slices/webService/gisSystemStaticSlice.js`
## 📦 Initial State ## Zustand
```ts ```js
{ {
data: [], // enthält Systems[] data: [],
status: "idle", // Ladezustand status: "idle" | "loading" | "succeeded" | "failed",
error: null error: string | null
} }
``` ```
## 🔁 Thunk: `fetchGisSystemStaticFromWebService` ## Thunk
Ruft `fetchGisSystemStatic()` auf und speichert nur das Feld `Systems` im Redux-State. - `fetchGisSystemStaticThunk()`
## 🧩 Aktionen ## Selector
- `setGisSystemStatic(data)` → manuelles Setzen von `Systems[]` ```js
- `fulfilled` → speichert Systems[] selectGisSystemStatic = (state) => state.gisSystemStatic.data
```

View File

@@ -0,0 +1,26 @@
<!-- /docs/redux/slices/webservice/userRightsSlice.md -->
# 🧩 userRightsSlice.js
Verwaltet die Benutzerrechte, die vom Webservice für den angemeldeten Nutzer bereitgestellt werden.
## Zustand
```js
{
rights: [],
status: "idle" | "loading" | "succeeded" | "failed",
error: string | null
}
```
## Thunk
- `fetchUserRightsThunk()`
## Selector
```js
selectGisUserRightsFromWebservice = (state) => state.gisUserRightsFromWebservice.rights
selectGisUserRightsStatus = (state) => state.gisUserRightsFromWebservice.status
```

View File

@@ -1,16 +1,16 @@
# 🔍 zoomTriggerSlice <!-- /docs/redux/slices/ui/zoomTriggerSlice.md -->
Löst ein Neuzeichnen oder eine Zoom-Interaktion aus. # 🔍 zoomTriggerSlice.js
## 🔧 Zustand Ein Redux-Trigger, der die Karte zur Neuberechnung des Zoom-Zustands veranlasst.
```ts ## Zustand
{
trigger: 0 ```js
} { trigger: number }
``` ```
## 🎯 Aktionen ## Aktionen
- `incrementZoomTrigger()` erhöht Trigger-Zähler (z.B. zur Synchronisation) - `incrementZoomTrigger()`: Erhöht den Trigger
- `resetZoomTrigger()` setzt Trigger zurück - `resetZoomTrigger()`: Setzt auf 0 zurück

View File

@@ -0,0 +1,25 @@
<!-- /docs/redux/thunks/database/area/updateAreaThunk.md -->
# ✏️ updateAreaThunk.js
Async-Thunk zum Aktualisieren der Koordinaten eines Bereichs (Area).
## Verwendung
```js
dispatch(updateAreaThunk({
idLocation: 5,
idMap: 2,
x: 53.215,
y: 8.45
}));
```
## Quelle
- Ruft `updateAreaService(payload)` auf
## Verhalten
- Gibt `await`-Ergebnis direkt zurück
- Fehlerbehandlung wird vom aufrufenden Slice übernommen

View File

@@ -0,0 +1,15 @@
<!-- /docs/redux/thunks/database/fetchLocationDevicesThunk.md -->
# 🚚 fetchLocationDevicesThunk.js
Async-Thunk zum Laden aller Geräte aus der Tabelle `location_device`.
## Verwendung
```js
dispatch(fetchLocationDevicesThunk());
```
## Quelle
- Ruft `fetchLocationDevicesService()` auf

View File

@@ -0,0 +1,15 @@
<!-- /docs/redux/thunks/database/fetchPriorityConfigThunk.md -->
# 🎯 fetchPriorityConfigThunk.js
Async-Thunk zum Abrufen der Prioritätskonfiguration für Marker.
## Verwendung
```js
dispatch(fetchPriorityConfigThunk());
```
## Quelle
- Ruft `fetchPriorityConfigService()` auf

View File

@@ -0,0 +1,16 @@
<!-- /docs/redux/thunks/database/getDeviceIdByNameThunk.md -->
# 🆔 getDeviceIdByNameThunk.js
Async-Thunk zur Ermittlung der ID eines Geräts anhand des Gerätenamens.
## Verwendung
```js
dispatch(getDeviceIdByNameThunk("Kue705"));
```
## Verhalten
- Ruft `getDeviceIdByNameService(deviceName)` auf
- Fehler werden mit `rejectWithValue(error.message)` behandelt

View File

@@ -0,0 +1,37 @@
<!-- /docs/redux/thunks/database/locationDevice/fetchLocationDevicesThunk.md -->
# 🚚 fetchLocationDevicesThunk.js
Redux-AsyncThunk zum Abrufen aller Einträge aus der Tabelle `location_device`.
---
## 🔄 Zweck
Dieser Thunk ruft die Servicefunktion `fetchLocationDevicesService()` auf und liefert deren Ergebnis an den Redux-Slice `locationDevicesSlice`.
---
## 🧠 Intern
```ts
createAsyncThunk("locationDevices/fetchAll", async () => {
return await fetchLocationDevicesService();
});
```
---
## ✅ Verwendung
```ts
dispatch(fetchLocationDevicesThunk());
```
---
## 📁 Pfad
```
/redux/thunks/database/locationDevice/fetchLocationDevicesThunk.js
```

View File

@@ -0,0 +1,21 @@
<!-- /docs/redux/thunks/database/pois/addPoiThunk.md -->
# addPoiThunk.js
Async-Thunk zur Erstellung eines neuen POIs.
## Verwendung
```js
dispatch(addPoiThunk({
name: "Messstelle 1",
poiTypeId: 2,
latitude: 53.21,
longitude: 8.43,
idLD: 12
}));
```
## Intern
Ruft `addPoiService(formData)` auf und gibt das Ergebnis zurück.

View File

@@ -0,0 +1,16 @@
<!-- /docs/redux/thunks/database/pois/deletePoiThunk.md -->
# ❌ deletePoiThunk.js
Async-Thunk zum Löschen eines POIs anhand seiner ID.
## Verwendung
```js
dispatch(deletePoiThunk(15));
```
## Verhalten
- Ruft `deletePoiService(id)` auf
- Gibt die ID im Erfolgsfall zurück

View File

@@ -0,0 +1,15 @@
<!-- /docs/redux/thunks/database/pois/fetchPoiIconsDataThunk.md -->
# 🖼️ fetchPoiIconsDataThunk.js
Lädt alle verfügbaren POI-Icons aus dem Backend.
## Verwendung
```js
dispatch(fetchPoiIconsDataThunk());
```
## Intern
- Ruft `fetchPoiIconsDataService()` auf

View File

@@ -0,0 +1,15 @@
<!-- /docs/redux/thunks/database/pois/fetchPoiMarkersThunk.md -->
# 📍 fetchPoiMarkersThunk.js
Lädt alle POI-Marker (Positionsdaten) aus dem Backend.
## Verwendung
```js
dispatch(fetchPoiMarkersThunk());
```
## Intern
- Ruft `fetchPoiMarkersService()` auf

View File

@@ -0,0 +1,15 @@
<!-- /docs/redux/thunks/database/pois/fetchPoiTypThunk.md -->
# 🗂️ fetchPoiTypThunk.js
Lädt alle verfügbaren POI-Typen aus der Datenbank.
## Verwendung
```js
dispatch(fetchPoiTypThunk());
```
## Intern
- Ruft `fetchPoiTypService()` auf

View File

@@ -0,0 +1,20 @@
<!-- /docs/redux/thunks/database/pois/updatePoiThunk.md -->
# 📝 updatePoiThunk.js
Aktualisiert einen bestehenden POI mit neuen Daten.
## Verwendung
```js
dispatch(updatePoiThunk({
idPoi: 15,
description: "Neue Beschreibung",
idPoiTyp: 3,
idLD: 8
}));
```
## Intern
- Ruft `updatePoiService(poi)` auf

View File

@@ -0,0 +1,16 @@
<!-- /docs/redux/thunks/database/polylines/fetchGisLinesThunk.md -->
# 📡 fetchGisLinesThunk.js
Async-Thunk zum Laden aller Linien aus der Datenbanktabelle `gis_lines`.
## Verwendung
```js
dispatch(fetchGisLinesThunk());
```
## Intern
- Ruft `fetchGisLinesService()` auf
- Liefert alle Linien mit Koordinaten zur Anzeige auf der Karte

View File

@@ -0,0 +1,20 @@
<!-- /docs/redux/thunks/database/polylines/updatePolylineCoordinatesThunk.md -->
# 🧭 updatePolylineCoordinatesThunk.js
Async-Thunk zur Aktualisierung von Linienkoordinaten in der Datenbank.
## Verwendung
```js
dispatch(updatePolylineCoordinatesThunk({
idLD: 7,
idModul: 2,
newCoordinates: [[53.2, 8.4], [53.21, 8.45]]
}));
```
## Intern
- Ruft `updatePolylineCoordinatesService(requestData)` auf
- Wandelt Koordinaten in MySQL LINESTRING um

View File

@@ -0,0 +1,16 @@
<!-- /docs/redux/thunks/webservice/fetchGisLinesStatusThunk.md -->
# 📡 fetchGisLinesStatusThunk.js
Async-Thunk zum Laden des Status aller Linien aus dem Webservice.
## Verwendung
```js
dispatch(fetchGisLinesStatusThunk());
```
## Intern
- Ruft `fetchGisLinesStatusService()` auf
- Fehlerbehandlung per `rejectWithValue(error.message)`

View File

@@ -0,0 +1,15 @@
<!-- /docs/redux/thunks/webservice/fetchGisStationsMeasurementsThunk.md -->
# 📈 fetchGisStationsMeasurementsThunk.js
Lädt Messwerte aller Stationen (z.B. Schleifenwiderstand, Isolation).
## Verwendung
```js
dispatch(fetchGisStationsMeasurementsThunk());
```
## Intern
- Ruft `fetchGisStationsMeasurementsService()` auf

View File

@@ -0,0 +1,15 @@
<!-- /docs/redux/thunks/webservice/fetchGisStationsStaticDistrictThunk.md -->
# 🧭 fetchGisStationsStaticDistrictThunk.js
Lädt statische Standortdaten (z.B. Koordinaten) für den aktuellen Bezirk.
## Verwendung
```js
dispatch(fetchGisStationsStaticDistrictThunk());
```
## Intern
- Ruft `fetchGisStationsStaticDistrictService()` auf

View File

@@ -0,0 +1,15 @@
<!-- /docs/redux/thunks/webservice/fetchGisStationsStatusDistrictThunk.md -->
# 🚦 fetchGisStationsStatusDistrictThunk.js
Lädt Statusdaten (aktiv/inaktiv) aller Stationen im Bezirk.
## Verwendung
```js
dispatch(fetchGisStationsStatusDistrictThunk());
```
## Intern
- Ruft `fetchGisStationsStatusDistrictService()` auf

View File

@@ -0,0 +1,15 @@
<!-- /docs/redux/thunks/webservice/fetchGisSystemStaticThunk.md -->
# 🧱 fetchGisSystemStaticThunk.js
Lädt Geräte-/Systemdaten für alle Module aus dem Webservice.
## Verwendung
```js
dispatch(fetchGisSystemStaticThunk());
```
## Intern
- Ruft `fetchGisSystemStaticService()` auf

View File

@@ -0,0 +1,16 @@
<!-- /docs/redux/thunks/webservice/fetchUserRightsThunk.md -->
# 🔐 fetchUserRightsThunk.js
Lädt Rechte des angemeldeten Nutzers vom Webservice.
## Verwendung
```js
dispatch(fetchUserRightsThunk());
```
## Intern
- Ruft `fetchUserRightsService()` auf
- Fehlerbehandlung per `rejectWithValue(error.message)`

View File

@@ -0,0 +1,37 @@
<!-- /docs/services/database/area/updateAreaService.md -->
# 🗺️ updateAreaService.js
Service zur Aktualisierung der Koordinaten eines Bereichs (Area) in der Datenbank.
## Verwendung
```js
await updateAreaService({
idLocation: 4,
idMap: 1,
newCoords: { x: 53.219, y: 8.435 }
});
```
## API-Route
```
PUT /api/talas_v5_DB/area/updateArea
```
## Payload
```json
{
"idLocation": 4,
"idMap": 1,
"x": 53.219,
"y": 8.435
}
```
## Rückgabe
- Erfolgreich: JSON mit Erfolgsmeldung
- Fehler: `throw new Error(...)` bei nicht OK

View File

@@ -1,5 +1,22 @@
# fetchDeviceNameByIdService <!-- /docs/services/database/fetchDeviceNameByIdService.md -->
Liest Gerätenamen über die eigene Next.js-API. # 🆔 fetchDeviceNameByIdService.js
**Route:** `/api/talas_v5_DB/locationDevice/locationDeviceNameById?idLD={idLD}` Lädt den Gerätenamen (`name`) anhand der ID (`idLD`) von der API.
## Verwendung
```js
const name = await fetchDeviceNameById(idLD);
```
## API-Route
```
/api/talas_v5_DB/locationDevice/locationDeviceNameById?idLD=...
```
## Rückgabe
- Erfolgreich: Gerätebezeichnung als `string`
- Fehler: `"Unbekannt"`

View File

@@ -1,65 +0,0 @@
# fetchGisLinesService
Lädt Linien-Geometriedaten über die interne Datenbank-API.
---
## 📁 URL-Aufbau
```
/api/talas_v5_DB/gisLines/readGisLines
```
- Die Daten werden nicht über einen WebService geladen, sondern über einen internen Datenbank-Endpunkt im Backend (API Route).
- Es handelt sich um Polyline-Daten (z.B. Kabelverbindungen).
---
## ✅ Rückgabe
```json
[
{
"idLD": 12345,
"idModul": 6,
"points": [
{ "x": 8.123, "y": 53.456 },
{ "x": 8.124, "y": 53.457 }
]
},
...
]
```
- `points[]` enthält die Koordinaten der Liniensegmente
- Die Struktur ist geeignet für Leaflet-Polyline-Rendering
---
## ❗ Unterschied zu `gisLinesStatusSlice` (WebService)
| Eigenschaft | `gisLines` (Datenbank) | `gisLinesStatus` (WebService) |
| ----------- | -------------------------------- | ----------------------------------- |
| Quelle | `/api/talas_v5_DB/gisLines` | `WebServiceMap.asmx/GisLinesStatus` |
| Daten | Liniengeometrien (`points`) | Status, Meldungen, Farben, Werte |
| Typ | Polyline-Rendering | Statusanzeige für Linien |
| Nutzung | Anzeige der Linien auf der Karte | Visualisierung von Fehlern/Farben |
---
## 🧠 Verwendung im Frontend
- Daten werden über `fetchGisLinesThunk` geladen.
- Sie landen im Redux Slice `gisLinesSlice`.
- Zugriff über: `selectGisLines(state)`
---
## 📁 Zugehörige Dateien
| Datei | Zweck |
| ------------------------- | --------------------------- |
| `fetchGisLinesService.js` | Datenbank-Aufruf für Linien |
| `fetchGisLinesThunk.js` | Redux Thunk |
| `gisLinesSlice.js` | Redux Slice |
| `store.js` | Integration des Slices |

View File

@@ -0,0 +1,21 @@
<!-- /docs/services/database/fetchLocationDevicesService.md -->
# 🧰 fetchLocationDevicesService.js
Service zum Abrufen aller Einträge aus der `location_device` Tabelle.
## Verwendung
```js
const result = await fetchLocationDevicesService();
```
## API-Route
```
/api/talas_v5_DB/locationDevice/locationDevices
```
## Rückgabe
- JSON-Array aller Geräte

View File

@@ -1,5 +0,0 @@
# fetchPoiDataService
Lädt POI-Daten über API `/api/talas_v5_DB/pois/getPoiById?idPoi={idPoi}`
- Rückgabe: Objekt mit POI-Infos (id, name, description, idLD)

View File

@@ -0,0 +1,17 @@
<!-- /docs/services/database/fetchPriorityConfigService.md -->
# 🎯 fetchPriorityConfigService.js
Service zum Abrufen der Prioritätskonfiguration für POIs oder Marker.
## Verwendung
```js
const result = await fetchPriorityConfigService();
```
## API-Route
```
/api/talas_v5_DB/priorityConfig
```

View File

@@ -0,0 +1,22 @@
<!-- /docs/services/database/getDeviceIdByNameService.md -->
# 🆔 getDeviceIdByNameService.js
Service zur Ermittlung der Geräte-ID (`idLD`) anhand eines Gerätenamens.
## Verwendung
```js
const id = await getDeviceIdByNameService("CPL-V4");
```
## API-Route
```
/api/talas_v5_DB/locationDevice/getDeviceId?deviceName=...
```
## Rückgabe
- Erfolgreich: `idLD` (number)
- Fehler: Exception

View File

@@ -0,0 +1,21 @@
<!-- /docs/services/database/fetchLocationDevicesService.md -->
# 🧰 fetchLocationDevicesService.js
Service zum Abrufen aller Einträge aus der `location_device` Tabelle.
## Verwendung
```js
const result = await fetchLocationDevicesService();
```
## API-Route
```
/api/talas_v5_DB/locationDevice/locationDevices
```
## Rückgabe
- JSON-Array aller Geräte

View File

@@ -0,0 +1,22 @@
<!-- /docs/services/database/pois/addPoiService.md -->
# addPoiService.js
Service zum Hinzufügen eines neuen POIs in der Datenbank.
## Verwendung
```js
await addPoiService({
name: "Beispiel",
poiTypeId: 1,
idLD: 12,
latitude: 53.21,
longitude: 8.43
});
```
## API
- Endpoint: `POST /api/talas_v5_DB/pois/addPoi`
- Headers: `"Content-Type": "application/json"`

View File

@@ -0,0 +1,15 @@
<!-- /docs/services/database/pois/deletePoiService.md -->
# ❌ deletePoiService.js
Service zum Löschen eines POIs aus der Datenbank per ID.
## Verwendung
```js
await deletePoiService(id);
```
## API
- Endpoint: `DELETE /api/talas_v5_DB/pois/deletePoi?id=ID`

View File

@@ -0,0 +1,15 @@
<!-- /docs/services/database/pois/fetchPoiDataByIdService.md -->
# 🔍 fetchPoiDataByIdService.js
Service zum Abrufen der POI-Daten anhand einer POI-ID.
## Verwendung
```js
const poi = await fetchPoiDataService(idPoi);
```
## API
- Endpoint: `GET /api/talas_v5_DB/pois/getPoiById?idPoi=ID`

View File

@@ -0,0 +1,15 @@
<!-- /docs/services/database/pois/fetchPoiDataService.md -->
# 📄 fetchPoiDataService.js
Lädt POI-Icons (alias `poiData`) aus dem Serververzeichnis.
## Verwendung
```js
const data = await fetchPoiDataService();
```
## API
- Endpoint: `GET /api/talas_v5_DB/pois/poi-icons`

View File

@@ -0,0 +1,15 @@
<!-- /docs/services/database/pois/fetchPoiIconsDataService.md -->
# 🖼️ fetchPoiIconsDataService.js
Service zum Abrufen der POI-Icon-Metadaten.
## Verwendung
```js
const icons = await fetchPoiIconsDataService();
```
## API
- Endpoint: `GET /api/talas_v5_DB/pois/poi-icons`

View File

@@ -0,0 +1,15 @@
<!-- /docs/services/database/pois/fetchPoiMarkersService.md -->
# 📍 fetchPoiMarkersService.js
Service zum Abrufen aller gespeicherten POI-Marker (Positionen).
## Verwendung
```js
const pois = await fetchPoiMarkersService();
```
## API
- Endpoint: `GET /api/talas_v5_DB/pois/readAllPOIs`

View File

@@ -0,0 +1,15 @@
<!-- /docs/services/database/pois/fetchPoiTypService.md -->
# 🗂️ fetchPoiTypService.js
Service zum Abrufen aller verfügbaren POI-Typen aus der Datenbank.
## Verwendung
```js
const types = await fetchPoiTypService();
```
## API
- Endpoint: `GET /api/talas_v5_DB/poiTyp/readPoiTyp`

View File

@@ -0,0 +1,21 @@
<!-- /docs/services/database/pois/updatePoiService.md -->
# 📝 updatePoiService.js
Service zur Aktualisierung eines POIs mit neuen Informationen.
## Verwendung
```js
await updatePoiService({
idPoi: 5,
description: "Neuer Text",
idLD: 3,
idPoiTyp: 1
});
```
## API
- Endpoint: `POST /api/talas_v5_DB/pois/updatePoi`
- Body: JSON mit den zu aktualisierenden Feldern

View File

@@ -0,0 +1,19 @@
<!-- /docs/services/database/polylines/fetchGisLinesService.md -->
# 📡 fetchGisLinesService.js
Service zum Abrufen aller Linien aus der `gisLines`-Tabelle der Datenbank.
## Verwendung
```js
const lines = await fetchGisLinesService();
```
## API
- Endpoint: `GET /api/talas_v5_DB/gisLines/readGisLines`
## Rückgabe
- JSON-Array mit allen Linien und ihren Koordinaten

View File

@@ -0,0 +1,24 @@
<!-- /docs/services/database/polylines/updatePolylineCoordinatesService.md -->
# 🧭 updatePolylineCoordinatesService.js
Service zum Aktualisieren der Koordinaten einer Linie in der Datenbank.
## Verwendung
```js
await updatePolylineCoordinatesService({
idLD: 5,
idModul: 1,
newCoordinates: [[53.2, 8.4], [53.21, 8.45]]
});
```
## API
- Endpoint: `POST /api/talas_v5_DB/gisLines/updateLineCoordinates`
- Headers: `{ "Content-Type": "application/json" }`
## Fehlerbehandlung
- Bei Fehler: `throw new Error(...)` mit Backend-Meldung

View File

@@ -1,6 +1,21 @@
# updateLocationInDatabaseService <!-- /docs/services/database/updateLocationInDatabaseService.md -->
Aktualisiert die Position eines POIs in der Datenbank. # 📍 updateLocationInDatabaseService.js
- Methode: `POST` Service zur Aktualisierung der Geokoordinaten eines POIs in der Datenbank.
- Route: `/api/talas_v5_DB/pois/updateLocation`
## Verwendung
```js
await updateLocationInDatabaseService(id, lat, lng);
```
## API-Route
```
/api/talas_v5_DB/pois/updateLocation
```
## Methode
- `POST` mit JSON-Body: `{ id, latitude, longitude }`

View File

@@ -1,6 +1,46 @@
# fetchWithTimeout <!-- /docs/services/utils/fetchWithTimeout.md -->
Hilfsfunktion für Fetch mit Abbruch bei Timeout. # ⏱️ fetchWithTimeout.js
- Parameter: URL, Optionen, Timeout (default: 5000ms) Hilfsfunktion zur Durchführung eines `fetch`-Requests mit einem Timeout.
- Nutzt `AbortController`
---
## 💡 Zweck
Manche Serveranfragen können hängen bleiben. Diese Funktion sorgt dafür, dass eine Anfrage nach einer bestimmten Zeit abgebrochen wird, um UI-Blockierungen oder lange Wartezeiten zu vermeiden.
---
## 🧩 Funktion
```js
fetchWithTimeout(url, options, timeout);
```
- `url`: Ziel-URL
- `options`: Fetch-Optionen (Headers, Methode etc.)
- `timeout`: Zeit in Millisekunden (Standard: 5000ms)
---
## Beispiel
```js
const response = await fetchWithTimeout("/api/data", {}, 3000);
```
---
## Verhalten
- Verwendet `AbortController` zur Abbruchsteuerung
- Gibt den `fetch`-Response oder einen Fehler zurück
---
## Pfad
```
/services/utils/fetchWithTimeout.js
```

View File

@@ -1,3 +1,5 @@
<!-- /docs/services/webservice/fetchGisLinesStatusService.md -->
# fetchGisLinesStatusService # fetchGisLinesStatusService
Lädt Linienstatus-Daten über den TALAS WebService. Lädt Linienstatus-Daten über den TALAS WebService.
@@ -10,8 +12,8 @@ Lädt Linienstatus-Daten über den TALAS WebService.
/ClientData/WebServiceMap.asmx/GisLinesStatus?idMap={idMap} /ClientData/WebServiceMap.asmx/GisLinesStatus?idMap={idMap}
``` ```
* Die `idMap` wird automatisch aus der URL (`?m=...`) gelesen. - Die `idMap` wird automatisch aus der URL (`?m=...`) gelesen.
* Diese WebService-Antwort enthält ein Objekt mit dem Feld `Statis[]`. - Diese WebService-Antwort enthält ein Objekt mit dem Feld `Statis[]`.
--- ---
@@ -24,8 +26,8 @@ Lädt Linienstatus-Daten über den TALAS WebService.
} }
``` ```
* `Statis[]` enthält Statusinformationen zu Linien (Farben, Meldungen, Werte). - `Statis[]` enthält Statusinformationen zu Linien (Farben, Meldungen, Werte).
* Diese Daten sind **nicht identisch** mit `gisLines.data` aus der Datenbank. - Diese Daten sind **nicht identisch** mit `gisLines.data` aus der Datenbank.
--- ---
@@ -42,9 +44,9 @@ Lädt Linienstatus-Daten über den TALAS WebService.
## 🧠 Verwendung im Frontend ## 🧠 Verwendung im Frontend
* Die Daten werden über `fetchGisLinesStatusThunk` geladen. - Die Daten werden über `fetchGisLinesStatusThunk` geladen.
* Sie landen im Redux Slice `gisLinesStatusSlice`. - Sie landen im Redux Slice `gisLinesStatusSlice`.
* Zugriff über: `selectGisLinesStatus(state)` → enthält `.data`, `.status`, `.error` - Zugriff über: `selectGisLinesStatus(state)` → enthält `.data`, `.status`, `.error`
--- ---

View File

@@ -1,8 +1,16 @@
# fetchGisStationsMeasurementsService <!-- /docs/services/webservice/fetchGisStationsMeasurementsService.md -->
Lädt GIS-Messwerte über den TALAS WebService. # 📈 fetchGisStationsMeasurementsService.js
**URL-Aufbau:** `/ClientData/WebServiceMap.asmx/GisStationsMeasurements?idMap={idMap}&idUser={idUser}` Lädt Schleifen- und Isolationswerte für Stationen.
- Holt Daten direkt basierend auf der URL (?m= & ?u=). ## Verwendung
- Rückgabewert: `Statis[]`
```js
const messwerte = await fetchGisStationsMeasurementsService();
```
## API-Aufruf
- Endpoint: `/ClientData/WebServiceMap.asmx/GisStationsMeasurements?idMap=...&idUser=...`
- Rückgabe: `Statis[]`

View File

@@ -1,8 +1,16 @@
# fetchGisStationsStaticDistrictService <!-- /docs/services/webservice/fetchGisStationsStaticDistrictService.md -->
Lädt GIS-Stationen (statisch) für Bezirke. # 🧭 fetchGisStationsStaticDistrictService.js
**Rückgabe:** `Points[]` Lädt Koordinateninformationen (`Points[]`) aller Stationen im aktuellen Bezirk.
- Holt `idMap` und `idUser` aus der URL. ## Verwendung
- WebService: `GisStationsStaticDistrict`
```js
const points = await fetchGisStationsStaticDistrictService();
```
## API-Aufruf
- Endpoint: `/ClientData/WebServiceMap.asmx/GisStationsStaticDistrict?idMap=...&idUser=...`
- Rückgabe: `Points[]`

View File

@@ -1,7 +1,16 @@
# fetchGisStationsStatusDistrictService <!-- /docs/services/webservice/fetchGisStationsStatusDistrictService.md -->
Lädt den Status der GIS-Bezirksstationen. # 🚦 fetchGisStationsStatusDistrictService.js
**Rückgabe:** `Statis[]` Service zum Abrufen des Status aller Stationen im aktuellen Bezirk.
- Nutzt die WebService-URL `GisStationsStatusDistrict`. ## Verwendung
```js
const result = await fetchGisStationsStatusDistrictService();
```
## API-Aufruf
- Endpoint: `/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict?idMap=...&idUser=...`
- Rückgabe: `Statis[]`

View File

@@ -1,6 +1,16 @@
# fetchGisSystemStaticService <!-- /docs/services/webservice/fetchGisSystemStaticService.md -->
Lädt Systemübersicht vom GIS WebService. # 🧱 fetchGisSystemStaticService.js
- Rückgabe: `Systems[]` Service zur Abfrage von Systemdaten aller Module aus dem Webservice.
- Liest `?m` und `?u` aus der URL.
## Verwendung
```js
const systems = await fetchGisSystemStaticService();
```
## API-Aufruf
- Endpoint: `/ClientData/WebServiceMap.asmx/GisSystemStatic?idMap=...&idUser=...`
- Rückgabe: `Systems[]`

View File

@@ -1,6 +1,16 @@
# fetchUserRightsService <!-- /docs/services/webservice/fetchUserRightsService.md -->
Lädt Benutzerrechte über WebService. # 🔐 fetchUserRightsService.js
- Falls `USE_MOCK_API` gesetzt ist → werden Fake-Daten zurückgegeben. Lädt die Benutzerrechte über den TALAS WebService.
- Rückgabe: Liste von `IdRight`
## Verwendung
```js
const rights = await fetchUserRightsService();
```
## API-Aufruf
- Endpoint: `/ClientData/WebServiceMap.asmx/GisSystemStatic?idMap=...&idUser=...`
- Rückgabe: `Rights[]` (Fallback: `[]`)

View File

@@ -0,0 +1,28 @@
<!-- /docs/utils/addContextMenuToMarker.md -->
# 🧭 addContextMenuToMarker.js
Fügt einem Leaflet-Marker ein individuelles Kontextmenü hinzu.
## Zweck
- Erlaubt dem Nutzer über Rechtsklick oder Interaktion den Zugriff auf Funktionen wie:
- „Station öffnen (Tab)“
- „Details anzeigen“
- „Bearbeiten starten“
## Verwendung
```js
addContextMenuToMarker(marker, idLD, name);
```
## Parameter
- `marker`: Leaflet-Marker
- `idLD`: Geräte-ID
- `name`: Anzeigename
## Kontext
- Wird z.B. in `createAndSetDevices.js` verwendet

View File

@@ -0,0 +1,14 @@
<!-- /docs/utils/contextMenuUtils.md -->
# 📋 contextMenuUtils.js
Hilfsfunktionen zur Verwaltung des Kontextmenüs auf Kartenmarkern und Polylinien.
## Exportierte Funktionen
- `getPoiContextMenuOptions(marker)`
- `getPolylineContextMenuOptions(line)`
## Zweck
- Menüeinträge je nach Zustand und Marker-Art dynamisch generieren

View File

@@ -0,0 +1,14 @@
<!-- /docs/utils/geometryUtils.md -->
# 📐 geometryUtils.js
Mathematische Funktionen zur Berechnung geometrischer Werte auf der Karte.
## Funktionen
- `calculateDistance(latlng1, latlng2)`
- `getMidpoint(coords)`
## Zweck
- Interne Hilfsfunktionen für Strecken, Tooltip-Positionen etc.

View File

@@ -0,0 +1,15 @@
<!-- /docs/initializeMap.md -->
# 🗺️ initializeMap.js
Initialisiert die Leaflet-Karte mit Basislayern, Gruppen und globalen Events.
## Funktionen
- `initializeMap(mapElementId)`
## Verhalten
- Erstellt LayerGroups (Devices, POIs, Linien)
- Bindet Kontextmenü
- Stellt Default-Zoom und Position ein

10
docs/utils/mapUtils.md Normal file
View File

@@ -0,0 +1,10 @@
<!-- /docs/utils/mapUtils.md -->
# 🧰 mapUtils.js
Allgemeine Hilfsfunktionen für Leaflet (z.B. Zoom, Marker-Checks, Layer-Findung).
## Funktionen
- `zoomToBounds(layerGroup)`
- `findLayerById(map, id)`

14
docs/utils/markerUtils.md Normal file
View File

@@ -0,0 +1,14 @@
<!-- /docs/utils/markerUtils.md -->
# 📍 markerUtils.js
Hilfsfunktionen zur Erstellung und Konfiguration von Leaflet-Markern.
## Exportierte Funktionen
- `createIconByType(type)`
- `createMarker(position, icon)`
## Kontext
- Wird in `setupDevices.js` und `setupPOIs.js` verwendet

16
docs/utils/mysqlPool.md Normal file
View File

@@ -0,0 +1,16 @@
<!-- /docs/utils/mysqlPool.md -->
# 💾 mysqlPool.js
MySQL-Verbindungspool für effiziente Datenbankabfragen (z.B. mit `promise-mysql`).
## Verwendung
```js
const connection = await pool.getConnection();
```
## Zweck
- Reuse von Verbindungen
- Fehlervermeidung bei vielen gleichzeitigen Abfragen

View File

@@ -0,0 +1,15 @@
<!-- /docs/utils/openInNewTab.md -->
# 🪟 openInNewTab.js
Öffnet eine URL in einem neuen Tab und schützt vor Referrer-Leaks.
## Verwendung
```js
openInNewTab(url);
```
## Intern
- nutzt `window.open` mit `noopener,noreferrer`

View File

@@ -0,0 +1,15 @@
<!-- /docs/utils/openInSameWindow.md -->
# 🚪 openInSameWindow.js
Öffnet eine URL im aktuellen Tab.
## Verwendung
```js
openInSameWindow("/target");
```
## Verhalten
- `window.location.href = url`

14
docs/utils/poiUtils.md Normal file
View File

@@ -0,0 +1,14 @@
<!-- /docs/utils/poiUtils.md -->
# 🧭 poiUtils.js
Hilfsfunktionen zur Handhabung von POIs (z.B. Icons, Typzuordnung, Interaktion).
## Funktionen
- `getIconForPoiType(type)`
- `groupPOIsByType(list)`
## Verwendung
- In `setupPOIs.js` und Thunks für POI-Handling

View File

@@ -0,0 +1,10 @@
<!-- /docs/utils/polylines/contextMenu.md -->
# 📋 contextMenu.js
Funktionen zum Steuern des Polyline-Kontextmenüs (Schließen, Zurücksetzen, etc.).
## exportierte Funktionen
- `closePolylineSelectionAndContextMenu(map)`: Setzt Polyline-Auswahl zurück und schließt das Kontextmenü
- `monitorContextMenu(map)`: Überwacht via `localStorage`, ob das Menü automatisch geschlossen werden soll

View File

@@ -0,0 +1,10 @@
<!-- /docs/utils/polylines/eventHandlers.md -->
# 🖱️ eventHandlers.js
Bindet Maus-Events an Polylinien (z.B. Hover-Effekte).
## exportierte Funktionen
- `enablePolylineEvents(polylines, lineColors)`
- `disablePolylineEvents(polylines)`

View File

@@ -0,0 +1,10 @@
<!-- /docs/utils/polylines/monitorContextMenu.md -->
# 🔄 monitorContextMenu.js
Erweiterte Überwachung des Kontextmenüs über `localStorage`.
## Funktion
- Importiert `closePolylineSelectionAndContextMenu`
- Ruft regelmäßig `setTimeout` auf, um `contextMenuExpired` zu prüfen

Some files were not shown because too many files have changed in this diff Show More