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:
70
docs/redux/api/fromDB/fetchLocationDevices.md
Normal file
70
docs/redux/api/fromDB/fetchLocationDevices.md
Normal file
@@ -0,0 +1,70 @@
|
||||
# 🌐 fetchLocationDevices
|
||||
|
||||
Diese Funktion lädt alle Geräte für einen bestimmten Standort aus der Datenbank via API-Endpunkt.
|
||||
|
||||
---
|
||||
|
||||
## 📍 Pfad
|
||||
|
||||
```
|
||||
/redux/api/fromDB/fetchLocationDevices.js
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📥 Funktion
|
||||
|
||||
```ts
|
||||
export const fetchLocationDevices = async () => {
|
||||
const response = await fetch("/api/talas_v5_DB/locationDevice/locationDevices");
|
||||
if (!response.ok) {
|
||||
throw new Error("Geräteliste konnte nicht geladen werden");
|
||||
}
|
||||
return await response.json();
|
||||
};
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📡 API-Endpunkt
|
||||
|
||||
```http
|
||||
GET /api/talas_v5_DB/locationDevice/locationDevices
|
||||
```
|
||||
|
||||
Dieser Endpunkt liefert eine JSON-Liste aller Geräte eines Standorts (z. B. für Map-Rendering, POI-Anzeige, Standortübersicht etc.).
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Fehlerbehandlung
|
||||
|
||||
Falls der Request fehlschlägt (z. B. Statuscode ≠ 2xx), wird folgender Fehler ausgelöst:
|
||||
|
||||
```
|
||||
"Geräteliste konnte nicht geladen werden"
|
||||
```
|
||||
|
||||
Dies kann im Redux-Slice über den `.rejected`-Case ausgewertet werden.
|
||||
|
||||
---
|
||||
|
||||
## 🧩 Verwendung
|
||||
|
||||
```ts
|
||||
import { fetchLocationDevices } from "@/redux/api/fromDB/fetchLocationDevices";
|
||||
|
||||
const result = await fetchLocationDevices();
|
||||
console.log(result); // Erwartet: Array von Geräteobjekten
|
||||
```
|
||||
|
||||
Diese Funktion wird typischerweise im Redux-Thunk `fetchLocationDevicesFromDB` verwendet:
|
||||
```ts
|
||||
const data = await fetchLocationDevices();
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔄 Zusammenhang
|
||||
|
||||
- Eingebunden in: [`locationDevicesFromDBSlice.js`](./locationDevicesFromDBSlice.md)
|
||||
- Redux Thunk: `fetchLocationDevicesFromDB`
|
||||
90
docs/redux/api/fromWebService.md
Normal file
90
docs/redux/api/fromWebService.md
Normal file
@@ -0,0 +1,90 @@
|
||||
# 📡 Webservices – Redux Integration (/redux/api/fromWebService)
|
||||
|
||||
In diesem Verzeichnis befinden sich alle Webservice-Fetch-Funktionen für die Kommunikation mit TALAS.web über SOAP-Endpunkte.
|
||||
|
||||
---
|
||||
|
||||
## Übergabe der Parameter über URL (`m`, `u`)
|
||||
|
||||
TALAS.web ruft die Kartenansicht in der Regel so auf:
|
||||
|
||||
```
|
||||
http://[SERVER]:3000/?m=10&u=484
|
||||
```
|
||||
|
||||
Daraus ergeben sich folgende Zuweisungen:
|
||||
|
||||
| URL-Parameter | Bedeutung | Variable im Code |
|
||||
| ------------- | --------- | -------------------------------- |
|
||||
| `m` | `idMap` | `const idMap = params.get("m")` |
|
||||
| `u` | `idUser` | `const idUser = params.get("u")` |
|
||||
|
||||
### Beispiel:
|
||||
|
||||
```ts
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const idMap = params.get("m");
|
||||
const idUser = params.get("u");
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Änderung am 2025-05-15
|
||||
|
||||
Vorher wurden Default-Werte über `.env.local` als Fallback genutzt:
|
||||
|
||||
```ts
|
||||
const idMap = params.get("idMap") || process.env.NEXT_PUBLIC_DEFAULT_ID_MAP || "12";
|
||||
```
|
||||
|
||||
Das wurde entfernt, um folgende Ziele zu erreichen:
|
||||
|
||||
- ❌ Keine fest eingetragenen Defaults im Browser sichtbar
|
||||
- ✅ Verbindlichkeit: TALAS.web übergibt die Werte immer korrekt via URL
|
||||
- 🔐 Sicherheit: Kein versehentliches Verwenden eines falschen Users
|
||||
- 🔍 Fehler leichter erkennbar (Parameter nicht gefunden = echter Fehler)
|
||||
|
||||
---
|
||||
|
||||
## Hinweis zur Webservice-Konfiguration
|
||||
|
||||
Die Webservice-Basisadresse wird **nicht mehr über `.env.local` gesteuert**.
|
||||
|
||||
Stattdessen wird sie dynamisch im Client anhand des aktuellen Hostnamens bestimmt:
|
||||
|
||||
```js
|
||||
const baseUrl = `${window.location.origin}/talas5/ClientData/WebServiceMap.asmx`;
|
||||
```
|
||||
|
||||
➡ Dadurch ist kein Rebuild mehr nötig bei IP-Wechseln oder Serverumzügen.
|
||||
Die Build-Version kann auf jedem Server wiederverwendet werden.
|
||||
|
||||
---
|
||||
|
||||
## Optional: Validierung einbauen
|
||||
|
||||
Falls gewünscht, kann ein expliziter Fehler ausgelöst werden:
|
||||
|
||||
```ts
|
||||
if (!idMap || !idUser) {
|
||||
throw new Error("Fehlende URL-Parameter: idMap oder idUser");
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Betroffene Dateien
|
||||
|
||||
Diese Änderung betrifft alle Funktionen in:
|
||||
|
||||
```
|
||||
/redux/api/fromWebService/fetchGisStationsStatic.js
|
||||
/redux/api/fromWebService/fetchGisStationsStaticDistrict.js
|
||||
/redux/api/fromWebService/fetchGisStationsStatusDistrict.js
|
||||
/redux/api/fromWebService/fetchGisStationsMeasurements.js
|
||||
/redux/api/fromWebService/fetchGisSystemStatic.js
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Diese Konvention stellt sicher, dass Webservices unabhängig von IP und Serverkonfiguration aufgerufen werden können.
|
||||
61
docs/redux/api/fromWebService/README.md
Normal file
61
docs/redux/api/fromWebService/README.md
Normal file
@@ -0,0 +1,61 @@
|
||||
# 📁 Webservice-Dokumentation – fromWebService
|
||||
|
||||
Dieses Verzeichnis dokumentiert alle Webservice-Aufrufe,
|
||||
die über `/redux/api/fromWebService/` im Projekt ausgeführt werden.
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Hintergrund
|
||||
|
||||
Die TALAS.web-Anwendung übergibt `idMap` und `idUser` über die URL-Parameter:
|
||||
|
||||
```
|
||||
http://<server>/talas5/MessagesMap/mapTypeC.aspx?m=12&u=484
|
||||
```
|
||||
|
||||
Daraus entstehen Webservice-Aufrufe wie:
|
||||
|
||||
```
|
||||
/talas5/ClientData/WebServiceMap.asmx/GisSystemStatic?idMap=12&idUser=484
|
||||
```
|
||||
|
||||
Alle Webservices nutzen den Port 80 – auch in der Entwicklungsumgebung.
|
||||
Daher wird zentral über `.env.local` gesteuert:
|
||||
|
||||
```env
|
||||
NEXT_PUBLIC_API_PORT_MODE=dev
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📄 Enthaltene Dokumentationen
|
||||
|
||||
| Dateiname | Zweck |
|
||||
|----------------------------------------|--------------------------------------|
|
||||
| [`fetchGisSystemStatic.md`](./fetchGisSystemStatic.md) | Systemübersicht aller Geräte |
|
||||
| [`fetchGisStationsMeasurements.md`](./fetchGisStationsMeasurements.md) | Messwerte der Geräte |
|
||||
| [`fetchGisStationsStatic.md`](./fetchGisStationsStatic.md) | Statische Standortinformationen |
|
||||
| [`fetchGisStationsStaticDistrict.md`](./fetchGisStationsStaticDistrict.md) | Gerätestruktur je Bezirk |
|
||||
| [`fetchGisStationsStatusDistrict.md`](./fetchGisStationsStatusDistrict.md) | Aktueller Gerätestatus nach Bezirk |
|
||||
|
||||
---
|
||||
|
||||
## 🔁 Verzeichnisstruktur
|
||||
|
||||
```bash
|
||||
/docs
|
||||
└── frontend
|
||||
└── redux
|
||||
└── api
|
||||
└── fromWebService
|
||||
├── fetchGisSystemStatic.md
|
||||
├── fetchGisStationsMeasurements.md
|
||||
├── fetchGisStationsStatic.md
|
||||
├── fetchGisStationsStaticDistrict.md
|
||||
├── fetchGisStationsStatusDistrict.md
|
||||
└── README.md ← (diese Datei)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Diese Übersicht hilft Entwicklern beim Einstieg und zeigt, wie zentrale Webservice-Kommunikation im Projekt funktioniert.
|
||||
@@ -0,0 +1,81 @@
|
||||
# 🌐 fetchGisStationsMeasurements – Geräte-Messwerte abrufen
|
||||
|
||||
## Zweck
|
||||
|
||||
Diese Funktion ruft Messwerte aller Geräte einer Karte ab.
|
||||
Die Daten werden vom Webservice `GisStationsMeasurements` bereitgestellt.
|
||||
|
||||
---
|
||||
|
||||
## Webservice-Endpunkt
|
||||
|
||||
```
|
||||
GisStationsMeasurements?idMap={idMap}&idUser={idUser}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Besonderheit: Port-Steuerung per Umgebungsvariable
|
||||
|
||||
Die Webservices (z. B. `WebServiceMap.asmx`) laufen **immer auf Port 80** –
|
||||
auch in der Entwicklungsumgebung.
|
||||
|
||||
Um das zu berücksichtigen, wird der Port über `.env.local` gesteuert:
|
||||
|
||||
```env
|
||||
NEXT_PUBLIC_API_PORT_MODE=dev
|
||||
```
|
||||
|
||||
### Beispiel (aus dem Code):
|
||||
|
||||
```js
|
||||
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
|
||||
|
||||
const apiBaseUrl =
|
||||
mode === "dev"
|
||||
? `${window.location.protocol}//${window.location.hostname}:80/talas5/ClientData/WebServiceMap.asmx`
|
||||
: `${window.location.origin}/talas5/ClientData/WebServiceMap.asmx`;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Parameter
|
||||
|
||||
| URL-Parameter | Beschreibung | Übergabe durch TALAS.web |
|
||||
|---------------|--------------|---------------------------|
|
||||
| `m` | Map-ID | Ja |
|
||||
| `u` | User-ID | Ja |
|
||||
|
||||
Diese Parameter werden clientseitig aus der URL gelesen:
|
||||
|
||||
```js
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const idMap = params.get("m");
|
||||
const idUser = params.get("u");
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Beispiel-Aufruf
|
||||
|
||||
```
|
||||
http://10.10.0.13/talas5/MessagesMap/mapTypeC.aspx?m=12&u=484
|
||||
```
|
||||
|
||||
→ ergibt folgenden Webservice-Aufruf:
|
||||
|
||||
```
|
||||
http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsMeasurements?idMap=12&idUser=484
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Siehe auch
|
||||
|
||||
- `.env.local` → `NEXT_PUBLIC_API_PORT_MODE`
|
||||
- `docs/frontend/redux/api/fromWebService/fetchGisSystemStatic.md`
|
||||
- API-Datei: `/redux/api/fromWebService/fetchGisStationsMeasurements.js`
|
||||
|
||||
---
|
||||
|
||||
📄 Pfad: `/docs/frontend/redux/api/fromWebService/fetchGisStationsMeasurements.md`
|
||||
78
docs/redux/api/fromWebService/fetchGisStationsStatic.md
Normal file
78
docs/redux/api/fromWebService/fetchGisStationsStatic.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# 🌐 fetchGisStationsStatic – Standortdaten der Karte abrufen
|
||||
|
||||
## Zweck
|
||||
|
||||
Diese Funktion ruft die statischen Standortinformationen aller Geräte für eine bestimmte Karte ab.
|
||||
Sie nutzt den Webservice-Endpunkt `GisStationsStatic`.
|
||||
|
||||
---
|
||||
|
||||
## Webservice-Endpunkt
|
||||
|
||||
```
|
||||
GisStationsStatic?idMap={idMap}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Besonderheit: Port-Steuerung über Umgebungsvariable
|
||||
|
||||
Die Webservices laufen immer auf Port 80 – auch in der Entwicklungsumgebung.
|
||||
|
||||
Die Funktion erkennt dies anhand der Umgebungsvariable in `.env.local`:
|
||||
|
||||
```env
|
||||
NEXT_PUBLIC_API_PORT_MODE=dev
|
||||
```
|
||||
|
||||
### Codeauszug:
|
||||
|
||||
```js
|
||||
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
|
||||
|
||||
const apiBaseUrl =
|
||||
mode === "dev"
|
||||
? `${window.location.protocol}//${window.location.hostname}:80/talas5/ClientData/WebServiceMap.asmx`
|
||||
: `${window.location.origin}/talas5/ClientData/WebServiceMap.asmx`;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Parameter
|
||||
|
||||
| URL-Parameter | Beschreibung | Übergabe durch TALAS.web |
|
||||
|---------------|--------------|---------------------------|
|
||||
| `m` | Map-ID | Ja |
|
||||
|
||||
Die Map-ID wird aus der URL gelesen:
|
||||
|
||||
```js
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const idMap = params.get("m");
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Beispiel
|
||||
|
||||
```
|
||||
http://10.10.0.13/talas5/MessagesMap/mapTypeC.aspx?m=12&u=484
|
||||
```
|
||||
|
||||
→ wird zu:
|
||||
|
||||
```
|
||||
http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsStatic?idMap=12
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Siehe auch
|
||||
|
||||
- `.env.local` → `NEXT_PUBLIC_API_PORT_MODE`
|
||||
- `fetchGisSystemStatic.md`
|
||||
- `fetchGisStationsMeasurements.md`
|
||||
|
||||
---
|
||||
|
||||
📄 Pfad: `/docs/frontend/redux/api/fromWebService/fetchGisStationsStatic.md`
|
||||
@@ -0,0 +1,77 @@
|
||||
# 🌐 fetchGisStationsStaticDistrict – Statische Gerätebezirksdaten abrufen
|
||||
|
||||
## Zweck
|
||||
|
||||
Diese Funktion ruft alle statischen Geräte- und Sektordaten eines bestimmten Kartenbereichs ab.
|
||||
Sie basiert auf dem Webservice-Endpunkt `GisStationsStaticDistrict`.
|
||||
|
||||
---
|
||||
|
||||
## Webservice-Endpunkt
|
||||
|
||||
```
|
||||
GisStationsStaticDistrict?idMap={idMap}&idUser={idUser}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Portsteuerung über Umgebungsvariable
|
||||
|
||||
Da die Webservices in allen Umgebungen auf Port 80 laufen, wird der Zugriff über eine Umgebungsvariable gesteuert:
|
||||
|
||||
```env
|
||||
NEXT_PUBLIC_API_PORT_MODE=dev
|
||||
```
|
||||
|
||||
### Codebeispiel:
|
||||
|
||||
```js
|
||||
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
|
||||
|
||||
const apiBaseUrl =
|
||||
mode === "dev"
|
||||
? `${window.location.protocol}//${window.location.hostname}:80/talas5/ClientData/WebServiceMap.asmx`
|
||||
: `${window.location.origin}/talas5/ClientData/WebServiceMap.asmx`;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## URL-Parameter
|
||||
|
||||
| Parameter | Beschreibung | Wird übergeben durch |
|
||||
|-----------|--------------|------------------------|
|
||||
| `m` | Map-ID | TALAS.web (in URL) |
|
||||
| `u` | User-ID | TALAS.web (in URL) |
|
||||
|
||||
```js
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const idMap = params.get("m");
|
||||
const idUser = params.get("u");
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Beispiel
|
||||
|
||||
```
|
||||
http://10.10.0.13/talas5/MessagesMap/mapTypeC.aspx?m=12&u=484
|
||||
```
|
||||
|
||||
→ wird übersetzt zu:
|
||||
|
||||
```
|
||||
http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsStaticDistrict?idMap=12&idUser=484
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Siehe auch
|
||||
|
||||
- `.env.local` → `NEXT_PUBLIC_API_PORT_MODE`
|
||||
- `fetchGisStationsStatic.js`
|
||||
- `fetchGisStationsMeasurements.js`
|
||||
- `fetchGisSystemStatic.js`
|
||||
|
||||
---
|
||||
|
||||
📄 Pfad: `/docs/frontend/redux/api/fromWebService/fetchGisStationsStaticDistrict.md`
|
||||
@@ -0,0 +1,78 @@
|
||||
# 🌐 fetchGisStationsStatusDistrict – Gerätestatus nach Bezirken abrufen
|
||||
|
||||
## Zweck
|
||||
|
||||
Diese Funktion ruft die aktuellen Statusdaten aller Geräte eines bestimmten Kartenbezirks ab.
|
||||
Sie basiert auf dem Webservice-Endpunkt `GisStationsStatusDistrict`.
|
||||
|
||||
---
|
||||
|
||||
## Webservice-Endpunkt
|
||||
|
||||
```
|
||||
GisStationsStatusDistrict?idMap={idMap}&idUser={idUser}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Portsteuerung über Umgebungsvariable
|
||||
|
||||
Da die Webservices in allen Umgebungen über Port 80 laufen,
|
||||
wird der Zugriff über eine Umgebungsvariable in `.env.local` konfiguriert:
|
||||
|
||||
```env
|
||||
NEXT_PUBLIC_API_PORT_MODE=dev
|
||||
```
|
||||
|
||||
### Codebeispiel:
|
||||
|
||||
```js
|
||||
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
|
||||
|
||||
const apiBaseUrl =
|
||||
mode === "dev"
|
||||
? `${window.location.protocol}//${window.location.hostname}:80/talas5/ClientData/WebServiceMap.asmx`
|
||||
: `${window.location.origin}/talas5/ClientData/WebServiceMap.asmx`;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## URL-Parameter
|
||||
|
||||
| Parameter | Beschreibung | Übergabe durch TALAS.web |
|
||||
|-----------|--------------|---------------------------|
|
||||
| `m` | Map-ID | Ja |
|
||||
| `u` | User-ID | Ja |
|
||||
|
||||
```js
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const idMap = params.get("m");
|
||||
const idUser = params.get("u");
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Beispiel
|
||||
|
||||
```
|
||||
http://10.10.0.13/talas5/MessagesMap/mapTypeC.aspx?m=12&u=484
|
||||
```
|
||||
|
||||
→ wird übersetzt zu:
|
||||
|
||||
```
|
||||
http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict?idMap=12&idUser=484
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Siehe auch
|
||||
|
||||
- `.env.local` → `NEXT_PUBLIC_API_PORT_MODE`
|
||||
- `fetchGisStationsStaticDistrict.js`
|
||||
- `fetchGisStationsMeasurements.js`
|
||||
- `fetchGisSystemStatic.js`
|
||||
|
||||
---
|
||||
|
||||
📄 Pfad: `/docs/frontend/redux/api/fromWebService/fetchGisStationsStatusDistrict.md`
|
||||
76
docs/redux/api/fromWebService/fetchGisSystemStatic.md
Normal file
76
docs/redux/api/fromWebService/fetchGisSystemStatic.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# 🌐 fetchGisSystemStatic – Geräte-Systemdaten abrufen
|
||||
|
||||
## Zweck
|
||||
|
||||
Diese Funktion ruft die Gerätestatus-Übersicht für eine bestimmte Karte ab:
|
||||
|
||||
WebService-Endpunkt:
|
||||
|
||||
```
|
||||
GisSystemStatic?idMap={idMap}&idUser={idUser}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Besonderheit bei der URL
|
||||
|
||||
Die Webservices (z. B. `WebServiceMap.asmx`) laufen **immer auf Port 80**,
|
||||
egal ob im Entwicklungsmodus (`localhost`, `:3000`) oder auf dem Testserver (`10.10.0.13`).
|
||||
|
||||
Daher wird im Code explizit `:80` gesetzt – gesteuert über die Umgebungsvariable:
|
||||
|
||||
```env
|
||||
NEXT_PUBLIC_API_PORT_MODE=dev
|
||||
```
|
||||
|
||||
### Beispiel (aus dem Code):
|
||||
|
||||
```js
|
||||
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
|
||||
|
||||
const apiBaseUrl = mode === "dev" ? `${window.location.protocol}//${window.location.hostname}:80/talas5/ClientData/WebServiceMap.asmx` : `${window.location.origin}/talas5/ClientData/WebServiceMap.asmx`;
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Parameter
|
||||
|
||||
Die Funktion liest folgende URL-Parameter ein:
|
||||
|
||||
| URL-Parameter | Beschreibung | Übergabe durch TALAS.web |
|
||||
| ------------- | ------------ | ------------------------ |
|
||||
| `m` | Map-ID | Ja |
|
||||
| `u` | User-ID | Ja |
|
||||
|
||||
Diese werden aus der URL wie folgt gelesen:
|
||||
|
||||
```js
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const idMap = params.get("m");
|
||||
const idUser = params.get("u");
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Beispiel-Aufruf
|
||||
|
||||
TALAS-Aufruf:
|
||||
|
||||
```
|
||||
http://10.10.0.13/talas5/MessagesMap/mapTypeC.aspx?m=12&u=484
|
||||
```
|
||||
|
||||
wird im Webservice-Request zu:
|
||||
|
||||
```
|
||||
http://10.10.0.13/talas5/ClientData/WebServiceMap.asmx/GisSystemStatic?idMap=12&idUser=484
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Siehe auch
|
||||
|
||||
- `.env.local` → `NEXT_PUBLIC_API_PORT_MODE`
|
||||
- `docs/fromWebService.md`
|
||||
- API-Datei: `/redux/api/fromWebService/fetchGisSystemStatic.js`
|
||||
- 📄 Pfad: `/docs/frontend/redux/api/fromWebService/fetchGisSystemStatic.md`
|
||||
17
docs/redux/slices/addPoiOnPolylineSlice.md
Normal file
17
docs/redux/slices/addPoiOnPolylineSlice.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# ➕ 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
|
||||
22
docs/redux/slices/currentPoiSlice.md
Normal file
22
docs/redux/slices/currentPoiSlice.md
Normal file
@@ -0,0 +1,22 @@
|
||||
# 📍 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;
|
||||
```
|
||||
103
docs/redux/slices/db/locationDevicesFromDBSlice.md
Normal file
103
docs/redux/slices/db/locationDevicesFromDBSlice.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# 📦 locationDevicesFromDBSlice
|
||||
|
||||
Zuständig für das Laden und Speichern der Geräteinformationen pro Standort (Location) aus der Datenbank.
|
||||
|
||||
## 🧠 Zweck
|
||||
|
||||
Dieses Slice verwaltet die Geräte, die mit einem bestimmten Standort (Location) verknüpft sind.
|
||||
Es nutzt ein `createAsyncThunk`, um die Daten vom Webservice bzw. von der lokalen Datenbank zu laden.
|
||||
|
||||
---
|
||||
|
||||
## 🔁 Datenfluss
|
||||
|
||||
1. **Dispatch `fetchLocationDevicesFromDB()`**
|
||||
2. **Daten werden über `fetchLocationDevices()` geladen**
|
||||
3. **Status wird aktualisiert (`loading`, `succeeded`, `failed`)**
|
||||
4. **Geräte-Liste (`devices`) wird gespeichert**
|
||||
|
||||
---
|
||||
|
||||
## 🧩 Slice-Definition
|
||||
|
||||
```js
|
||||
initialState: {
|
||||
devices: [], // Geräte-Liste pro Standort
|
||||
status: "idle", // "idle" | "loading" | "succeeded" | "failed"
|
||||
error: null // Fehlernachricht im Fehlerfall
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Actions
|
||||
|
||||
| Action Type | Beschreibung |
|
||||
|--------------------------------------------|--------------------------------------------------|
|
||||
| `fetchLocationDevicesFromDB/pending` | Startet den Ladeprozess |
|
||||
| `fetchLocationDevicesFromDB/fulfilled` | Speichert die empfangenen Geräte in `devices` |
|
||||
| `fetchLocationDevicesFromDB/rejected` | Speichert die Fehlermeldung in `error` |
|
||||
|
||||
---
|
||||
|
||||
## 📥 Async Thunk
|
||||
|
||||
```ts
|
||||
export const fetchLocationDevicesFromDB = createAsyncThunk(
|
||||
"locationDevicesFromDB/fetchLocationDevicesFromDB",
|
||||
async () => {
|
||||
return fetchLocationDevices(); // API-Aufruf aus services/api
|
||||
}
|
||||
);
|
||||
```
|
||||
|
||||
Die Funktion `fetchLocationDevices()` befindet sich unter:
|
||||
|
||||
```
|
||||
/redux/api/fromDB/fetchLocationDevices.js
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Verwendung in Komponenten
|
||||
|
||||
### Beispiel mit `useSelector` & `useDispatch`
|
||||
|
||||
```tsx
|
||||
import { useSelector, useDispatch } from "react-redux";
|
||||
import { fetchLocationDevicesFromDB } from "@/redux/slices/db/locationDevicesFromDBSlice";
|
||||
|
||||
const dispatch = useDispatch();
|
||||
const devices = useSelector((state) => state.locationDevicesFromDB.devices);
|
||||
const status = useSelector((state) => state.locationDevicesFromDB.status);
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(fetchLocationDevicesFromDB());
|
||||
}, []);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧩 Integration im Store
|
||||
|
||||
```ts
|
||||
import locationDevicesFromDBReducer from "./slices/db/locationDevicesFromDBSlice";
|
||||
|
||||
export const store = configureStore({
|
||||
reducer: {
|
||||
locationDevicesFromDB: locationDevicesFromDBReducer,
|
||||
// weitere Slices ...
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📌 Hinweis
|
||||
|
||||
Dieses Slice ist Bestandteil der neuen Redux-Architektur (ehemals Recoil)
|
||||
→ siehe auch `CHANGELOG.md` Version `1.1.97` bis `1.1.98`.
|
||||
|
||||
```
|
||||
Pfad: /redux/slices/db/locationDevicesFromDBSlice.js
|
||||
```
|
||||
93
docs/redux/slices/db/poiTypesSlice.md
Normal file
93
docs/redux/slices/db/poiTypesSlice.md
Normal file
@@ -0,0 +1,93 @@
|
||||
# 🧭 poiTypesSlice
|
||||
|
||||
Verwaltet die Point-of-Interest (POI) Typen, die vom Server bereitgestellt werden – z. B. für die Darstellung von Symbolen oder Layer-Kategorien in der Karte.
|
||||
|
||||
---
|
||||
|
||||
## 📍 Datei
|
||||
|
||||
```
|
||||
/redux/slices/db/poiTypesSlice.js
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 📦 Initialer State
|
||||
|
||||
```ts
|
||||
{
|
||||
data: [], // Liste der POI-Typen
|
||||
status: "idle" // Ladezustand: "idle" | "loading" | "succeeded" | "failed"
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## ⚙️ Async Thunk: `fetchPoiTypes`
|
||||
|
||||
```ts
|
||||
export const fetchPoiTypes = createAsyncThunk("poiTypes/fetchPoiTypes", async () => {
|
||||
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";
|
||||
}
|
||||
|
||||
const response = await fetch(`${API_BASE_URL}/api/talas_v5_DB/poiTyp/readPoiTyp`);
|
||||
return await response.json();
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔁 Lifecycle im Slice
|
||||
|
||||
| Zustand | Beschreibung |
|
||||
|--------------------|--------------------------------------|
|
||||
| `pending` | Setzt `status = "loading"` |
|
||||
| `fulfilled` | Speichert `payload` in `state.data` und setzt `status = "succeeded"` |
|
||||
| `rejected` | Setzt `status = "failed"` |
|
||||
|
||||
---
|
||||
|
||||
## 🧪 Verwendung im Component
|
||||
|
||||
```tsx
|
||||
import { useSelector, useDispatch } from "react-redux";
|
||||
import { fetchPoiTypes } from "@/redux/slices/db/poiTypesSlice";
|
||||
|
||||
const dispatch = useDispatch();
|
||||
const poiTypes = useSelector((state) => state.poiTypes.data);
|
||||
const status = useSelector((state) => state.poiTypes.status);
|
||||
|
||||
useEffect(() => {
|
||||
dispatch(fetchPoiTypes());
|
||||
}, []);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧩 Store Integration
|
||||
|
||||
```ts
|
||||
import poiTypesReducer from "./slices/db/poiTypesSlice";
|
||||
|
||||
export const store = configureStore({
|
||||
reducer: {
|
||||
poiTypes: poiTypesReducer,
|
||||
// weitere ...
|
||||
},
|
||||
});
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🌐 API-Endpunkt
|
||||
|
||||
```http
|
||||
GET /api/talas_v5_DB/poiTyp/readPoiTyp
|
||||
```
|
||||
|
||||
Erwartet JSON-Antwort mit allen verfügbaren POI-Typen für die App.
|
||||
16
docs/redux/slices/lineVisibilitySlice.md
Normal file
16
docs/redux/slices/lineVisibilitySlice.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# 📶 lineVisibilitySlice
|
||||
|
||||
Speichert, welche Linien (Kabelstrecken) aktiv sichtbar sind.
|
||||
|
||||
## 🔧 Zustand
|
||||
|
||||
```ts
|
||||
{
|
||||
activeLines: { [idLD]: true | false }
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 Aktionen
|
||||
|
||||
- `updateLineStatus({ idLD, active })`
|
||||
- `setActiveLines({...})`
|
||||
18
docs/redux/slices/mapLayersSlice.md
Normal file
18
docs/redux/slices/mapLayersSlice.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# 🗺️ mapLayersSlice
|
||||
|
||||
Verwaltet Sichtbarkeit der verschiedenen Map-Layer pro System (TALAS, ECI, GMA usw.).
|
||||
|
||||
## 🔧 Zustand
|
||||
|
||||
```ts
|
||||
{
|
||||
TALAS: true,
|
||||
ECI: true,
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 Aktionen
|
||||
|
||||
- `toggleLayer(layerName)`
|
||||
- `setLayerVisibility({ layer, visibility })`
|
||||
16
docs/redux/slices/poiLayerVisibleSlice.md
Normal file
16
docs/redux/slices/poiLayerVisibleSlice.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# 👁️ poiLayerVisibleSlice
|
||||
|
||||
Steuert, ob der POI-Layer auf der Karte angezeigt wird.
|
||||
|
||||
## 🔧 Zustand
|
||||
|
||||
```ts
|
||||
{
|
||||
visible: true
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 Aktionen
|
||||
|
||||
- `setVisible(true|false)`
|
||||
- `toggleVisible()`
|
||||
16
docs/redux/slices/poiReadFromDbTriggerSlice.md
Normal file
16
docs/redux/slices/poiReadFromDbTriggerSlice.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# 🔄 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
|
||||
71
docs/redux/slices/poiTypesSlice.md
Normal file
71
docs/redux/slices/poiTypesSlice.md
Normal file
@@ -0,0 +1,71 @@
|
||||
# 🧩 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`
|
||||
23
docs/redux/slices/polylineContextMenuSlice.md
Normal file
23
docs/redux/slices/polylineContextMenuSlice.md
Normal file
@@ -0,0 +1,23 @@
|
||||
# 📋 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()`
|
||||
16
docs/redux/slices/polylineEventsDisabledSlice.md
Normal file
16
docs/redux/slices/polylineEventsDisabledSlice.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# 🚫 polylineEventsDisabledSlice
|
||||
|
||||
Steuert, ob Events auf Polylinien (z. B. Klicks) deaktiviert sind.
|
||||
|
||||
## 🔧 Zustand
|
||||
|
||||
```ts
|
||||
{
|
||||
disabled: false
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 Aktionen
|
||||
|
||||
- `setDisabled(true|false)`
|
||||
- `toggleDisabled()`
|
||||
15
docs/redux/slices/polylineLayerVisibleSlice.md
Normal file
15
docs/redux/slices/polylineLayerVisibleSlice.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# 📏 polylineLayerVisibleSlice
|
||||
|
||||
Steuert, ob der Layer mit Kabelstrecken (Polylinien) angezeigt wird.
|
||||
|
||||
## 🔧 Zustand
|
||||
|
||||
```ts
|
||||
{
|
||||
visible: false
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 Aktionen
|
||||
|
||||
- `setPolylineVisible(true|false)` → speichert Zustand auch in `localStorage`
|
||||
16
docs/redux/slices/readPoiMarkersStoreSlice.md
Normal file
16
docs/redux/slices/readPoiMarkersStoreSlice.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# 📌 readPoiMarkersStoreSlice
|
||||
|
||||
Enthält alle POI-Marker, die von der Datenbank gelesen wurden.
|
||||
|
||||
## 🔧 Zustand
|
||||
|
||||
```ts
|
||||
{
|
||||
poiMarkers: []
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 Aktionen
|
||||
|
||||
- `setPoiMarkers(array)`
|
||||
- `clearPoiMarkers()`
|
||||
14
docs/redux/slices/selectedDeviceSlice.md
Normal file
14
docs/redux/slices/selectedDeviceSlice.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# 🔧 selectedDeviceSlice
|
||||
|
||||
Speichert das aktuell ausgewählte Gerät (z. B. für Detailanzeige, Popup oder Bearbeitung).
|
||||
|
||||
## 🔧 Zustand
|
||||
|
||||
```ts
|
||||
null | { ...deviceData }
|
||||
```
|
||||
|
||||
## 🎯 Aktionen
|
||||
|
||||
- `setSelectedDevice(device)`
|
||||
- `clearSelectedDevice()`
|
||||
14
docs/redux/slices/selectedPoiSlice.md
Normal file
14
docs/redux/slices/selectedPoiSlice.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# 📍 selectedPoiSlice
|
||||
|
||||
Speichert den aktuell ausgewählten POI (z. B. für Detailanzeige, Update oder Modal-Interaktion).
|
||||
|
||||
## 🔧 Zustand
|
||||
|
||||
```ts
|
||||
null | { ...poiData }
|
||||
```
|
||||
|
||||
## 🎯 Aktionen
|
||||
|
||||
- `setSelectedPoi(poi)`
|
||||
- `clearSelectedPoi()`
|
||||
18
docs/redux/slices/urlParameterSlice.md
Normal file
18
docs/redux/slices/urlParameterSlice.md
Normal file
@@ -0,0 +1,18 @@
|
||||
# 🌐 urlParameterSlice
|
||||
|
||||
Verwaltet `mapId` und `userId`, die aus der URL gelesen werden.
|
||||
|
||||
## 🔧 Zustand
|
||||
|
||||
```ts
|
||||
{
|
||||
mapId: null | string,
|
||||
userId: null | string
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 Aktionen
|
||||
|
||||
- `setMapId(id)`
|
||||
- `setUserId(id)`
|
||||
- `setFromURL({ m, u })` – gleichzeitig beide setzen aus URL-Params
|
||||
26
docs/redux/slices/webService/gisStationsMeasurementsSlice.md
Normal file
26
docs/redux/slices/webService/gisStationsMeasurementsSlice.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# 📈 gisStationsMeasurementsSlice
|
||||
|
||||
Verwaltet Messdaten für GIS-Stationen, z. B. Spannungen, Strom, Sensorwerte etc.
|
||||
|
||||
## 🔧 Pfad
|
||||
`/redux/slices/webService/gisStationsMeasurementsSlice.js`
|
||||
|
||||
## 📦 Initial State
|
||||
|
||||
```ts
|
||||
{
|
||||
data: [],
|
||||
status: "idle",
|
||||
error: null
|
||||
}
|
||||
```
|
||||
|
||||
## 🔁 Thunk: `fetchGisStationsMeasurementsFromWebService`
|
||||
|
||||
Verwendet `fetchGisStationsMeasurements()` als API-Quelle.
|
||||
|
||||
## 📊 Selector
|
||||
|
||||
```ts
|
||||
selectGisStationsMeasurements = (state) => state.gisStationsMeasurements.data;
|
||||
```
|
||||
@@ -0,0 +1,18 @@
|
||||
# 🏙️ gisStationsStaticDistrictSlice
|
||||
|
||||
Verwaltet statische Daten für GIS-Bezirksstationen.
|
||||
|
||||
## 🔧 Pfad
|
||||
`/redux/slices/webService/gisStationsStaticDistrictSlice.js`
|
||||
|
||||
## 📦 Initial State
|
||||
|
||||
```ts
|
||||
{
|
||||
data: [],
|
||||
status: "idle",
|
||||
error: null
|
||||
}
|
||||
```
|
||||
|
||||
## 🔁 Thunk: `fetchGisStationsStaticDistrictFromWebService`
|
||||
26
docs/redux/slices/webService/gisStationsStaticSlice.md
Normal file
26
docs/redux/slices/webService/gisStationsStaticSlice.md
Normal file
@@ -0,0 +1,26 @@
|
||||
# 🛰️ 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);
|
||||
```
|
||||
@@ -0,0 +1,18 @@
|
||||
# 📶 gisStationsStatusDistrictSlice
|
||||
|
||||
Verwaltet Statusinformationen für GIS-Bezirksstationen (z. B. online/offline, Fehlerstatus).
|
||||
|
||||
## 🔧 Pfad
|
||||
`/redux/slices/webService/gisStationsStatusDistrictSlice.js`
|
||||
|
||||
## 📦 Initial State
|
||||
|
||||
```ts
|
||||
{
|
||||
data: [],
|
||||
status: "idle",
|
||||
error: null
|
||||
}
|
||||
```
|
||||
|
||||
## 🔁 Thunk: `fetchGisStationsStatusDistrictFromWebService`
|
||||
25
docs/redux/slices/webService/gisSystemStaticSlice.md
Normal file
25
docs/redux/slices/webService/gisSystemStaticSlice.md
Normal file
@@ -0,0 +1,25 @@
|
||||
# 🧭 gisSystemStaticSlice
|
||||
|
||||
Verwaltet statische GIS-Systemdaten (`Systems[]`), die vom Server zurückgegeben werden.
|
||||
|
||||
## 🔧 Pfad
|
||||
`/redux/slices/webService/gisSystemStaticSlice.js`
|
||||
|
||||
## 📦 Initial State
|
||||
|
||||
```ts
|
||||
{
|
||||
data: [], // enthält Systems[]
|
||||
status: "idle", // Ladezustand
|
||||
error: null
|
||||
}
|
||||
```
|
||||
|
||||
## 🔁 Thunk: `fetchGisSystemStaticFromWebService`
|
||||
|
||||
Ruft `fetchGisSystemStatic()` auf und speichert nur das Feld `Systems` im Redux-State.
|
||||
|
||||
## 🧩 Aktionen
|
||||
|
||||
- `setGisSystemStatic(data)` → manuelles Setzen von `Systems[]`
|
||||
- `fulfilled` → speichert Systems[]
|
||||
16
docs/redux/slices/zoomTriggerSlice.md
Normal file
16
docs/redux/slices/zoomTriggerSlice.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# 🔍 zoomTriggerSlice
|
||||
|
||||
Löst ein Neuzeichnen oder eine Zoom-Interaktion aus.
|
||||
|
||||
## 🔧 Zustand
|
||||
|
||||
```ts
|
||||
{
|
||||
trigger: 0
|
||||
}
|
||||
```
|
||||
|
||||
## 🎯 Aktionen
|
||||
|
||||
- `incrementZoomTrigger()` – erhöht Trigger-Zähler (z. B. zur Synchronisation)
|
||||
- `resetZoomTrigger()` – setzt Trigger zurück
|
||||
Reference in New Issue
Block a user