From 1a4d5e61123d622bb04a00c84ed01cc625d63462 Mon Sep 17 00:00:00 2001 From: ISA Date: Tue, 27 May 2025 10:38:24 +0200 Subject: [PATCH] =?UTF-8?q?docs(priorityConfig):=20API-Dokumentation=20ers?= =?UTF-8?q?tellt=20f=C3=BCr=20priorityConfig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - /docs/pages/api/talas_v5_DB/priorityConfig.md hinzugefügt - Enthält Beschreibung der API, Datenstruktur, Beispielantwort, Leaflet-Anwendung - README.md und CHANGELOG.md aktualisiert - Version auf 1.1.187 erhöht --- CHANGELOG.md | 22 ++++++ README.md | 10 +++ config/appVersion.js | 2 +- docs/pages/api/talas_v5_DB/priorityConfig.md | 83 ++++++++++++++++++++ pages/api/talas_v5_DB/priorityConfig.js | 2 - 5 files changed, 116 insertions(+), 3 deletions(-) create mode 100644 docs/pages/api/talas_v5_DB/priorityConfig.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 456ca607e..326a948c5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,28 @@ Alle bedeutenden Änderungen an diesem Projekt werden in dieser Datei dokumentie --- +## [1.1.187] – 2025-05-27 + +### 📄 Dokumentation + +- Neue Markdown-Dokumentation erstellt: + `/docs/pages/api/talas_v5_DB/priorityConfig.md` + - Beschreibt die API `/api/talas_v5_DB/priorityConfig` + - Enthält Beispielantwort, Datenstruktur, SQL, Fehlerhandling + - Besonderheit: Anwendung der Prioritätswerte (`level`) zur Sortierung von Leaflet-Markern bei Überlappung + +### 🧠 Architektur + +- Dokumentation enthält ausführlichen Abschnitt „🔗 Verwendet in“ mit klaren Verweisen auf: + - `MapComponent`, `createAndSetDevices`, `priorityConfigSlice`, u. a. +- Leaflet-Markerdarstellung über `zIndexOffset` auf Basis von `priorityConfig.level` wird erklärt + +🔧 Version + +- 📦 Version erhöht auf **1.1.187** + +--- + ## [1.1.186] – 2025-05-27 ### 🔥 Removed diff --git a/README.md b/README.md index d8a011d61..2b7e453af 100644 --- a/README.md +++ b/README.md @@ -311,6 +311,16 @@ Alle ehemaligen Recoil-Atoms wurden erfolgreich in Redux-Slices überführt. --- +## 📄 Dokumentation + +Eine technische API-Dokumentation befindet sich im Verzeichnis `/docs/` +Beispiel: + +- [`priorityConfig.md`](docs/pages/api/talas_v5_DB/priorityConfig.md): + Dokumentiert die Prioritätskonfiguration für Meldungsanzeige und Marker-Sortierung. + +--- + ## 🧪 Mockdaten (nicht mehr verwendet) Früher konnten über folgende Umgebungsvariable Mockdaten geladen werden: diff --git a/config/appVersion.js b/config/appVersion.js index 83184f833..6b8c880ac 100644 --- a/config/appVersion.js +++ b/config/appVersion.js @@ -1,2 +1,2 @@ // /config/appVersion -export const APP_VERSION = "1.1.187"; +export const APP_VERSION = "1.1.188"; diff --git a/docs/pages/api/talas_v5_DB/priorityConfig.md b/docs/pages/api/talas_v5_DB/priorityConfig.md new file mode 100644 index 000000000..9cc9d196d --- /dev/null +++ b/docs/pages/api/talas_v5_DB/priorityConfig.md @@ -0,0 +1,83 @@ + + +# 📊 API: /api/talas_v5_DB/priorityConfig + +Diese API liefert die Konfigurationsdaten für Prioritäten (z. B. „critical“, „minor“) aus der Tabelle `prio`. +Sie wird u. a. für Meldungsanzeigen, Filter und Leaflet-Marker-Priorisierung verwendet. + +--- + +## 📍 Anwendung in Leaflet – Marker-Priorität bei Überlappung + +Die `level`-Werte dieser Konfiguration steuern die **Darstellungsreihenfolge überlappender Marker** in Leaflet: + +- Marker mit **höherer Priorität** (`level = 1`, z. B. `critical`) werden **oben** dargestellt +- Marker mit **niedriger Priorität** (`level = 100`, `101`) werden **weiter hinten** gezeichnet +- Dadurch bleiben wichtige Meldungen stets sichtbar, selbst bei POI-Überlagerung + +Diese Sortierung wird z. B. bei OverlappingMarkerSpiderfier oder Clustern angewendet. + +--- + +## 🔗 Route + +- **Pfad:** `/api/talas_v5_DB/priorityConfig` +- **Methode:** `GET` +- **Beschreibung:** Gibt alle aktiven Prioritätsstufen inkl. Farbcodes zurück + +--- + +## 🧾 Beispielantwort + +**Test-URL:** [`/api/talas_v5_DB/priorityConfig`](http://10.10.0.70:3000/api/talas_v5_DB/priorityConfig) + +```json +[ + { "idprio": 0, "level": 100, "name": "kein", "color": "#ffffff" }, + { "idprio": 1, "level": 101, "name": "gut", "color": "#99CC00" }, + { "idprio": 5, "level": 1, "name": "critical", "color": "#FF0000" }, + { "idprio": 7, "level": 2, "name": "major", "color": "#FF9900" }, + { "idprio": 9, "level": 3, "name": "minor", "color": "#FFFF00" }, + { "idprio": 10, "level": 4, "name": "system", "color": "#FF00FF" }, + { "idprio": 12, "level": 0, "name": "Stationsausfall", "color": "#FF6600" } +] +``` + +📦 Datenstruktur +Feld Typ Beschreibung +idprio number Eindeutige ID der Priorität +level number Prioritätsstufe (1 = hoch, 100 = niedrig) +name string Bezeichnung (z. B. "minor", "system", "Stationsausfall") +color string HEX-Farbcode (z. B. #FF0000) zur visuellen Darstellung + +⚙️ Datenquelle +Tabelle: prio + +SQL-Abfrage: + +sql + +SELECT idprio, level, name, color FROM prio; + +Backend: verwendet getPool() aus utils/mysqlPool.js + +## 🔗 Verwendet in + +| Datei | Zweck | +| ----------------------------- | ------------------------------------------------------------------- | +| `fetchPriorityConfigThunk.js` | Holt Prioritätsdaten über API und reicht sie an Redux weiter | +| `priorityConfigSlice.js` | Speichert die geladenen Prioritätsdaten im Redux-Store | +| `MapComponent.js` | Dispatcht Thunk zum Laden der Daten beim Start | +| `useMapComponentState.js` | Liest `priorityConfig` aus Redux und gibt es an Marker-Setup weiter | +| `createAndSetDevices.js` | Erzeugt Marker mit `zIndexOffset` basierend auf Priorität | +| `useCreateAndSetDevices.js` | Hook zur Initialisierung von Geräten auf der Karte | +| `useDynamicMarkerLayers.js` | Verwaltet Marker-Layer dynamisch (inkl. Z-Priorität) | + +❌ Fehlerbehandlung +Bei DB- oder Verbindungsfehlern: + +json +Copy +Edit +{ "error": "Fehler bei der Abfrage" } +HTTP-Statuscode: 500 diff --git a/pages/api/talas_v5_DB/priorityConfig.js b/pages/api/talas_v5_DB/priorityConfig.js index ac029d85f..e06430162 100644 --- a/pages/api/talas_v5_DB/priorityConfig.js +++ b/pages/api/talas_v5_DB/priorityConfig.js @@ -1,6 +1,4 @@ // /pages/api/talas_v5_DB/priorityConfig.js -// in tals5 http://10.10.0.13/talas5/Management/PriorityConfig.aspx beinhaltet die Tabelle prio die Prioritäten der Meldungen (Level 1-4) oder (0-4) je nachdem DB-Design -// das ist die API, die die Prioritäten zurückgibt import getPool from "../../../utils/mysqlPool"; // Singleton-Pool importieren