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:
123
docs/components/DataSheet.md
Normal file
123
docs/components/DataSheet.md
Normal file
@@ -0,0 +1,123 @@
|
||||
# Komponenten-Dokumentation: `DataSheet.js`
|
||||
|
||||
## Zweck
|
||||
|
||||
Die Komponente `DataSheet` dient als Kontrollzentrale für die interaktive Kartenanwendung. Sie bietet Funktionen für:
|
||||
|
||||
- Auswahl von Bereichen ("Stationen") aus einem Dropdown-Menü
|
||||
- Steuerung der Sichtbarkeit von Layern wie POIs und Polyline (z. B. Kabelstrecken)
|
||||
- Aktivierung des Editiermodus
|
||||
- Steuerung von Layer-Zuständen über Redux und Recoil
|
||||
|
||||
---
|
||||
|
||||
## Position im UI
|
||||
|
||||
Die Komponente wird als Floating-Panel oben rechts auf der Karte angezeigt. Sie hat eine feste Breite (min/max) und ist als "Sidebar-Lightbox" implementiert.
|
||||
|
||||
---
|
||||
|
||||
## Abhängigkeiten
|
||||
|
||||
### Redux
|
||||
|
||||
- `gisStationsStaticDistrictSlice`
|
||||
- `gisSystemStaticSlice`
|
||||
- `mapLayersSlice`
|
||||
- `polylineLayerVisibleSlice`
|
||||
- `gisStationsStaticSlice`
|
||||
|
||||
* `poiLayerVisibleSlice`
|
||||
* `zoomTriggerSlice`
|
||||
* `selectedAreaSlice`
|
||||
|
||||
### Hooks
|
||||
|
||||
- `useInitGisStationsStatic()`
|
||||
|
||||
---
|
||||
|
||||
## Funktionalität im Überblick
|
||||
|
||||
### 1. **Bereiche Dropdown**
|
||||
|
||||
- Gefüllt aus `GisStationsStatic.Points`
|
||||
- Wird aktualisiert, wenn sich die Redux-Daten ändern
|
||||
- Bei Auswahl wird `selectedAreaState` aktualisiert
|
||||
|
||||
### 2. **Systemlayer-Checkboxen**
|
||||
|
||||
- Daten kommen aus `GisSystemStatic`
|
||||
- Jeder Eintrag hat `Name` und einen intern generierten `key`
|
||||
- Sichtbarkeit wird über `mapLayersState` verwaltet
|
||||
- Zustand wird in `localStorage` gespeichert
|
||||
|
||||
### 3. **TALAS-Untermenu**
|
||||
|
||||
- Bei Systemname "TALAS" wird eine Untergruppe angezeigt:
|
||||
- Checkbox für Polyline (Kabelstrecken)
|
||||
- Sichtbarkeit auch in `localStorage`
|
||||
|
||||
### 4. **POI-Checkbox**
|
||||
|
||||
- Redux-Slice `poiLayerVisibleSlice`
|
||||
- Sichtbarkeit von POI-Layern auf der Karte
|
||||
|
||||
### 5. **EditModeToggle**
|
||||
|
||||
- Eine separate Komponente
|
||||
- Aktiviert/Deaktiviert den Bearbeitungsmodus (z. B. für Kontextmenü-Einträge)
|
||||
- Bei aktivem EditMode sind Checkboxen deaktiviert
|
||||
|
||||
---
|
||||
|
||||
## Lokale Speicherwerte (localStorage)
|
||||
|
||||
Folgende Werte werden zwischen Sitzungen gespeichert:
|
||||
|
||||
| Key | Zweck |
|
||||
| --------------------- | ---------------------------------- |
|
||||
| `poiVisible` | Sichtbarkeit POI-Layer |
|
||||
| `polylineVisible` | Sichtbarkeit Kabelstrecken |
|
||||
| `mapLayersVisibility` | Sichtbarkeitsstatus für alle Layer |
|
||||
| `editMode` | Status des Bearbeitungsmodus |
|
||||
|
||||
---
|
||||
|
||||
## Bekannte Besonderheiten
|
||||
|
||||
- **Fallbacks** für Redux-Selector: z. B. `|| []` bei leeren Listen
|
||||
- **Fehlerprüfung** für `GisStationsStatic.Points` im useEffect
|
||||
- **Doppelte Initialisierung von stationListing** (einmal aus `Points`, einmal aus `District`)
|
||||
|
||||
---
|
||||
|
||||
## Voraussetzungen für korrekte Funktion
|
||||
|
||||
- API-Endpunkt `/GisStationsStatic?idMap=...` muss korrekte Struktur liefern: `{ Points: [...] }`
|
||||
- Redux Store muss korrekt initialisiert sein
|
||||
- Hook `useInitGisStationsStatic` muss beim Mount ausgeführt werden
|
||||
|
||||
---
|
||||
|
||||
## Weiterführende Dateien
|
||||
|
||||
- `/hooks/useMapComponentState.js`
|
||||
- `/components/EditModeToggle.js`
|
||||
- Redux-Slices unter `/redux/slices/`
|
||||
|
||||
---
|
||||
|
||||
## Speicherort für Dokumentation
|
||||
|
||||
Empfohlenes Ziel: `/docs/DataSheet.md`
|
||||
|
||||
---
|
||||
|
||||
---
|
||||
|
||||
## Hinweis zur Umstellung
|
||||
|
||||
Diese Komponente wurde ursprünglich mit Recoil entwickelt.
|
||||
Seit Version `1.1.96` ist der Zustand vollständig auf **Redux Toolkit** umgestellt.
|
||||
Die Recoil-Atoms wurden entfernt und durch Redux-Slices ersetzt.
|
||||
60
docs/components/MapComponent.md
Normal file
60
docs/components/MapComponent.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# 🗺️ MapComponent – Webservice-Parameter
|
||||
|
||||
## 🔄 URL-Parameter vom Aufrufer (z. B. TALAS.web)
|
||||
|
||||
Die Anwendung wird mit Kurzparametern aufgerufen:
|
||||
|
||||
```
|
||||
http://[SERVER]:3000/?m=12&u=484
|
||||
```
|
||||
|
||||
| Parameter | Bedeutung |
|
||||
| --------- | -------------------------- |
|
||||
| `m` | Map-ID (intern: `idMap`) |
|
||||
| `u` | User-ID (intern: `idUser`) |
|
||||
|
||||
Diese Parameter werden im Code wie folgt gelesen:
|
||||
|
||||
```js
|
||||
const params = new URLSearchParams(window.location.search);
|
||||
const idMap = params.get("m");
|
||||
const idUser = params.get("u");
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🔁 Webservice-Proxy intern
|
||||
|
||||
Die Next.js API-Routen übernehmen die Umwandlung zu den Webservices:
|
||||
|
||||
```js
|
||||
// Beispiel: /pages/api/gisSystemStatic.js
|
||||
const targetUrl = `http://.../WebServiceMap.asmx/GisSystemStatic?idMap=${idMap}&idUser=${idUser}`;
|
||||
```
|
||||
|
||||
➡ Die Konvertierung `m → idMap` und `u → idUser` erfolgt **nur im Backend (API-Routen)**
|
||||
|
||||
---
|
||||
|
||||
## 🧠 Hinweis für Entwickler
|
||||
|
||||
- `m` und `u` **immer** aus der URL im Client lesen
|
||||
- Niemals `idMap` oder `idUser` direkt im Frontend erwarten
|
||||
- Alle Webservice-Zugriffe im Frontend laufen über interne API-Routen `/api/...`
|
||||
- Beispiel-Aufruf:
|
||||
```js
|
||||
fetch(`/api/gisSystemStatic?m=${idMap}&u=${idUser}`);
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🌐 Beispiele aus der Praxis
|
||||
|
||||
| Umgebung | URL-Aufruf-Beispiel |
|
||||
| --------------------- | ------------------------------------------------------------- |
|
||||
| Entwicklungs-PC | http://10.10.0.70:3000/?m=12&u=484 |
|
||||
| Test-Server via TALAS | http://10.10.0.13/talas5/MessagesMap/mapTypeC.aspx?m=12&u=484 |
|
||||
|
||||
---
|
||||
|
||||
Diese Konvention ist essenziell für einheitliche Übergabe und Backend-Kompatibilität.
|
||||
Reference in New Issue
Block a user