diff --git a/.env.development b/.env.development index d0b73cc2d..b4d49a4be 100644 --- a/.env.development +++ b/.env.development @@ -23,4 +23,4 @@ NEXT_PUBLIC_USE_MOCKS=true # z.B. http://10.10.0.13/xyz/index.aspx -> basePath in config.json auf /xyz setzen # basePath wird jetzt in public/config.json gepflegt # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.1.392 +NEXT_PUBLIC_APP_VERSION=1.1.393 diff --git a/.env.production b/.env.production index 738bd61b6..0a2fab053 100644 --- a/.env.production +++ b/.env.production @@ -24,4 +24,4 @@ NEXT_PUBLIC_USE_MOCKS=false # basePath wird jetzt in public/config.json gepflegt # App-Versionsnummer -NEXT_PUBLIC_APP_VERSION=1.1.392 +NEXT_PUBLIC_APP_VERSION=1.1.393 diff --git a/.gitignore b/.gitignore index f03230780..821e8ccf4 100644 --- a/.gitignore +++ b/.gitignore @@ -57,3 +57,6 @@ docs.zip /playwright/.cache/ # playwright reports /playwright/reports/ +# Jira /Confluence Upload Script Secrets und den script selbst +/scripts/confluence-upload/secrets.ps1 +/scripts/confluence-upload/upload-docs.ps1 diff --git a/README.confluence b/README.confluence new file mode 100644 index 000000000..129c50638 --- /dev/null +++ b/README.confluence @@ -0,0 +1,195 @@ +h1. {anchor:nodemap-kartenvisualisierung-für-talas.web-next.js-leaflet-redux}🌍 NodeMap – Kartenvisualisierung für TALAS.web \(Next.js, Leaflet, Redux) +NodeMap ist eine modulare Kartenanwendung zur Visualisierung und Bearbeitung von GIS-Daten, POIs und Gerätestatus in einer interaktiven Leaflet-Karte. + +{quote} +📘 Für Entwickler: +Die technische Dokumentation \(Architektur, Redux, Komponenten, etc.) befindet sich in: +[{{/docs/README.md}}|docs/README.md] +{quote} +h2. {anchor:live-vorschau-der-karte}🌍 Live-Vorschau der Karte +!docs/screenshots/overview1.png|alt=Startansicht der NodeMap Karte! + +---- +{quote} +🖥 Entwicklung & Test unter Windows 11 mit Node.js v18.17.1 und IIS +📦 MySQL 8.0 läuft lokal in einem Docker-Container \(nur für Entwicklung) +🗄 Produktionsumgebung: TALAS.web und MySQL Server unter Windows Server +{quote} +---- +h2. {anchor:technologie-stack}Technologie-Stack +|| Technologie || Zweck || +| Next.js | React-Framework \(Frontend/SSR) | +| Leaflet | Kartendarstellung | +| Redux Toolkit | Zustandverwaltung | +| Tailwind CSS | Styling | +| MySQL | Datenbank | +| Node.js / IIS | Server und Auslieferung | + +h2. {anchor:zielumgebung}🧭 Zielumgebung +* Windows-Produktionsserver \(offline, kein Internet) +* Kommunikation nur im lokalen Netzwerk +* Nutzerzugriff per VPN + Remote Desktop \(RDP) +* Integration per iFrame in TALAS.web + +---- +h2. {anchor:wie-funktioniert-das-system}🔄 Wie funktioniert das System? +Die Anwendung wird von TALAS.web im iFrame geladen. Die URL enthält Parameter für Map\- und User-ID. +NodeMap lädt anschließend Daten über WebServices und MySQL. +➡ Details zur Architektur: [docs/architecture.md] + +---- +h2. {anchor:kartenquellen-konfiguration-publicconfig.json}⚙️ Kartenquellen-Konfiguration \(public/config.json) +Die Datei {{public/config.json}} steuert, welche Kartenquelle \(z.B. OSM oder lokale Tiles) für die Leaflet-Karte verwendet wird. + +*Beispiel:* + +{code:json} +{ + "//info": "tileSources: 'local' für offline, 'osm' für online", + "tileSources": { + "local": "http://localhost/talas5/TileMap/mapTiles/{z}/{x}/{y}.png", + "osm": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" + }, + "active": "osm" +} +{code} +* Mit {{active}} kann zwischen Online\- und Offline-Karten umgeschaltet werden. +* Die Datei wird beim Start der App automatisch geladen. +* Für Offline-Betrieb muss das lokale Kartenmaterial vorhanden sein \(siehe Installationsanleitung). + +---- +h2. {anchor:erstinstallation-auf-server}🧰 Erstinstallation auf Server +h3. {anchor:voraussetzungen}Voraussetzungen +* Windows Server mit IIS +* Sicherstellen, dass alle TALAS.web API-Endpunkte(WebService) erreichbar sind +* Node.js & npm installiert \(z. B. v18–20) +* MySQL \(lokal oder erreichbar) +* Port 3000 freigegeben \(Firewall) +* IIS-Datei {{mapTypC.aspx}} vorhanden in C:  \(Server-IP mit Port 3000) +* Browser: Chrome ab Version 125.0.6420.142 empfohlen +* Karten Material vorhanden in: {{C:\inetpub\wwwroot\talas5\TileMap\mapTiles}} !docs/screenshots/mapTiles.png|alt=mapTiles! Falls nicht vorhanden hier downloaden: http://10.10.0.28/produkte/TALAS.map/mapTiles.zip + +---- +h2. {anchor:integration-in-talas.web}🔗 Integration in TALAS.web +!docs/screenshots/iframe-in-talas2.png|alt=iFrame-Integration! + +* Die App wird in einem *iFrame* geladen +* Startet über {{?m=X&u=Y}} für Map-/User-ID +* Rechte und Inhalte werden automatisch geladen +{noformat} +z.B. +`http://10.10.0.13/talas5/MessagesMap/mapTypC.aspx?m=12&u=484`{noformat} + +---- +h2. {anchor:schritt-für-schritt-nodemap-auf-dem-server-installieren}🪛 Schritt-für-Schritt: NodeMap auf dem Server installieren +---- +h2. {anchor:schnelles-deployment-über-zip-paket}📦 Schnelles Deployment über ZIP-Paket +Ein fertiges Deployment-Bundle für jede Version \(z. B. {{NodeMap V1.1.260.zip}}) ist auf dem internen SharePoint verfügbar: + +📁 [Masterkarte V2 setup files|https://littwinsystemtechnik.sharepoint.com/sites/LittwinSystemtechnik/Freigegebene%20Dokumente/Forms/AllItems.aspx?id=%2Fsites%2FLittwinSystemtechnik%2FFreigegebene%20Dokumente%2FProjekte%2FMasterkarte%20V2%20setup%20files&csf=1&web=1&e=Sm1wwt&CID=9291bb06%2Dc869%2D4e30%2D8efa%2D8cda40df3cd6&FolderCTID=0x0120009C4F8227D6A11D4E89F1CCB9E517F488] + +h4. {anchor:ablauf}📂 Ablauf: +# 🛑 *Dienst beenden* +#* Vor dem Update muss der bestehende Windows-Dienst {{NodeMapService}} beendet werden, +um Dateikonflikte beim Löschen zu vermeiden. !docs/screenshots/Dienst-beenden.png|alt=Dienst beenden! +# 🔍 *Prüfen, ob passende {{node_modules-v1.1.xxx.zip}} Datei vorhanden ist* +#* Wenn *nicht vorhanden* → {{C:\inetpub\wwwroot\talas5\nodeMap}} komplett löschen +#* Wenn *vorhanden* → nur {{node_modules-v1.1.xxx.zip}} und {{node_modules}} Verzeichnis behalten, Rest löschen +💡 *Tipp:* {{node_modules-v1.1.xxx.zip}} nach Entpacken und in node_modules umbenennen\! +# 📦 *ZIP entpacken* +#* {{NodeMap V1.1.260.zip}} entpacken +Nach dem alles entpakt ist, dann sieht das so aus !docs/screenshots/nodeMap-inhalt.png|alt=NodeMap Inhalt! +# 🚀 *Dienst starten* +#* Windows-Dienst {{NodeMapService}} wieder starten + +---- +h2. {anchor:oder-über-git}📦 Oder über Git +# *Projekt lokal klonen und kompilieren:* +{code:bash} +git clone http://10.10.0.12:3000/ISA/nodeMap +cd nodeMap # zu den Verzeichnis wechseln +npm install # Abhängigkeiten installieren (lädt alle Pakete aus package.json) +npm run build # Erstellt ein optimiertes Produktions-Build im Ordner .next/ +{code} +# *ZIP-Paket vorbereiten \(lokal):* + +* Verzeichnis {{.next/}} +* Verzeichnisse {{public/}}, {{node_modules/}} falls auf dem Server nicht vorhanden sind oder etwas hinzugefügt wurde \(Bilder oder Bibliothek) +* Dateien {{.env.production}}, {{package.json}} falls auf dem Server nicht vorhanden sind oder etwas hinzugefügt wurde \(Umgebungsvariablen oder Bibliothek) +* {{nssm.exe}}, {{StartNodeApp.bat}}, {{Start-Dev.ps1}} um Windows Dienst zu erstellen falls noch nicht vorhanden ist Download: [nssm|https://littwinsystemtechnik.sharepoint.com/:f:/r/sites/LittwinSystemtechnik/Freigegebene%20Dokumente/Projekte/Masterkarte%20V2%20setup%20files?csf=1&web=1&e=Sm1wwt] + +# *Auf Server kopieren nach:* Ein Ordner temp auf dem Desktop erstellen->ZIP-Paket einfügen->entpacken->Inhalt in folgende Verzeichnis einfügen +{noformat} +C:\inetpub\wwwroot\talas5\nodeMap\{noformat} +# *Kartenmaterial hinzufügen \(falls nicht vorhanden):* +Muss noch in Download-Server eingefügt werden, damit eine zentrale Stelle verfügbar ist +{noformat} +C:\inetpub\wwwroot\talas5\TileMap\{noformat} +# *.env.production konfigurieren* +Die Datei {{.env.production}} enthält alle benötigten Verbindungs\- und Betriebsvariablen wie z. B. Datenbank-Zugang, Pfade und Mock-Option. +➡ Vollständige Anleitung & Beispieldatei: [.env.production|docs/guide/env.md] +# *Dienst registrieren falls nicht vorhanden* + +* Mit {{nssm.exe}} Windows-Dienst „nodeMapService“ erstellen +* Ziel: {{StartNodeApp.bat}} +* Anleitung: [nssm|https://littwinsystemtechnik.sharepoint.com/:f:/r/sites/LittwinSystemtechnik/Freigegebene%20Dokumente/Projekte/Masterkarte%20V2%20setup%20files?csf=1&web=1&e=Sm1wwt] + +# *Starten:* Dienst starten , falls vorhanden einmal beenden und neustarten +# *Im Browser testen:* +{noformat} +http:///talas5/MessagesMap/mapTypC.aspx?m=IdMap&u=IdUser +z.B. +http:///talas5/MessagesMap/mapTypC.aspx?m=12&u=484{noformat} + +---- +h2. {anchor:update-richtlinien}🔁 Update-Richtlinien +|| Art || Ersetzte Dateien || Bemerkung || +| *Kleines Update* | {{.next/}} | {{node_modules}} nicht nötig | +| *Großes Update* | alle Dateien \(wie Neuinstallation) | Dienst ggf. neu registrieren | + +h3. {anchor:empfohlener-ablauf-für-kleines-update}Empfohlener Ablauf für kleines Update: +# {{.next/}} Verzeichnis nach Kompilieren kopieren und auf dem Server einfügen +# Dienst neu starten +# Im Browser testen: {{http:///talas5/MessagesMap/mapTypC.aspx?m=IdMap&u=IdUser}} + +---- +h2. {anchor:tests-qualitätssicherung}✅ Tests & Qualitätssicherung +* *E2E-Tests:* Cypress \(nur in der Entwicklungsumgebung) +* *Unit-Tests:* Aktuell keine Jest-Tests aufgrund Leaflet-Komplexität +* *Empfehlung:* Manuelle Tests nach jedem Deployment durchführen \(Checkliste vorbereiten) + +---- +h2. {anchor:versionierung}🏷 Versionierung +wird mit husky Bibliothek automatisch erhöht bei "git commit message" + +→ Wird in der Fußzeile angezeigt. Die Version wird automatisch erhöht über ein Script \({{scripts/bumpVersion.js}}), das per Husky vor jedem Commit ausgeführt wird. +Die Version steht sowohl in {{package.json}} als auch in {{config/appVersion.js}}. + +---- +h2. {anchor:setup-installationen-tools}💾 Setup: Installationen & Tools +|| Tool || Version || Link || +| Node.js | 20.12.1 | [nodejs|https://littwinsystemtechnik.sharepoint.com/:f:/r/sites/LittwinSystemtechnik/Freigegebene%20Dokumente/Projekte/Masterkarte%20V2%20setup%20files?csf=1&web=1&e=Sm1wwt] | +| Chrome | optional | [Chrome|https://littwinsystemtechnik.sharepoint.com/:f:/r/sites/LittwinSystemtechnik/Freigegebene%20Dokumente/Projekte/Masterkarte%20V2%20setup%20files?csf=1&web=1&e=Sm1wwt] | +| NSSM.exe | 2.24 | [nssm|https://littwinsystemtechnik.sharepoint.com/:f:/r/sites/LittwinSystemtechnik/Freigegebene%20Dokumente/Projekte/Masterkarte%20V2%20setup%20files?csf=1&web=1&e=Sm1wwt] | + +{quote} +Hinweis: Die Datei {{MapTypC.aspx}} in TALAS lädt NodeMap als iFrame über Port 3000. +Wenn die Seite nicht angezeigt wird, bitte sicherstellen: + +* Port 3000 ist in der Firewall freigegeben +* Die IP im Scriptteil von {{MapTypC.aspx}} ist aktuell \(z. B. {{10.10.0.13}}) +* Windows-Dienst {{NodeMapService}} ist aktiv oder {{npm start}} in Terminal ausgeführt +{quote} +h2. {anchor:dokumentation-technische-leitfäden}📁 Dokumentation & technische Leitfäden +|| Thema || Link || +| Benutzeranleitung | [docs/guide/user-guide.md] | +| Architekturübersicht | [architecture.md|docs/architecture.md] | +| Projektstruktur | [project-structure.md|docs/guide/project-structure.md] | +| Webservices \(TALAS) | [webservices.md|docs/guide/webservices.md] | +| Umgebungsvariablen | [env.md|docs/guide/env.md] | +| Mockdaten-Modus | [mock-data.md|docs/guide/mock-data.md] | +| Zustandverwaltung \(Redux) | [redux-zustand.md|docs/guide/redux-zustand.md] | +| Abhängigkeiten | [dependencies.md|docs/guide/dependencies.md] | +| Lokale Entwicklung | [setup-dev.md|docs/guide/setup-dev.md] | +| FAQ & Fehlerbehandlung | [faq.md|docs/guide/faq.md] | +| Glossar | [faq.md|docs/guide/glossar.md] | diff --git a/README.html b/README.html new file mode 100644 index 000000000..f8499a5a5 --- /dev/null +++ b/README.html @@ -0,0 +1,778 @@ + +README.md + + + + + + + + + + + + +
+

🌍 NodeMap – Kartenvisualisierung für TALAS.web (Next.js, Leaflet, Redux)

+

NodeMap ist eine modulare Kartenanwendung zur Visualisierung und Bearbeitung von GIS-Daten, POIs und +Gerätestatus in einer interaktiven Leaflet-Karte.

+
+

📘 Für Entwickler:
+Die technische Dokumentation (Architektur, Redux, Komponenten, etc.) befindet sich in:
+/docs/README.md

+
+

🌍 Live-Vorschau der Karte

+

Startansicht der NodeMap Karte

+
+
+

🖥 Entwicklung & Test unter Windows 11 mit Node.js v18.17.1 und IIS
+📦 MySQL 8.0 läuft lokal in einem Docker-Container (nur für Entwicklung)
+🗄 Produktionsumgebung: TALAS.web und MySQL Server unter Windows Server

+
+
+

Technologie-Stack

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TechnologieZweck
Next.jsReact-Framework (Frontend/SSR)
LeafletKartendarstellung
Redux ToolkitZustandverwaltung
Tailwind CSSStyling
MySQLDatenbank
Node.js / IISServer und Auslieferung
+

🧭 Zielumgebung

+
    +
  • Windows-Produktionsserver (offline, kein Internet)
  • +
  • Kommunikation nur im lokalen Netzwerk
  • +
  • Nutzerzugriff per VPN + Remote Desktop (RDP)
  • +
  • Integration per iFrame in TALAS.web
  • +
+
+

🔄 Wie funktioniert das System?

+

Die Anwendung wird von TALAS.web im iFrame geladen. Die URL enthält Parameter für Map- und +User-ID.
+NodeMap lädt anschließend Daten über WebServices und MySQL.
+➡ Details zur Architektur: docs/architecture.md

+
+

⚙️ Kartenquellen-Konfiguration (public/config.json)

+

Die Datei public/config.json steuert, welche Kartenquelle (z.B. OSM oder lokale Tiles) für die +Leaflet-Karte verwendet wird.

+

Beispiel:

+
{ + "//info": "tileSources: 'local' für offline, 'osm' für online", + "tileSources": { + "local": "http://localhost/talas5/TileMap/mapTiles/{z}/{x}/{y}.png", + "osm": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" + }, + "active": "osm" +} +
+
    +
  • Mit active kann zwischen Online- und Offline-Karten umgeschaltet werden.
  • +
  • Die Datei wird beim Start der App automatisch geladen.
  • +
  • Für Offline-Betrieb muss das lokale Kartenmaterial vorhanden sein (siehe Installationsanleitung).
  • +
+
+

🧰 Erstinstallation auf Server

+

Voraussetzungen

+
    +
  • Windows Server mit IIS
  • +
  • Sicherstellen, dass alle TALAS.web API-Endpunkte(WebService) erreichbar sind
  • +
  • Node.js & npm installiert (z. B. v18–20)
  • +
  • MySQL (lokal oder erreichbar)
  • +
  • Port 3000 freigegeben (Firewall)
  • +
  • IIS-Datei mapTypC.aspx vorhanden in C:\inetpub\wwwroot\talas5\MessagesMap\ +(Server-IP mit Port 3000)
  • +
  • Browser: Chrome ab Version 125.0.6420.142 empfohlen
  • +
  • Karten Material vorhanden in: C:\inetpub\wwwroot\talas5\TileMap\mapTiles +mapTiles Falls nicht vorhanden hier downloaden: +http://10.10.0.28/produkte/TALAS.map/mapTiles.zip
  • +
+
+

🔗 Integration in TALAS.web

+

iFrame-Integration

+
    +
  • Die App wird in einem iFrame geladen
  • +
  • Startet über ?m=X&u=Y für Map-/User-ID
  • +
  • Rechte und Inhalte werden automatisch geladen
    z.B. +`http://10.10.0.13/talas5/MessagesMap/mapTypC.aspx?m=12&u=484` +
    +
  • +
+
+

🪛 Schritt-für-Schritt: NodeMap auf dem Server installieren

+
+

📦 Schnelles Deployment über ZIP-Paket

+

Ein fertiges Deployment-Bundle für jede Version (z. B. NodeMap V1.1.260.zip) ist auf dem internen +SharePoint verfügbar:

+

📁 +Masterkarte V2 setup files

+

📂 Ablauf:

+
    +
  1. +

    🛑 Dienst beenden

    +
      +
    • Vor dem Update muss der bestehende Windows-Dienst NodeMapService beendet werden,
      +um Dateikonflikte beim Löschen zu vermeiden. +Dienst beenden
    • +
    +
  2. +
  3. +

    🔍 Prüfen, ob passende node_modules-v1.1.xxx.zip Datei vorhanden ist

    +
      +
    • Wenn nicht vorhandenC:\inetpub\wwwroot\talas5\nodeMap komplett löschen
    • +
    • Wenn vorhanden → nur node_modules-v1.1.xxx.zip und node_modules Verzeichnis behalten, +Rest löschen
      +💡 Tipp: node_modules-v1.1.xxx.zip nach Entpacken und in node_modules umbenennen!
    • +
    +
  4. +
  5. +

    📦 ZIP entpacken

    +
      +
    • NodeMap V1.1.260.zip entpacken
      +Nach dem alles entpakt ist, dann sieht das so aus +NodeMap Inhalt
    • +
    +
  6. +
  7. +

    🚀 Dienst starten

    +
      +
    • Windows-Dienst NodeMapService wieder starten
    • +
    +
  8. +
+
+

📦 Oder über Git

+
    +
  1. +

    Projekt lokal klonen und kompilieren:

    +
    git clone http://10.10.0.12:3000/ISA/nodeMap +cd nodeMap # zu den Verzeichnis wechseln +npm install # Abhängigkeiten installieren (lädt alle Pakete aus package.json) +npm run build # Erstellt ein optimiertes Produktions-Build im Ordner .next/ +
    +
  2. +
  3. +

    ZIP-Paket vorbereiten (lokal):

    +
  4. +
+
    +
  • Verzeichnis .next/
  • +
  • Verzeichnisse public/, node_modules/ falls auf dem Server nicht vorhanden sind oder etwas +hinzugefügt wurde (Bilder oder Bibliothek)
  • +
  • Dateien .env.production, package.json falls auf dem Server nicht vorhanden sind oder etwas +hinzugefügt wurde (Umgebungsvariablen oder Bibliothek)
  • +
  • nssm.exe, StartNodeApp.bat, Start-Dev.ps1 um Windows Dienst zu erstellen falls noch nicht +vorhanden ist Download: +nssm
  • +
+
    +
  1. +

    Auf Server kopieren nach: Ein Ordner temp auf dem Desktop erstellen->ZIP-Paket +einfügen->entpacken->Inhalt in folgende Verzeichnis einfügen

    +
    C:\inetpub\wwwroot\talas5\nodeMap\ +
    +
  2. +
  3. +

    Kartenmaterial hinzufügen (falls nicht vorhanden):

    +

    Muss noch in Download-Server eingefügt werden, damit eine zentrale Stelle verfügbar ist

    +
    C:\inetpub\wwwroot\talas5\TileMap\ +
    +
  4. +
  5. +

    .env.production konfigurieren

    +

    Die Datei .env.production enthält alle benötigten Verbindungs- und Betriebsvariablen wie z. B. +Datenbank-Zugang, Pfade und Mock-Option.

    +

    ➡ Vollständige Anleitung & Beispieldatei: .env.production

    +
  6. +
  7. +

    Dienst registrieren falls nicht vorhanden

    +
  8. +
+
    +
  • Mit nssm.exe Windows-Dienst „nodeMapService“ erstellen
  • +
  • Ziel: StartNodeApp.bat
  • +
  • Anleitung: +nssm
  • +
+
    +
  1. +

    Starten: Dienst starten , falls vorhanden einmal beenden und neustarten

    +
  2. +
  3. +

    Im Browser testen:

    +
    http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=IdMap&u=IdUser +z.B. +http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=12&u=484 +
    +
  4. +
+
+

🔁 Update-Richtlinien

+ + + + + + + + + + + + + + + + + + + + +
ArtErsetzte DateienBemerkung
Kleines Update.next/node_modules nicht nötig
Großes Updatealle Dateien (wie Neuinstallation)Dienst ggf. neu registrieren
+

Empfohlener Ablauf für kleines Update:

+
    +
  1. .next/ Verzeichnis nach Kompilieren kopieren und auf dem Server einfügen
  2. +
  3. Dienst neu starten
  4. +
  5. Im Browser testen: http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=IdMap&u=IdUser
  6. +
+
+

✅ Tests & Qualitätssicherung

+
    +
  • E2E-Tests: Cypress (nur in der Entwicklungsumgebung)
  • +
  • Unit-Tests: Aktuell keine Jest-Tests aufgrund Leaflet-Komplexität
  • +
  • Empfehlung: Manuelle Tests nach jedem Deployment durchführen (Checkliste vorbereiten)
  • +
+
+

🏷 Versionierung

+

wird mit husky Bibliothek automatisch erhöht bei "git commit message"

+

→ Wird in der Fußzeile angezeigt. Die Version wird automatisch erhöht über ein Script +(scripts/bumpVersion.js), das per Husky vor jedem Commit ausgeführt wird.
+Die Version steht sowohl in package.json als auch in config/appVersion.js.

+
+

💾 Setup: Installationen & Tools

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ToolVersionLink
Node.js20.12.1nodejs
ChromeoptionalChrome
NSSM.exe2.24nssm
+
+

Hinweis: Die Datei MapTypC.aspx in TALAS lädt NodeMap als iFrame über Port 3000.
+Wenn die Seite nicht angezeigt wird, bitte sicherstellen:

+
    +
  • Port 3000 ist in der Firewall freigegeben
  • +
  • Die IP im Scriptteil von MapTypC.aspx ist aktuell (z. B. 10.10.0.13)
  • +
  • Windows-Dienst NodeMapService ist aktiv oder npm start in Terminal ausgeführt
  • +
+
+

📁 Dokumentation & technische Leitfäden

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ThemaLink
Benutzeranleitungdocs/guide/user-guide.md
Architekturübersichtarchitecture.md
Projektstrukturproject-structure.md
Webservices (TALAS)webservices.md
Umgebungsvariablenenv.md
Mockdaten-Modusmock-data.md
Zustandverwaltung (Redux)redux-zustand.md
Abhängigkeitendependencies.md
Lokale Entwicklungsetup-dev.md
FAQ & Fehlerbehandlungfaq.md
Glossarfaq.md
+ +
+ + + \ No newline at end of file diff --git a/README.pdf b/README.pdf new file mode 100644 index 000000000..9705bcdf7 Binary files /dev/null and b/README.pdf differ diff --git a/docs/TODO.md b/TODO.md similarity index 100% rename from docs/TODO.md rename to TODO.md diff --git a/convert-md-to-confluence.ps1 b/convert-md-to-confluence.ps1 new file mode 100644 index 000000000..d4e116351 --- /dev/null +++ b/convert-md-to-confluence.ps1 @@ -0,0 +1,19 @@ +# PowerShell-Skript: Markdown zu Confluence-Wiki konvertieren +# Rekursiv alle .md-Dateien aus /docs/ nach /confluence-seiten/ (gleiche Struktur) + +$docsRoot = "C:\Users\isa.LTW\Desktop\17.09.2025\NodeMap\17.09.2025 NodeMap V1.1.350\docs" +$outRoot = "C:\Users\isa.LTW\Desktop\17.09.2025\NodeMap\17.09.2025 NodeMap V1.1.350\confluence-seiten" + +# Alle .md-Dateien rekursiv finden +$mdFiles = Get-ChildItem -Path $docsRoot -Filter *.md -Recurse + +foreach ($md in $mdFiles) { + $relPath = $md.FullName.Substring($docsRoot.Length).TrimStart('\','/') + $outPath = Join-Path $outRoot ($relPath -replace ".md$", ".confluence.txt") + $outDir = Split-Path $outPath -Parent + if (-not (Test-Path $outDir)) { New-Item -ItemType Directory -Path $outDir | Out-Null } + Write-Host "Konvertiere: $($md.FullName) -> $outPath" + pandoc "$($md.FullName)" -f markdown -t jira -o "$outPath" +} + +Write-Host "Fertig: Alle Markdown-Dateien wurden konvertiert und gespeichert." diff --git a/docs/NodeMap.pdf b/docs/NodeMap.pdf deleted file mode 100644 index 423f61acf..000000000 Binary files a/docs/NodeMap.pdf and /dev/null differ diff --git a/docs/DynamischeMarkerErklaerung.md b/docs/architecture/DynamischeMarkerErklaerung.md similarity index 100% rename from docs/DynamischeMarkerErklaerung.md rename to docs/architecture/DynamischeMarkerErklaerung.md diff --git a/docs/architecture.md b/docs/architecture/architecture.md similarity index 100% rename from docs/architecture.md rename to docs/architecture/architecture.md diff --git a/fix-confluence-headings.ps1 b/fix-confluence-headings.ps1 new file mode 100644 index 000000000..f10215176 --- /dev/null +++ b/fix-confluence-headings.ps1 @@ -0,0 +1,30 @@ +# PowerShell-Skript: Korrigiere Confluence-Überschriften +# Für alle .confluence.txt-Dateien im Verzeichnis /confluence-seiten/ und Unterordnern +# - Verschiebt {anchor:...} in eine eigene Zeile vor die Überschrift +# - Überschriften wie h1., h2., ... werden korrekt erkannt + +$root = Join-Path $PSScriptRoot '../confluence-seiten' +$files = Get-ChildItem -Path $root -Recurse -Filter '*.confluence.txt' + + +foreach ($file in $files) { + $lines = Get-Content $file.FullName + $newLines = @() + foreach ($line in $lines) { + # Nur Zeilen mit hX. {anchor:...}... + if ($line -match '^(h[1-6]\. )\{anchor:([^}]+)\}(.*)$') { + $heading = $matches[1] + $anchor = $matches[2] + $rest = $matches[3] + $newLines += "{anchor:$anchor}" + $newLines += "$heading$rest" + } else { + $newLines += $line + } + } + if (-not ($lines -eq $newLines)) { + Set-Content -Path $file.FullName -Value $newLines -Encoding UTF8 + Write-Host "Korrigiert: $($file.FullName)" + } +} +Write-Host "Fertig. Alle Überschriften im Confluence-Wiki-Format korrigiert." \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f9f550804..55b7355db 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "nodemap", - "version": "1.1.392", + "version": "1.1.393", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "nodemap", - "version": "1.1.392", + "version": "1.1.393", "dependencies": { "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", diff --git a/package.json b/package.json index 0504863ce..454d098de 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "nodemap", - "version": "1.1.392", + "version": "1.1.393", "dependencies": { "@emotion/react": "^11.13.3", "@emotion/styled": "^11.13.0", diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/README.html new file mode 100644 index 000000000..f8499a5a5 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/README.html @@ -0,0 +1,778 @@ + +README.md + + + + + + + + + + + + +
+

🌍 NodeMap – Kartenvisualisierung für TALAS.web (Next.js, Leaflet, Redux)

+

NodeMap ist eine modulare Kartenanwendung zur Visualisierung und Bearbeitung von GIS-Daten, POIs und +Gerätestatus in einer interaktiven Leaflet-Karte.

+
+

📘 Für Entwickler:
+Die technische Dokumentation (Architektur, Redux, Komponenten, etc.) befindet sich in:
+/docs/README.md

+
+

🌍 Live-Vorschau der Karte

+

Startansicht der NodeMap Karte

+
+
+

🖥 Entwicklung & Test unter Windows 11 mit Node.js v18.17.1 und IIS
+📦 MySQL 8.0 läuft lokal in einem Docker-Container (nur für Entwicklung)
+🗄 Produktionsumgebung: TALAS.web und MySQL Server unter Windows Server

+
+
+

Technologie-Stack

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TechnologieZweck
Next.jsReact-Framework (Frontend/SSR)
LeafletKartendarstellung
Redux ToolkitZustandverwaltung
Tailwind CSSStyling
MySQLDatenbank
Node.js / IISServer und Auslieferung
+

🧭 Zielumgebung

+
    +
  • Windows-Produktionsserver (offline, kein Internet)
  • +
  • Kommunikation nur im lokalen Netzwerk
  • +
  • Nutzerzugriff per VPN + Remote Desktop (RDP)
  • +
  • Integration per iFrame in TALAS.web
  • +
+
+

🔄 Wie funktioniert das System?

+

Die Anwendung wird von TALAS.web im iFrame geladen. Die URL enthält Parameter für Map- und +User-ID.
+NodeMap lädt anschließend Daten über WebServices und MySQL.
+➡ Details zur Architektur: docs/architecture.md

+
+

⚙️ Kartenquellen-Konfiguration (public/config.json)

+

Die Datei public/config.json steuert, welche Kartenquelle (z.B. OSM oder lokale Tiles) für die +Leaflet-Karte verwendet wird.

+

Beispiel:

+
{ + "//info": "tileSources: 'local' für offline, 'osm' für online", + "tileSources": { + "local": "http://localhost/talas5/TileMap/mapTiles/{z}/{x}/{y}.png", + "osm": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" + }, + "active": "osm" +} +
+
    +
  • Mit active kann zwischen Online- und Offline-Karten umgeschaltet werden.
  • +
  • Die Datei wird beim Start der App automatisch geladen.
  • +
  • Für Offline-Betrieb muss das lokale Kartenmaterial vorhanden sein (siehe Installationsanleitung).
  • +
+
+

🧰 Erstinstallation auf Server

+

Voraussetzungen

+
    +
  • Windows Server mit IIS
  • +
  • Sicherstellen, dass alle TALAS.web API-Endpunkte(WebService) erreichbar sind
  • +
  • Node.js & npm installiert (z. B. v18–20)
  • +
  • MySQL (lokal oder erreichbar)
  • +
  • Port 3000 freigegeben (Firewall)
  • +
  • IIS-Datei mapTypC.aspx vorhanden in C:\inetpub\wwwroot\talas5\MessagesMap\ +(Server-IP mit Port 3000)
  • +
  • Browser: Chrome ab Version 125.0.6420.142 empfohlen
  • +
  • Karten Material vorhanden in: C:\inetpub\wwwroot\talas5\TileMap\mapTiles +mapTiles Falls nicht vorhanden hier downloaden: +http://10.10.0.28/produkte/TALAS.map/mapTiles.zip
  • +
+
+

🔗 Integration in TALAS.web

+

iFrame-Integration

+
    +
  • Die App wird in einem iFrame geladen
  • +
  • Startet über ?m=X&u=Y für Map-/User-ID
  • +
  • Rechte und Inhalte werden automatisch geladen
    z.B. +`http://10.10.0.13/talas5/MessagesMap/mapTypC.aspx?m=12&u=484` +
    +
  • +
+
+

🪛 Schritt-für-Schritt: NodeMap auf dem Server installieren

+
+

📦 Schnelles Deployment über ZIP-Paket

+

Ein fertiges Deployment-Bundle für jede Version (z. B. NodeMap V1.1.260.zip) ist auf dem internen +SharePoint verfügbar:

+

📁 +Masterkarte V2 setup files

+

📂 Ablauf:

+
    +
  1. +

    🛑 Dienst beenden

    +
      +
    • Vor dem Update muss der bestehende Windows-Dienst NodeMapService beendet werden,
      +um Dateikonflikte beim Löschen zu vermeiden. +Dienst beenden
    • +
    +
  2. +
  3. +

    🔍 Prüfen, ob passende node_modules-v1.1.xxx.zip Datei vorhanden ist

    +
      +
    • Wenn nicht vorhandenC:\inetpub\wwwroot\talas5\nodeMap komplett löschen
    • +
    • Wenn vorhanden → nur node_modules-v1.1.xxx.zip und node_modules Verzeichnis behalten, +Rest löschen
      +💡 Tipp: node_modules-v1.1.xxx.zip nach Entpacken und in node_modules umbenennen!
    • +
    +
  4. +
  5. +

    📦 ZIP entpacken

    +
      +
    • NodeMap V1.1.260.zip entpacken
      +Nach dem alles entpakt ist, dann sieht das so aus +NodeMap Inhalt
    • +
    +
  6. +
  7. +

    🚀 Dienst starten

    +
      +
    • Windows-Dienst NodeMapService wieder starten
    • +
    +
  8. +
+
+

📦 Oder über Git

+
    +
  1. +

    Projekt lokal klonen und kompilieren:

    +
    git clone http://10.10.0.12:3000/ISA/nodeMap +cd nodeMap # zu den Verzeichnis wechseln +npm install # Abhängigkeiten installieren (lädt alle Pakete aus package.json) +npm run build # Erstellt ein optimiertes Produktions-Build im Ordner .next/ +
    +
  2. +
  3. +

    ZIP-Paket vorbereiten (lokal):

    +
  4. +
+
    +
  • Verzeichnis .next/
  • +
  • Verzeichnisse public/, node_modules/ falls auf dem Server nicht vorhanden sind oder etwas +hinzugefügt wurde (Bilder oder Bibliothek)
  • +
  • Dateien .env.production, package.json falls auf dem Server nicht vorhanden sind oder etwas +hinzugefügt wurde (Umgebungsvariablen oder Bibliothek)
  • +
  • nssm.exe, StartNodeApp.bat, Start-Dev.ps1 um Windows Dienst zu erstellen falls noch nicht +vorhanden ist Download: +nssm
  • +
+
    +
  1. +

    Auf Server kopieren nach: Ein Ordner temp auf dem Desktop erstellen->ZIP-Paket +einfügen->entpacken->Inhalt in folgende Verzeichnis einfügen

    +
    C:\inetpub\wwwroot\talas5\nodeMap\ +
    +
  2. +
  3. +

    Kartenmaterial hinzufügen (falls nicht vorhanden):

    +

    Muss noch in Download-Server eingefügt werden, damit eine zentrale Stelle verfügbar ist

    +
    C:\inetpub\wwwroot\talas5\TileMap\ +
    +
  4. +
  5. +

    .env.production konfigurieren

    +

    Die Datei .env.production enthält alle benötigten Verbindungs- und Betriebsvariablen wie z. B. +Datenbank-Zugang, Pfade und Mock-Option.

    +

    ➡ Vollständige Anleitung & Beispieldatei: .env.production

    +
  6. +
  7. +

    Dienst registrieren falls nicht vorhanden

    +
  8. +
+
    +
  • Mit nssm.exe Windows-Dienst „nodeMapService“ erstellen
  • +
  • Ziel: StartNodeApp.bat
  • +
  • Anleitung: +nssm
  • +
+
    +
  1. +

    Starten: Dienst starten , falls vorhanden einmal beenden und neustarten

    +
  2. +
  3. +

    Im Browser testen:

    +
    http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=IdMap&u=IdUser +z.B. +http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=12&u=484 +
    +
  4. +
+
+

🔁 Update-Richtlinien

+ + + + + + + + + + + + + + + + + + + + +
ArtErsetzte DateienBemerkung
Kleines Update.next/node_modules nicht nötig
Großes Updatealle Dateien (wie Neuinstallation)Dienst ggf. neu registrieren
+

Empfohlener Ablauf für kleines Update:

+
    +
  1. .next/ Verzeichnis nach Kompilieren kopieren und auf dem Server einfügen
  2. +
  3. Dienst neu starten
  4. +
  5. Im Browser testen: http://<ip>/talas5/MessagesMap/mapTypC.aspx?m=IdMap&u=IdUser
  6. +
+
+

✅ Tests & Qualitätssicherung

+
    +
  • E2E-Tests: Cypress (nur in der Entwicklungsumgebung)
  • +
  • Unit-Tests: Aktuell keine Jest-Tests aufgrund Leaflet-Komplexität
  • +
  • Empfehlung: Manuelle Tests nach jedem Deployment durchführen (Checkliste vorbereiten)
  • +
+
+

🏷 Versionierung

+

wird mit husky Bibliothek automatisch erhöht bei "git commit message"

+

→ Wird in der Fußzeile angezeigt. Die Version wird automatisch erhöht über ein Script +(scripts/bumpVersion.js), das per Husky vor jedem Commit ausgeführt wird.
+Die Version steht sowohl in package.json als auch in config/appVersion.js.

+
+

💾 Setup: Installationen & Tools

+ + + + + + + + + + + + + + + + + + + + + + + + + +
ToolVersionLink
Node.js20.12.1nodejs
ChromeoptionalChrome
NSSM.exe2.24nssm
+
+

Hinweis: Die Datei MapTypC.aspx in TALAS lädt NodeMap als iFrame über Port 3000.
+Wenn die Seite nicht angezeigt wird, bitte sicherstellen:

+
    +
  • Port 3000 ist in der Firewall freigegeben
  • +
  • Die IP im Scriptteil von MapTypC.aspx ist aktuell (z. B. 10.10.0.13)
  • +
  • Windows-Dienst NodeMapService ist aktiv oder npm start in Terminal ausgeführt
  • +
+
+

📁 Dokumentation & technische Leitfäden

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ThemaLink
Benutzeranleitungdocs/guide/user-guide.md
Architekturübersichtarchitecture.md
Projektstrukturproject-structure.md
Webservices (TALAS)webservices.md
Umgebungsvariablenenv.md
Mockdaten-Modusmock-data.md
Zustandverwaltung (Redux)redux-zustand.md
Abhängigkeitendependencies.md
Lokale Entwicklungsetup-dev.md
FAQ & Fehlerbehandlungfaq.md
Glossarfaq.md
+ +
+ + + \ No newline at end of file diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/README.html new file mode 100644 index 000000000..778c1b9ab --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/README.html @@ -0,0 +1,209 @@ +

📘 NodeMap – +Entwicklerdokumentation

+

Willkommen in der Entwicklerdokumentation für +NodeMap – einer modularen Kartenanwendung zur +Visualisierung und Bearbeitung von GIS-Daten, POIs und Gerätestatus in +einer interaktiven Leaflet-Karte.

+

Diese Anleitung führt dich Schritt für Schritt durch +die wichtigsten Themen für lokale Entwicklung, Architekturverständnis +und Erweiterung.

+
+

📚 Inhaltsverzeichnis

+

🔹 Einstieg & Übersicht

+ +

🧭 Architektur

+ +

⚙️ Konfiguration

+ +
+

⚙️ +Kartenquellen-Konfiguration (public/config.json)

+

Die Datei public/config.json steuert, welche +Kartenquelle (z.B. OSM oder lokale Tiles) für die Leaflet-Karte +verwendet wird.

+

Beispiel:

+
{
+  "//info": "tileSources: 'local' für offline, 'osm' für online",
+  "tileSources": {
+    "local": "http://localhost/talas5/TileMap/mapTiles/{z}/{x}/{y}.png",
+    "osm": "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
+  },
+  "active": "osm"
+}
+
    +
  • Mit active kann zwischen Online- und Offline-Karten +umgeschaltet werden.
  • +
  • Die Datei wird beim Start der App automatisch geladen.
  • +
  • Für Offline-Betrieb muss das lokale Kartenmaterial vorhanden sein +(siehe Installationsanleitung).
  • +
+

🧩 Hauptkomponenten

+ +

🗺️ Kontextmenü

+ +

➕ POIs

+ +

📏 GIS-Polylinien

+ +

💡 UI-Komponenten

+ +

🧪 Weitere Tools

+ +
+

Projektüberblick

+

NodeMap wird von TALAS.web über einen iFrame +geladen. Die Anwendung basiert auf folgenden Technologien:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
TechnologieZweck
Next.jsReact-Framework (Frontend/SSR)
LeafletKartendarstellung
Redux ToolkitZustandverwaltung
Tailwind CSSStyling
MySQLDatenbank
Node.js / IISServer und Auslieferung
+

👉 Mehr zur Systemarchitektur: architecture.md

+
+

Projektstruktur & Setup

+

Zielsystem

+
    +
  • Offline-Umgebung
  • +
  • Windows-Server mit IIS
  • +
  • Datenzugriff über TALAS-Webservice oder lokale API
  • +
+

Lokale Entwicklung

+

Entwicklungs-Setup
+➡ Projektstruktur erklärt
+➡ Abhängigkeiten & Tools
+➡ Umgebungsvariablen (env-Dateien)

+
+

Webservices & API-Fluss

+

NodeMap verwendet zwei Quellen für Daten:

+
    +
  1. TALAS-WebServices (Port 80) – POIs, Geräte, Rechte, +Linien usw.
  2. +
  3. Lokale Next.js API (Port 3000) – direkte +Datenbankzugriffe via MySQL
  4. +
+

Webservices-Dokumentation

+
+

Zustandverwaltung Redux

+

Die komplette Anwendung verwendet Redux zur globalen +Zustandverwaltung.

+
    +
  • Architektur: Service → Thunk → Slice → Komponente
  • +
  • Beispiel: POIs, Marker, Linien, Rechte, Layer-Status
  • +
  • Redux DevTools werden unterstützt
  • +
+

Zustandverwaltung mit +Redux

+
+

Entwicklung & Testdaten

+

Zur Entwicklung ohne echte API stehen lokale Mockdaten zur +Verfügung:

+
    +
  • Aktivierung über +.env.development → NEXT_PUBLIC_USE_MOCKS=true
  • +
  • In .env.production sollte +NEXT_PUBLIC_USE_MOCKS=false gesetzt sein
  • +
  • Nutzung z. B. in pages/api/mocks/...
  • +
  • Hinweise im UI zeigen aktivierten Mockmodus
  • +
+

Mockdaten & Entwicklung

+
+

Fehlerbehandlung & Glossar

+

Typische Probleme (z. B. Webservice nicht erreichbar, Layer nicht +sichtbar) werden in der FAQ gesammelt.
+Zudem gibt es eine Begriffsliste zur Orientierung:

+

FAQ & häufige Fehler
+➡ Glossar

+
+

Hinweis zum Deployment

+

📦 Die Anleitung für Server-Installation und ZIP-Deployment findest +du in:
+➡ Root-README.md

+
+

Tipp

+

Wenn du neu im Projekt bist, beginne mit dem Kapitel +Projektstruktur & Setup und folge dann über die +Webservices bis zu den Komponenten.

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/DynamischeMarkerErklaerung.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/DynamischeMarkerErklaerung.html new file mode 100644 index 000000000..4ba435e5f --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/DynamischeMarkerErklaerung.html @@ -0,0 +1,122 @@ +

🗺️ +Dynamische Marker-Verwaltung in MapComponent.js (NodeMap)

+

Dieses Dokument erklärt, wie Marker dynamisch erstellt, verwaltet und +in MapComponent.js verwendet werden – inklusive Datenfluss +und OverlappingMarkerSpiderfier-Integration.

+
+

🔄 Dynamische +Marker-Erzeugung – Übersicht

+

Früher (statisch):

+
useLayerVisibility(map, talasMarkers, mapLayersVisibility, "TALAS", oms);
+

→ Jeder Marker-Typ war hart codiert.

+

Jetzt (dynamisch):

+
const { markerStates, layerRefs } = useDynamicDeviceLayers(
+  map,
+  GisSystemStatic,
+  mapLayersVisibility,
+  priorityConfig,
+  oms
+);
+
+

🔁 Datenfluss Schritt für +Schritt

+
    +
  1. MapComponent.js ruft den Hook +useDynamicDeviceLayers(...) auf.
  2. +
  3. Der Hook iteriert über GisSystemStatic +(Webservice-Liste aller Systeme).
  4. +
  5. Für jedes System wird createAndSetDevices(...) +aufgerufen.
  6. +
  7. Diese Funktion: +
      +
    • Holt Stations aus Redux (filtered by System-ID)
    • +
    • Erstellt Marker (Leaflet)
    • +
    • Rückgabe über Callback setMarkersFunction(markers)
    • +
  8. +
  9. Die Marker werden per setMarkerStates() +gespeichert.
  10. +
  11. In MapComponent.js können sie aus +markerStates[SystemName] gelesen werden.
  12. +
  13. Sichtbarkeit wird über Redux (mapLayersVisibility) +gesteuert.
  14. +
  15. Überlappende Marker werden über +checkOverlappingMarkers() + plusRoundIcon + +OMS angezeigt.
  16. +
+
+

📦 Marker-Aufbau

+

createAndSetDevices.js

+
    +
  • Filtert Stations (Points) aus +selectGisStationsStaticDistrict

  • +
  • Erstellt für jede gültige Station einen Marker:

    +
    const marker = L.marker([station.X, station.Y], { ... });
    +oms.addMarker(marker); // Spiderfier-fähig
  • +
  • Fügt Marker zur richtigen LayerGroup hinzu

  • +
  • Gibt alle Marker über Callback zurück

  • +
+
+

🕷️ OverlappingMarkerSpiderfier +(OMS)

+
    +
  • Initialisiert in useInitializeMap(...) in +MapComponent.js

  • +
  • Wird an useDynamicDeviceLayers übergeben

  • +
  • Marker werden dort registriert: +oms.addMarker(marker)

  • +
  • Bei Klick auf das PlusIcon:

    +
    plusMarker.on("click", () => oms.spiderfy(nearbyMarkers));
  • +
+
+

📘 Mermaid-Diagramm

+
flowchart TD
+    A1[MapComponent] --> B1[useDynamicDeviceLayers]
+    B1 --> C1[loop über GisSystemStatic]
+    C1 --> D1[createAndSetDevices]
+    D1 --> E1[Filter stations aus Redux]
+    E1 --> F1[erstelle Marker /Leaflet]
+    F1 --> G1[Marker in LayerGroup einfügen]
+    G1 --> H1[setMarkerStates im Hook]
+    H1 --> A2[markerStates zurück nach MapComponent]
+
+    A2 --> I1[Map aktualisiert Marker]
+    A2 --> I2[checkOverlappingMarkers mit OMS]
+
+

✅ Vorteile der neuen Lösung

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + +
VorteilBeschreibung
🔄 FlexibelNeue Geräte-Typen automatisch erkannt
📦 KompaktKein useState oder useLayerVisibility mehr +nötig
🧠 WartbarEine zentrale Logik statt doppelter Komponentenlogik
🕷️ IntegriertOMS funktioniert automatisch bei überlappenden Markern
+
+

Letztes Update: automatisch generiert mit ChatGPT (OpenAI)

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/README.html new file mode 100644 index 000000000..f66960cd2 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: docs/architecture

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/architecture.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/architecture.html new file mode 100644 index 000000000..a74222270 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/architecture.html @@ -0,0 +1,393 @@ + +

🧠 Architekturübersicht – +NodeMap

+

Dieses Dokument beschreibt die technische Gesamtarchitektur des +Projekts NodeMap, einer kartenbasierten Webanwendung +zur Anzeige, Bearbeitung und Verwaltung von GIS-Daten, POIs und +Gerätestatus.

+
+

⚙️ Technologie-Stack

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KomponenteBeschreibung
FrontendReact 18 + Next.js (App Router)
State-ManagementRedux Toolkit mit zentralem Store, Thunks & Slices
UITailwind CSS + Leaflet + React-Icons
Backend-AnbindungWebservices via WebServiceMap.asmx (IIS) + lokale +Next.js API für DB
DatenbankMySQL (Produktiv & Entwicklung, z. T. via Docker)
DeploymentWindows Server (IIS), optional per nssm als Dienst
+
+

🔄 Systemübersicht (Ablauf)

+
sequenceDiagram
+  participant Browser
+  participant TALASweb
+  participant NodeMap
+  participant MySQL
+
+  Browser->>TALASweb: mapTypC.aspx?m=12&u=484
+  TALASweb-->>Browser: iFrame lädt NodeMap
+  Browser->>NodeMap: Liest m & u aus URL
+  NodeMap->>TALASweb: WebService-Requests (5 APIs)
+  NodeMap->>MySQL: API-Anfragen zu POIs, Geräten, Linien
+  NodeMap-->>Browser: Interaktive Karte anzeigen
+
+
+

🗺️ Architekturüberblick

+
+------------------+       +------------------+       +------------------+
+|   Leaflet Map    | <---> |   Redux Store    | <---> |   Webservices    |
+| (Interaktivität) |       |  (Status & Data) |       |  (IIS, .asmx)    |
++------------------+       +------------------+       +------------------+
+        ^
+        |
+        v
++------------------+       +------------------+        +-------------------+
+|  POI-Komponenten | <---> |   Redux Slices   | <--->  | Next.js API-Routen|
+|   (Add/Edit)     |       | (z. B. poiSlice) |        |   (Datenbank)     |
++------------------+       +------------------+        +-------------------+
+
+

🔁 Datenfluss (Beispiel: POI +anzeigen)

+
    +
  1. Leaflet-Karte lädt bei MapComponent Mounting
  2. +
  3. Redux-Thunk fetchPoiMarkersThunk wird ausgelöst
  4. +
  5. Thunk ruft fetchPoiDataService.js (DB) oder Webservice +(IIS) auf
  6. +
  7. Ergebnisse werden im Slice readPoiMarkersStoreSlice +gespeichert
  8. +
  9. Komponenten lesen POI-Daten über useSelector(...) aus +dem Store
  10. +
  11. POIs werden als Marker in Leaflet gesetzt
  12. +
+
+

📁 Schlüsselfunktionen & +Module

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BereichDatei/ModulAufgabe
KartenlogikMapComponent.jsZentrale Initialisierung und Layer-Logik
Webservicesservices/webservice/Kommunikation mit TALAS V5 Webservice
Datenbankservices/database/Zugriff auf lokale Next.js-API & DB
POIsAddPOIModal.js, PoiUpdateModal.jsUI für POI-Erstellung & -Bearbeitung
Reduxredux/slices/, redux/thunks/, +redux/storeGlobaler State, API-Steuerung
Konfiguration.env.development,.env.production, +config.js, dynamic URLsIP, basePath, Ports
+
+

🧩 Besonderheiten

+
    +
  • Konfigurierbarer basePath:

  • +
  • Konfigurierbarer basePath:
    +Pfad wie /talas5 ist optional und wird jetzt in +public/config.json als basePath gepflegt +werden.
    +Die Konfiguration erfolgt je nach Umgebung über:

    +
      +
    • .env.development für lokale Entwicklung
    • +
    • .env.production für produktiven Einsatz
    • +
  • +
  • Rechteabhängige UI:
    +Funktionen (z. B. POI bearbeiten) basieren auf Benutzerrechten +(IdRight) vom Server.

  • +
  • Zentrale Komponentensteuerung:
    +Komponenten wie MapLayersControlPanel oder +CoordinatePopup kontrollieren Layer & +Interaktion.

  • +
  • Kontextmenü-Logik:
    +Marker & Polylinien besitzen eigene Kontextmenüs – dynamisch +zusammengesetzt und verwaltet.

  • +
+
+

📦 Versionierung & Builds

+
    +
  • Version wird mit Husky Bibliothek automatisch erhöhert in +scripts/bumpVersion.js
  • +
+
+

📚 Weiterführende +Dokumentation

+ +
+

Dynamische +Layer-Verwaltung mit Redux

+
flowchart TD
+    %% Webservice
+    subgraph Webservice
+        A1[GisSystemStatic API]
+        A2[GisStationsStaticDistrict API]
+    end
+
+    %% Redux
+    subgraph Redux
+        B1[fetchGisSystemStaticThunk]
+        B2[fetchGisStationsStaticDistrictThunk]
+        C1["gisSystemStaticSlice → selectGisSystemStatic"]
+        C2["gisStationsStaticDistrictSlice → selectGisStationsStaticDistrict"]
+        C3["mapLayersSlice → mapLayersVisibility"]
+    end
+
+    %% React
+    subgraph React-Komponente
+        D1[MapComponent.js]
+        D2["useEffect: dynamische Layer"]
+        D3["createAndSetDevices"]
+        D4["layerRefs (useRef)"]
+        D5["markerStates (useState)"]
+        D6["useEffect: Sichtbarkeit prüfen"]
+        D7["Map aktualisieren / add/remove"]
+        D8["checkOverlappingMarkers"]
+    end
+
+    %% Datenfluss
+    A1 --> B1 --> C1 --> D2
+    A2 --> B2 --> C2 --> D3
+    C3 --> D6
+    D2 --> D3
+    D3 --> D4
+    D3 --> D5
+    D5 --> D6
+    D6 --> D7
+    D6 --> D8
+    D7 --> D1
+
+
+
+
+
+

Jetzt (dynamisch & Redux-basiert): MapComponent.js ruft folgenden +Hook auf:

+

js Copy Edit const { markerStates, layerRefs } = +useDynamicDeviceLayers(map, GisSystemStatic, mapLayersVisibility, +priorityConfig, oms); useDynamicDeviceLayers.js verarbeitet die +GisSystemStatic-Liste:

+

Jedes System (z. B. “TALAS”, “ECI”, “Cisco”) bekommt einen eigenen +Marker-Layer.

+

Die Marker werden erstellt durch:

+

js Copy Edit createAndSetDevices(…) // Systemweise Marker erzeugen +createAndSetDevices.js:

+

Filtert alle Stations aus staticDistrictData, deren System === +IdSystem.

+

Erstellt Marker für jedes Gerät.

+

Bindet Popup, Kontextmenü, Styling, Bounce usw.

+

Ruft setMarkersFunction(markers) auf → Übergibt die Marker zurück an +den Hook.

+

Der Hook speichert:

+

js Copy Edit setMarkerStates((prev) => ({ …prev, [Name]: +newMarkers })); MapComponent.js hat dann:

+

Zugriff auf alle Marker dynamisch über markerStates (ein Objekt mit +Schlüssel = Systemname)

+

Sichtbarkeit und OverlappingMarkerSpiderfier werden damit +verarbeitet.

+
+

🔁 Die Geräte-Marker sind nicht mehr fest codiert, sondern werden +dynamisch erzeugt anhand der Webservice-Daten GisSystemStatic.

+

🔄 Sichtbarkeit (Checkbox im Control Panel) löst ein Event +visibilityChanged aus → MapComponent reagiert und rendert Marker +neu.

+

🕷️ Überlappende Marker werden mit checkOverlappingMarkers + +PlusRoundIcon verarbeitet.

+
flowchart TD
+    A1[MapComponent] --> B1[useDynamicDeviceLayers]
+    B1 --> C1[loop über GisSystemStatic]
+    C1 --> D1[createAndSetDevices]
+    D1 --> E1[Filter stations aus Redux]
+    E1 --> F1[erstelle Marker /Leaflet]
+    F1 --> G1[Marker in LayerGroup einfügen]
+    G1 --> H1[setMarkerStates im Hook]
+    H1 --> A2[markerStates zurück nach MapComponent]
+
+    A2 --> I1[Map aktualisiert Marker]
+    A2 --> I2[checkOverlappingMarkers mit OMS]
+
+

10.06.2025

+

Datenfluss-Konzept: +WebSocket ↔︎ Redux ↔︎ UI

+

Dieses Dokument beschreibt den technischen Ablauf des +Live-Datenflusses im NodeMap-Projekt, um neue Entwickler:innen beim +Onboarding zu unterstützen.

+

ᵀᵃᵗᵉᵖᵏᴼᵏᴼᵉ: +Architekturübersicht

+
sequenceDiagram
+    autonumber
+    participant WS_Server as WebSocket Server
+    participant WebService as TALAS WebService
+    participant Browser
+    participant ReduxStore as Redux Store
+    participant UI as React Leaflet UI
+
+    loop Alle 5 Sekunden
+        WS_Server->>WebService: fetch endpointX
+        alt Daten haben sich geändert
+            WS_Server-->>Browser: emit 'endpointXUpdated'
+            Browser->>ReduxStore: dispatch(fetchEndpointXThunk())
+            ReduxStore->>WebService: fetch endpointX
+            WebService-->>ReduxStore: JSON response
+            ReduxStore-->>UI: update Slice
+            UI-->>User: re-render Markers
+        else Keine Änderung
+            WS_Server-->>WS_Server: keine Aktion
+        end
+    end
+

Beteiligte Komponenten

+

WebSocket Server +(server.js)

+
    +
  • Ruft regelmäßig (setInterval) die Webservice-Endpunkte +auf.
  • +
  • Erkennt Änderungen durch JSON-Vergleich +(JSON.stringify).
  • +
  • Sendet WebSocket-Events nur bei echten Änderungen.
  • +
+

Client: MapComponent

+
    +
  • Hört auf socket.on("endpointXUpdated").
  • +
  • Ruft dann gezielt den passenden Redux-Thunk auf (z. B. +fetchGisLinesStatusThunk).
  • +
+

Redux Store & Thunks

+
    +
  • Jeder Endpunkt besitzt:

    +
      +
    • einen Service (API-Fetch)
    • +
    • einen Thunk (Redux-Logik)
    • +
    • einen Slice (State-Verwaltung)
    • +
  • +
+

React UI (Leaflet Map)

+
    +
  • Beobachtet relevante Redux-Slices via +useSelector().
  • +
  • Aktualisiert Marker, Tooltip und Popup über +createAndSetDevices() und +useDynamicDeviceLayers().
  • +
+

Beispiel-Endpunkte

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EndpunktnameWebSocket EventRedux Thunk
GisLinesStatusGisLinesStatusUpdatedfetchGisLinesStatusThunk()
GisStationsMeasurementsGisStationsMeasurementsUpdatedfetchGisStationsMeasurementsThunk()
GisStationsStaticDistrictGisStationsStaticDistrictUpdatedfetchGisStationsStaticDistrictThunk()
GisStationsStatusDistrictGisStationsStatusDistrictUpdatedfetchGisStationsStatusDistrictThunk()
+

Vorteile

+
    +
  • UI aktualisiert sich nur bei echten Datenänderungen → weniger +Re-Renders.
  • +
  • Live-Synchronisation zwischen Datenquelle und Anzeige.
  • +
  • Skalierbar für beliebige Endpunkte.
  • +
+

ToDo/Erweiterungen

+
    +
  • Automatische Reconnect-Logik für WebSocket.
  • +
  • Anzeige des letzten Update-Zeitpunkts in UI.
  • +
  • Logging-UI für WebSocket-Messages zur Diagnose.
  • +
+
+
+

Letzte Änderung: {{heutiges Datum}} von Ismail Ali

+
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/device-layer-connection.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/device-layer-connection.html new file mode 100644 index 000000000..f909878a8 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/architecture/device-layer-connection.html @@ -0,0 +1,19 @@ +

📡 Architektur: +Verbindung GIS-System & GIS-Station

+

Dieses Diagramm zeigt den Ablauf, wie Geräte (Marker) auf der Karte +über die ID (System gegen IdSystem) korrekt geladen und sichtbar gemacht +werden.

+
flowchart TD
+    A[Stationen aus GIS Stations District mit System ID zum Beispiel 111] --> B[useDynamicDeviceLayers.js]
+    B --> C[Filter und Gruppierung nach System ID]
+    C --> D[createAndSetDevices.js erzeugt Marker]
+    D --> E[MapComponent.js zeigt Marker auf Karte]
+    subgraph Redux
+        F[fetchGisSystemStaticService.js liefert Systeme mit IdSystem]
+        F --> G[fetchGisSystemStaticThunk.js]
+        G --> H[setInitialLayers mit system-IdSystem]
+        H --> I[mapLayersSlice.js speichert Sichtbarkeit]
+    end
+    I -->|Sichtbarkeit steuert Anzeige| E
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/build-and-deploy.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/build-and-deploy.html new file mode 100644 index 000000000..9884d4885 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/build-and-deploy.html @@ -0,0 +1,100 @@ + +

🛠 Deployment & +Build-Verhalten (Next.js)

+

Diese Datei beschreibt, welche Projektdateien in den Build +(.next/) aufgenommen werden und welche nicht.
+Ziel: Klarheit für Onboarding, Deployment-ZIP-Erstellung oder CI/CD.

+
+

📦 Wird beim +npm run build in .next/ gespeichert

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
InhaltBeschreibung
Kompilierte SeitenAlle unter /pages/
API-RoutenAlles aus pages/api/
Assets aus public/Werden im Build nicht verändert, aber ausgeliefert
CSS-Dateien (Tailwind)Werden gebundelt und minimiert
.env.production / .env.developmentUmgebungsabhängige Konfiguration. Wird eingelesen, aber nicht +exportiert
+
JS/TS-Quellcode | Wird zu Client- und +Server-Bundles kompiliert |
+
+

🧹 Wird nicht +in .next/ aufgenommen

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Ordner/DateiZweck / Grund
__tests__, __mocks__Nur lokal für Tests, nicht im Build
cypress/End-to-End-Tests, nur für lokale Entwicklung
scripts/Hilfsskripte, nicht für Runtime relevant
docs/Dokumentation, nur für Entwickler
README.md, CHANGELOG.mdDoku – nicht erforderlich zur Laufzeit
Jenkinsfile, .github/CI/CD – wird vom Buildsystem verwendet
+
+

📂 +Empfohlene Struktur für Deployment (z. B. ZIP-Upload auf Server)

+

Nur folgende Dateien/Ordner übertragen:

+
.next/
+public/
+package.json
+package-lock.json
+.env.production
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/checklist.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/checklist.html new file mode 100644 index 000000000..91051ee5e --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/checklist.html @@ -0,0 +1,51 @@ + +

🧾 Projektpflege-Checkliste

+

Diese Datei dient als persönliche Gedächtnisstütze bei der +Entwicklung und Pflege des Projekts.

+

Bevor du einen Feature-, Refactor- oder Bugfix-Commit abschließt, geh +diese Liste durch:

+
+

📝 Dokumentation

+
    +
  • +
  • +
  • +
  • +
+
+

📦 Konfiguration

+
    +
  • +
  • +
+
+

✅ Codequalität & Git

+
    +
  • +
  • +
  • +
+
+

🧭 Onboarding-freundlich?

+
    +
  • +
  • +
+
+

Du kannst diese Checkliste in jedem Projekt beibehalten und auf deine +Arbeitsweise anpassen.

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/README.html new file mode 100644 index 000000000..d07805e9c --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/README.html @@ -0,0 +1,67 @@ + +

🧩 +components/ – Übersicht über alle UI-Komponenten

+

Dieses Verzeichnis enthält die gesamten React-Komponenten der +TALAS-Kartenanwendung.
+Sie sind thematisch gegliedert in Teilbereiche für Kontextmenüs, POIs, +Polylinien, Modale und die zentrale MapComponent.

+
+

📁 Strukturübersicht

+
components/
+├── contextmenu/                  # Komponenten für rechte Maustaste & Kontextaktionen
+   ├── CoordinatePopup.js
+   └── useMapContextMenu.js
+
+├── gisPolylines/                 # Polylinien (Kabelstrecken)
+   ├── PolylineContextMenu.js
+   └── icons/
+       ├── CircleIcon.js
+       ├── EndIcon.js
+       ├── StartIcon.js
+       └── SupportPointIcons.js
+
+├── icons/devices/overlapping/   # Zusätzliche Overlap-Icons für Geräte
+   └── PlusRoundIcon.js
+
+├── mainComponent/               # Hauptkomponenten für Karteninitialisierung
+   ├── MapComponent.js
+   └── hooks/
+       └── useInitializeMap.js
+
+├── pois/                        # POI-spezifische Modale
+   ├── AddPOIModal.js
+   └── PoiUpdateModal.js
+
+├── uiWidgets/                   # UI-Widgets
+   ├── CoordinateInput.js
+   ├── VersionInfoModal.js
+   ├── TestScript.js
+   └── mapLayersControlPanel/
+       ├── EditModeToggle.js
+       └── MapLayersControlPanel.js
+
+

🔎 Beschreibung der +Hauptbereiche

+

contextmenu/

+

Rechtsklick-Menüs für Marker, POIs, Polylinien. Steuert Anzeige & +Verhalten.

+

gisPolylines/

+

Komponenten für das Zeichnen, Bearbeiten und Interagieren mit +Linien/Strecken.

+

mainComponent/

+

Zentrale Leaflet-Map-Logik & Initialisierung via +MapComponent und useInitializeMap.

+

pois/

+

Modale für das Hinzufügen und Bearbeiten von POIs (Points of +Interest).

+

uiWidgets/

+

Komponenten wie Eingabefelder für Koordinaten-Suche, Infoboxen und +Control Panel für Geräte Layers .

+
+

✅ Besonderheiten

+
    +
  • Verwendet Tailwind CSS für Styling
  • +
  • Integration mit Redux, Leaflet, OverlappingMarkerSpiderfier
  • +
  • Vollständig modular & testbar aufgebaut
  • +
diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/TestScript.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/TestScript.html new file mode 100644 index 000000000..160a08ad8 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/TestScript.html @@ -0,0 +1,59 @@ + +

🧪 TestScript.js

+

Ein einfaches React-Testskript zur Laufzeitüberprüfung von +Codefragmenten in setupPolylines.js.

+

Zweck

+

Dieses Skript durchsucht die geladene +setupPolylines.js-Datei (per raw-loader) nach +bestimmten Kontextmenüeinträgen:

+
    +
  • „Stützpunkt entfernen“
  • +
  • „Stützpunkt hinzufügen“
  • +
+

Vorgehen

+
    +
  • Lädt setupPolylines.js als Text via +!!raw-loader!
  • +
  • Nutzt reguläre Ausdrücke zur Prüfung
  • +
  • Gibt Ergebnisse farblich formatiert in der Konsole aus
  • +
+

Ausgaben

+ + + + + + + + + + + + + + + + + + + + + +
ZustandBeschreibung
✅ Test bestandenDer gesuchte Text wurde gefunden
❌ Test fehlgeschlagenDer gesuchte Text fehlt in der Datei
ℹ️ InfoNeutrale Zusatzinformationen in der Konsole
+

Besonderheiten

+
    +
  • Kein visuelles UI – Rückmeldung nur über +console.log
  • +
  • Eignet sich als Dev-Hilfe für Refactoring oder PR-Checks
  • +
+

Beispielausgabe

+
✔ Test bestanden: Der Text für 'Stützpunkt entfernen' wurde gefunden.
+ℹ️ Info: Überprüfung abgeschlossen.
+

Hinweise

+
    +
  • Wird automatisch beim Mount (via useEffect) +ausgeführt
  • +
  • return null → keine sichtbare Ausgabe
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/contextmenu/CoordinatePopup.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/contextmenu/CoordinatePopup.html new file mode 100644 index 000000000..4c134658e --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/contextmenu/CoordinatePopup.html @@ -0,0 +1,61 @@ + +

📌 CoordinatePopup.js

+

Zeigt ein modales Fenster mit Koordinateninformationen an, z. B. aus +einem Kontextmenü heraus.

+
+ + +
+

Features

+
    +
  • Darstellung eines Koordinatenwerts (lat,lng)
  • +
  • Kopieren in die Zwischenablage (Clipboard API + Fallback)
  • +
  • Modal zentriert mit Tailwind CSS
  • +
  • Zwei Buttons: „Kopieren“ und „Schließen“
  • +
+

Props

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypBeschreibung
isOpenbooleanSteuert Sichtbarkeit des Modals
coordinatesstringZu zeigende Koordinaten (z. B. "53.2,8.1")
onClosefunctionWird bei Klick auf „Schließen“ ausgelöst
+

Design

+
    +
  • Tailwind-Klassen für zentriertes Layout (fixed, +inset-0, z-50)
  • +
  • Leicht animierter Button-Hover
  • +
+

Interne Logik

+
    +
  • Nutzt navigator.clipboard.writeText oder Fallback mit +document.execCommand("copy")
  • +
  • Stoppt Event-Bubbling, um Klick außerhalb zu erkennen
  • +
+

🔙 Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/contextmenu/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/contextmenu/README.html new file mode 100644 index 000000000..d8310efdd --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/contextmenu/README.html @@ -0,0 +1,62 @@ + +

🖱️ +contextmenu/ – Kontextmenü-Komponenten

+

Dieses Verzeichnis enthält Komponenten und Hooks zur Anzeige und +Steuerung von Kontextmenüs in der Leaflet-Kartenanwendung. Sie dienen +der Interaktion mit POIs, Koordinaten und Layer-Objekten per +Rechtsklick.

+

+

📂 Enthaltene Dateien

+ ++++ + + + + + + + + + + + + + + + + +
DateiBeschreibung
CoordinatePopup.jsZeigt ein kleines Kontextfenster mit Koordinaten und +Copy-Funktion
useMapContextMenu.jsHook zur Initialisierung und Verwaltung des Kontextmenüs auf der +Karte
+
+

🔄 Verwendung

+

Diese Komponenten sind typischerweise eingebunden in:

+ +
+

🎯 Ziel

+

Ermöglicht einfache Benutzerinteraktion mit:

+
    +
  • Geräten
  • +
  • Koordinaten
  • +
  • POIs
  • +
  • Streckenabschnitten
  • +
+
+

📚 Weitere Dokumentation

+

Alle Markdown-Dateien für Komponenten befinden sich im +/docs/components/contextmenu/ Verzeichnis.

+

🔙 Zurück zu components

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/contextmenu/useMapContextMenu.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/contextmenu/useMapContextMenu.html new file mode 100644 index 000000000..d4296cd2c --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/contextmenu/useMapContextMenu.html @@ -0,0 +1,67 @@ + +

🖱️ useMapContextMenu.js

+

Initialisiert Kontextmenüeinträge für die Leaflet-Karte.
+Wird typischerweise in initializeMap() oder +MapComponent verwendet.

+
+ + +
+

Kontextmenüeinträge

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EintragFunktion
Koordinaten anzeigenÖffnet CoordinatePopup mit aktueller Position
ReinzoomenZoomt 3 Stufen näher an das Zentrum heran
RauszoomenZoomt 3 Stufen heraus
Hier zentrierenVerschiebt Kartenzentrum auf Klickposition
POI hinzufügen(nur bei editMode=true) öffnet POI-Dialog
+

Parameter

+
addItemsToMapContextMenu(
+  map,
+  menuItemAdded,
+  setMenuItemAdded,
+  setShowCoordinatesModal,
+  setShowPoiModal,
+  setPopupCoordinates,
+  openPopupWithCoordinates
+);
+

Besonderheiten

+
    +
  • Prüft auf localStorage.editMode für +POI-Eintrag

  • +
  • FlyTo-Animationen für Zoom-Vorgänge mit dynamischer +Dauer

  • +
  • Modularer Aufbau: openPopupWithCoordinates wird +extern übergeben

    +

    🔙 Zurück zu contextmenu

  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/PolylineContextMenu.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/PolylineContextMenu.html new file mode 100644 index 000000000..ed1c41b79 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/PolylineContextMenu.html @@ -0,0 +1,67 @@ + +

📐 PolylineContextMenu.js

+

Ein einfaches benutzerdefiniertes Kontextmenü zur Interaktion mit +Linien (Polylinien) auf der Karte.

+
+ + +
+

Zweck

+

Das Menü erlaubt folgende Interaktionen:

+
    +
  • ➕ „Stützpunkt hinzufügen“
  • +
  • ➖ „Stützpunkt entfernen“
  • +
  • ❌ „Schließen“
  • +
+

Wird dynamisch positioniert anhand der Klickkoordinaten +(position.x, position.y).

+

Props

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PropTypBeschreibung
position{x, y}Position in Pixelkoordinaten (z. B. von Mausereignis)
onAddPointfunctionHandler für „Stützpunkt hinzufügen“
onRemovePointfunctionHandler für „Stützpunkt entfernen“
onClosefunctionHandler zum Schließen des Menüs
+

Styling

+
    +
  • Absolut positioniertes div
  • +
  • Weißer Hintergrund, schwarzer Rahmen
  • +
  • Kein Tailwind – purer Inline-Style
  • +
+

Verwendung

+

Eingebettet z. B. in setupPolylines.js oder +PolylineLayerManager, um rechte Mausklicks auf Linien zu +behandeln.

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/README.html new file mode 100644 index 000000000..5f251078d --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/README.html @@ -0,0 +1,164 @@ + +

📄 Übersicht: +docs/components/gisPolylines

+

Diese Komponente verwaltet die Darstellung und Interaktion von +GIS-Polylinien in der Leaflet-Karte.
+Sie kombiniert Statusdaten, statische Linien und Stationsdaten zu +Tooltips und Farben.

+
+

🧬 Data Flow Diagram

+

Dieses Diagramm zeigt den Datenfluss zwischen den +Redux-Slices, Thunks, Service-Funktionen und den +React-Komponenten,
+die für die Anzeige der GIS-Polylinien zuständig +sind.

+

📖 Ablauf erklärt

+
    +
  1. Beim Laden der Seite ruft die Hook +useLineData mehrere Thunks auf: +
      +
    • Diese laden Linien, Statusdaten und Stationsdaten über entsprechende +Service-Funktionen.
    • +
  2. +
  3. Die Thunks speichern die geladenen Daten in Redux-Slices.
  4. +
  5. useLineData liest diese Redux-Daten aus und kombiniert +sie: +
      +
    • Zuordnung nach idLD und Modul
    • +
  6. +
  7. Daraus entsteht: +
      +
    • Eine Prioritätsfarbe für die Linie
    • +
    • Ein Tooltip-HTML mit Modulname, Slot, Station (LD_Name) und +Statusmeldungen.
    • +
  8. +
  9. Diese Daten werden weitergegeben an: +
      +
    • generateLineTooltipContent → für Tooltips bei +Hover
    • +
    • PolylineContextMenu → für Kontextmenü bei +Rechtsklick
    • +
    • Leaflet Polyline-Komponente → für farbige Darstellung
    • +
  10. +
+
graph TD
+
+subgraph Redux Store
+    A1[gisLinesFromDatabase Slice]
+    A2[gisLinesStatusFromWebservice Slice]
+    A3[gisStationsStaticDistrict Slice]
+end
+
+subgraph Thunks
+    T1[fetchGisLinesThunk]
+    T2[fetchGisLinesStatusThunk]
+    T3[fetchGisStationsStaticDistrictThunk]
+end
+
+subgraph Services
+    S1[fetchGisLinesService]
+    S2[fetchGisLinesStatusService]
+    S3[fetchGisStationsStaticDistrictService]
+end
+
+subgraph Komponenten
+    C1[useLineData Hook]
+    C2[generateLineTooltipContent]
+    C3[PolylineContextMenu.js]
+    C4[Leaflet Polyline Rendering]
+end
+
+T1 --> S1
+T2 --> S2
+T3 --> S3
+
+T1 --> A1
+T2 --> A2
+T3 --> A3
+
+A1 --> C1
+A2 --> C1
+A3 --> C1
+
+C1 --> C2
+C2 --> C4
+C1 --> C3
+
+

📦 Wichtige Dateien

+ ++++ + + + + + + + + + + + + + + + + + + + + +
DateiZweck
useLineData.jsHolt Linien-, Status- und Stationsdaten aus Redux und kombiniert +sie
generateLineTooltipContent.jsBaut HTML für die Tooltips
PolylineContextMenu.jsKontextmenü zur Interaktion mit Linien
+
+
+GIS Polylines + +
+
+

Zurück zur Übersicht

+
+

📘 Technischer +Hintergrund für Einsteiger

+

Diese Komponente verbindet Daten aus zwei unterschiedlichen +Systemen:

+
    +
  1. NodeMap App (Next.js API)
    +→ liefert die Geometrie der Linien direkt aus der +Datenbank (ohne Webservice).
  2. +
  3. TALAS.web WebService
    +→ liefert Statusinformationen und Stationsnamen +(LD_Name).
  4. +
+

🔄 Ablauf im Detail

+
    +
  • Liniengeometrie (idLD, +idModul, points) kommt über +fetchGisLinesThunk aus der Datenbank.
  • +
  • Statusinformationen (Meldungen, Farben, Modulname, +Slot) kommen über fetchGisLinesStatusThunk.
  • +
  • Stationsnamen (LD_Name) kommen über +fetchGisStationsStaticDistrictThunk.
  • +
  • Die Hook useLineData.js verbindet alle Infos → erzeugt +Tooltip-HTML & Farblogik.
  • +
  • generateLineTooltipContent.js erstellt den konkreten +Tooltip-HTML-String.
  • +
+

🧠 Wichtig für Debugging

+
    +
  • Zuordnung erfolgt immer über idLD und +Modul.
  • +
  • Stationen findest du im Slice +gisStationsStaticDistrict.Points[] → LD_Name
  • +
  • Linien findest du im Slice gisLinesFromDatabase
  • +
  • Statusinfos findest du im Slice +gisLinesStatusFromWebservice
  • +
+

🛠 Fehler wie “Station: N/A” entstehen, wenn +idLD im Status vorhanden ist, aber keine passende Station +in gisStationsStaticDistrict gefunden wurde.

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/CircleIcon.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/CircleIcon.html new file mode 100644 index 000000000..383cdb0b8 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/CircleIcon.html @@ -0,0 +1,19 @@ + +

🔘 CircleIcon.js

+

Ein einfacher, grauer runder Marker als Stützpunkt in einer +Polyline.

+
+CircleIcon + +
+

Eigenschaften

+
    +
  • Stil: grauer Kreis mit schwarzem Rand
  • +
  • Größe: 10×10 px, IconSize 25×25 px (wegen Klickfläche)
  • +
  • Klasse: custom-circle-icon
  • +
+

Verwendung

+

Wird in Polylinien als Zwischenpunkt gesetzt. Inaktiv, aber +sichtbar.

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/EndIcon.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/EndIcon.html new file mode 100644 index 000000000..0f8e0c3ea --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/EndIcon.html @@ -0,0 +1,18 @@ + +

🔲 EndIcon.js

+

Ein Viereck zur Markierung des Endpunkts einer Polyline.

+
+EndIcon + +
+

Eigenschaften

+
    +
  • Stil: graues Quadrat mit schwarzem Rand
  • +
  • Größe: 14×14 px
  • +
  • Klasse: custom-end-icon
  • +
+

Verwendung

+

Wird am letzten Punkt einer Linie gesetzt, z. B. +lineData.coordinates[line.length - 1]

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/README.html new file mode 100644 index 000000000..cbaedfc9e --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/README.html @@ -0,0 +1,13 @@ +

📄 Übersicht: +docs/components/gisPolylines/icons

+ +
+ + +
diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/StartIcon.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/StartIcon.html new file mode 100644 index 000000000..834a1d004 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/StartIcon.html @@ -0,0 +1,17 @@ + +

🔺 StartIcon.js

+

Ein SVG-Dreieck zur Markierung des Startpunkts einer Polyline.

+
+StartIcon + +
+

Eigenschaften

+
    +
  • Schwarzes Dreieck mit grauem Overlay (Polygon SVG)
  • +
  • Größe: 18×18 px
  • +
  • Klasse: custom-start-icon
  • +
+

Verwendung

+

Wird am ersten Punkt einer Polyline platziert.

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/SupportPointIcons.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/SupportPointIcons.html new file mode 100644 index 000000000..541f41cbb --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/gisPolylines/icons/SupportPointIcons.html @@ -0,0 +1,26 @@ + +

➕➖ SupportPointIcons.js

+

Definiert zwei Icons für interaktive Stützpunkte in einer +Polyline:

+
+CircleIcon + +
+

AddSupportPointIcon

+
    +
  • Grüner Kreis mit weißem Rand und Pluszeichen
  • +
  • iconSize: 24×24 px
  • +
+

RemoveSupportPointIcon

+
    +
  • Roter Kreis mit weißem Rand und Minuszeichen
  • +
  • iconSize: 24×24 px
  • +
+

Verwendung

+
    +
  • Hinzufügen/Entfernen von Zwischenpunkten in der Bearbeitungsansicht +(editMode)
  • +
  • Marker erscheinen z. B. bei Maus-Hover oder per Kontextmenü
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/icons/devices/overlapping/PlusRoundIcon.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/icons/devices/overlapping/PlusRoundIcon.html new file mode 100644 index 000000000..6e1c07694 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/icons/devices/overlapping/PlusRoundIcon.html @@ -0,0 +1,55 @@ + +

➕ PlusRoundIcon.js

+

Ein einfaches Leaflet-Icon, das ein rundes Pluszeichen +darstellt.
+Wird für zusätzliche UI-Markierungen auf Geräten oder überlappenden +Icons verwendet.

+
+ + +
+

Eigenschaften

+ + + + + + + + + + + + + + + + + + + + + + + + + +
AttributWert
iconUrl/img/plus_round.png
iconSize[22, 22]
iconAnchor[25, 55]
classNameabsolute top-0 left-0 z-10 (Tailwind)
+

Verwendung

+
    +
  • Dient als Overlay-Symbol, z. B. für „Gerät hinzufügen“ oder zur +Darstellung über bestehenden Icons
  • +
  • Durch die z-10-Klasse immer im Vordergrund +sichtbar
  • +
  • Kombinierbar mit OverlappingMarkerSpiderfier oder +Marker-Gruppen
  • +
+

Hinweis

+
    +
  • Die Bilddatei /img/plus_round.png muss vorhanden +sein
  • +
  • Kann bei Bedarf dynamisch durch ein anderes Icon ersetzt werden
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/icons/devices/overlapping/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/icons/devices/overlapping/README.html new file mode 100644 index 000000000..136869094 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/icons/devices/overlapping/README.html @@ -0,0 +1,10 @@ +

📄 Übersicht: +docs/components/icons/devices/overlapping

+ +
+ + +
diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/MapComponent.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/MapComponent.html new file mode 100644 index 000000000..58dc30ee9 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/MapComponent.html @@ -0,0 +1,85 @@ + +

🗺️ MapComponent.js

+

Die zentrale React-Komponente zur Darstellung und Steuerung der +Leaflet-Karte.
+Bindet alle Marker, Layer, POIs, Linien und das Kontextmenü dynamisch +ein.

+
+Overview + +
+

🎯 Zweck

+
    +
  • Initialisiert die Leaflet-Karte (useInitializeMap)
  • +
  • Bindet Marker & Polylinien über Redux und eigene Hooks
  • +
  • Steuerung über Redux-Slices wie selectedArea, +zoomTrigger, polylineVisible
  • +
  • Kontextmenüs für Karte, POIs, Polylinien
  • +
  • Unterstützung für Editierfunktionen über editMode +(localStorage)
  • +
+
+

🧱 Hauptbestandteile

+
    +
  • useEffect-Hooks zum Laden und Aktualisieren von: +
      +
    • Kartenlayern, POIs, Linien, Rechte, Systeme, Positionen
    • +
  • +
  • Marker-Logik für 15+ Layergruppen (TALAS, ECI, GMA, etc.)
  • +
  • Marker-Overlapping mit OverlappingMarkerSpiderfier
  • +
  • Kontextmenüs (Karte & Polylinie)
  • +
  • UI-Komponenten: +
      +
    • MapLayersControlPanel
    • +
    • CoordinateInput
    • +
    • CoordinatePopup
    • +
    • AddPOIModal, PoiUpdateModal, +VersionInfoModal
    • +
  • +
+
+

🧠 Zustand & Redux

+

Verwendet umfangreiche Redux-Slices zur Steuerung von:

+
    +
  • Linienstatus, POI-Typen, POI-Icons

  • +
  • Gerätesysteme & Rechte

  • +
  • Sichtbarkeit einzelner Layergruppen

  • +
  • Aktuelle Selektion (Area, Gerät, POI)

    +
    +ReduxSlices + +
  • +
+
+

🔧 Lokale Steuerung

+
    +
  • EditMode wird aus localStorage gelesen

  • +
  • Karte speichert Zoom & Center dauerhaft im Browser

  • +
  • Kontextmenü-Einträge ändern sich je nach Rechten & Modus

    +
    +LocalStorage + +
  • +
+
+

🧪 Besonderheiten

+
    +
  • Fehlerbehandlung für contextmenu-Fehler eingebaut → +Auto-Neuladen
  • +
  • Alle Marker-Updates mit Overlapping-Check & +Z-Index-Steuerung
  • +
  • Linien enthalten dynamische Tooltips mit +tooltipContents
  • +
  • Initiale Datenabfrage über Redux-Thunk-Kaskade
  • +
+
+

🔗 Abhängigkeiten

+
    +
  • Leaflet, OverlappingMarkerSpiderfier, React-Toastify
  • +
  • Redux Toolkit (Thunks + Selectors)
  • +
  • Tailwind CSS für visuelles Layout
  • +
+
+

📄 Pfad: /components/mainComponent/MapComponent.js

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/README.html new file mode 100644 index 000000000..35c18cc31 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/README.html @@ -0,0 +1,13 @@ +

📄 Übersicht: +docs/components/mainComponent

+

Die zentrale React-Komponente zur Darstellung und Steuerung der +Leaflet-Karte.
+Bindet alle Marker, Layer, POIs, Linien und das Kontextmenü dynamisch +ein.

+ +
+Overview + +
diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/hooks/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/hooks/README.html new file mode 100644 index 000000000..ae3f7509d --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/hooks/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: +docs/components/mainComponent/hooks

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/hooks/useInitializeMap.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/hooks/useInitializeMap.html new file mode 100644 index 000000000..2f417f03e --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/mainComponent/hooks/useInitializeMap.html @@ -0,0 +1,90 @@ + +

🪄 useInitializeMap.js

+

Custom React-Hook zur Initialisierung der Leaflet-Karte.
+Ermöglicht die einfache Übergabe aller nötigen Parameter und abstrahiert +die initializeMap(...)-Logik.

+
+

📦 Zweck

+
    +
  • Führt initializeMap(...) nur einmal +aus, wenn mapRef existiert und +map === null
  • +
  • Kapselt die Initialisierung in ein useEffect
  • +
+
+

🔧 Parameter

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameTypBeschreibung
mapLeafletMap (Zustand)Wird initialisiert, wenn null
mapRefrefReferenz auf <div id="map">
setMapfunctionCallback zum Setzen der Karteninstanz
setOmsfunctionCallback für OverlappingMarkerSpiderfier
setMenuItemAddedfunctionWird genutzt, um mehrfaches Menü-Setup zu verhindern
addItemsToMapContextMenufunctionLogik zum Hinzufügen von Kontextmenüeinträgen
hasRightsbooleanSteuerung, ob POI-Menüs angezeigt werden dürfen
setPolylineEventsDisabledfunctionAktiviert/Deaktiviert Polyline-Events global
+
+

🌐 Verwendung

+

In MapComponent.js:

+
useInitializeMap(
+  map,
+  mapRef,
+  setMap,
+  setOms,
+  setMenuItemAdded,
+  addItemsToMapContextMenu,
+  hasRights,
+  value => dispatch(setDisabled(value))
+);
+
+

📁 Quelle

+

Wrappt initializeMap() aus +/utils/initializeMap.js

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/pois/AddPOIModal.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/pois/AddPOIModal.html new file mode 100644 index 000000000..d66b5912e --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/pois/AddPOIModal.html @@ -0,0 +1,59 @@ + +

➕ AddPOIModal.js

+

Zeigt ein modales Formular an, um einen neuen POI auf der Karte zu +erstellen.
+Die Koordinaten (latlng) werden automatisch übernommen.

+
+ + +
+

Funktionen

+
    +
  • POI-Name, Typ und zugehöriges Gerät auswählbar
  • +
  • Koordinatenanzeige (lat, lng)
  • +
  • Dynamisches Laden der Gerätedaten und POI-Typen
  • +
  • Fehleranzeige bei fehlgeschlagenem Speichern
  • +
  • Löst addPoiThunk + Refresh-Trigger +(incrementTrigger) aus
  • +
+

Props

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
PropTypBeschreibung
onClosefunctionSchließt das Modal
mapLeaflet(optional) zum Schließen evtl. offener Popups
latlngobjectKoordinaten für den neuen POI
+

Redux

+
    +
  • fetchPoiTypThunk, +fetchPoiIconsDataThunk
  • +
  • addPoiThunk, resetAddPoiStatus
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/pois/PoiUpdateModal.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/pois/PoiUpdateModal.html new file mode 100644 index 000000000..af94b73da --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/pois/PoiUpdateModal.html @@ -0,0 +1,51 @@ + +

✏️ PoiUpdateModal.js

+

Ein Dialog zur Aktualisierung oder Löschung bestehender POIs.

+
+ + +
+

Features

+
    +
  • Zeigt aktuellen Namen, Beschreibung, Gerät und Typ
  • +
  • Gerät und Typ auswählbar via react-select
  • +
  • Unterstützt Löschen und Speichern von POIs
  • +
  • Eingebundene Sicherheitsabfrage bei Löschen
  • +
+

Props

+ + + + + + + + + + + + + + + + + + + + +
PropTypBeschreibung
onClosefunctionSchließt das Modal
poiDataobjectBestehende POI-Daten zur Bearbeitung
+

Redux

+
    +
  • updatePoiThunk, deletePoiThunk
  • +
  • fetchLocationDevicesThunk, +fetchPoiTypThunk
  • +
+

Technisches

+
    +
  • Dynamische Gerätegruppenfilterung basierend auf +mapLayersVisibility
  • +
  • Formfelder mit react-select für bessere UX
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/pois/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/pois/README.html new file mode 100644 index 000000000..22049f457 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/pois/README.html @@ -0,0 +1,10 @@ +

📄 Übersicht: +docs/components/pois

+ +
+POIs + +
diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/CoordinateInput.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/CoordinateInput.html new file mode 100644 index 000000000..5c3f39c33 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/CoordinateInput.html @@ -0,0 +1,154 @@ + +

CoordinateInput.js

+

Die Komponente CoordinateInput stellt ein einfaches +Eingabefeld für geografische Koordinaten (Latitude, Longitude) +bereit.
+Sie dient typischerweise dazu, einen bestimmten Punkt auf der Karte zu +fokussieren bzw. zu markieren.

+
+
+ + +
+
+

🔧 Pfad

+
/components/uiWidgets/CoordinateInput.js
+
+

🎯 Zweck

+
    +
  • Eingabe von Koordinaten (z. B. 53.2,8.1)
  • +
  • Übergabe dieser Koordinaten an eine Callback-Funktion zur weiteren +Verarbeitung
  • +
  • Positioniert sich dauerhaft in der linken oberen Ecke der Seite +(z. B. zur schnellen Navigation)
  • +
+
+

⚙️ Props

+ +++++ + + + + + + + + + + + + + + +
PropTypBeschreibung
onCoordinatesSubmitfunctionWird beim Abschicken des Formulars mit dem eingegebenen +Koordinaten-String aufgerufen
+
+

🧩 Interne Logik

+
const [coordinates, setCoordinates] = useState("");
+
    +
  • Der Eingabewert wird im lokalen State gespeichert
  • +
  • Beim Submit (onSubmit) wird +onCoordinatesSubmit(coordinates) aufgerufen, wenn +gesetzt
  • +
+
+

🧰 UI-Aufbau

+
    +
  • Eingabefeld für Text: Erwartet lat,lng
  • +
  • Button: „Zu Marker zoomen“
  • +
  • Position: fixed top-5 left-5 → dauerhaft sichtbar
  • +
+
+

🎨 Gestaltung (Tailwind CSS)

+ ++++ + + + + + + + + + + + + + + + + + + + + +
ElementKlassen
Containerfixed top-5 left-5 z-50 bg-white shadow-lg rounded-lg p-4 w-72
Inputborder p-2 rounded w-full mb-2
Buttonbg-blue-500 text-white p-2 rounded w-full hover:bg-blue-600
+
+

🧪 Testfälle

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + +
EingabeErwartung
53.2,8.1Callback onCoordinatesSubmit("53.2,8.1") wird +ausgelöst
LeerCallback wird ausgelöst mit leerem String
ButtonklickLöst handleSubmit() aus
Enter-Taste im EingabefeldLöst ebenfalls Submit aus
+
+

💡 Erweiterungsideen

+
    +
  • Validierung des Formats (lat,lng) vor dem Absenden
  • +
  • Automatisches Zentrieren der Leaflet-Karte in der +Callback-Funktion
  • +
  • Optionale Markierung des Punkts auf der Karte
  • +
+
+

📄 Verwendung

+

Beispiel in einer Map-Komponente:

+
<CoordinateInput
+  onCoordinatesSubmit={coords => {
+    const [lat, lng] = coords.split(",").map(Number);
+    map.setView([lat, lng], 16); // Leaflet
+  }}
+/>
+
+

📦 Verwandte Komponenten

+
    +
  • MapComponent.js – kann die übergebenen Koordinaten zur +Zentrierung oder Marker-Erstellung nutzen
  • +
+
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/README.html new file mode 100644 index 000000000..b1e191bbe --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/README.html @@ -0,0 +1,11 @@ +

📄 UI-Widgets

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/VersionInfoModal.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/VersionInfoModal.html new file mode 100644 index 000000000..5801d4d27 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/VersionInfoModal.html @@ -0,0 +1,131 @@ + +

🪪 VersionInfoModal.js

+

Das VersionInfoModal ist ein modales Fenster zur Anzeige +von Unternehmensinformationen und der aktuellen App-Version.
+Es wird meist im Footer oder als Info-Schaltfläche in der +Benutzeroberfläche eingeblendet.

+
+
+ + +
+
+

🔧 Pfad

+
/components/uiWidgets/VersionInfoModal.js
+
+

🎯 Zweck

+

Die Komponente informiert Nutzer über:

+
    +
  • Die aktuelle TALAS.Map Version
  • +
  • Die Firmenadresse und Kontaktdaten der Littwin +Systemtechnik GmbH & Co. KG
  • +
  • Eine zentral platzierte Grafik mit dem TALAS-Logo
  • +
  • Eine Schaltfläche zum Schließen des Modals
    +
  • +
+
+

⚙️ Props

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + +
PropTypBeschreibung
showVersionInfoModalbooleanSteuert, ob das Modal angezeigt wird
closeVersionInfoModalfunctionCallback zum Schließen des Modals
APP_VERSIONstringVersionstext (z. B. 1.1.188), meist aus +.env.production oder .env.development +geladen
+
+

💡 Verhalten

+
    +
  • Wird showVersionInfoModal auf true +gesetzt, erscheint das Modal zentriert über einem halbtransparenten +Overlay
  • +
  • Klick auf den Hintergrund (schwarzes Overlay) oder auf „Schließen“ +führt closeVersionInfoModal() aus
  • +
+
+

🎨 Gestaltung

+
    +
  • Modal-Layout mit Tailwind CSS (fixed, +z-50, bg-white, rounded, +shadow)
  • +
  • Schaltfläche Schließen reagiert auf Hover mit +Farbwechsel (hover:bg-blue-700)
  • +
  • Design folgt der UI-Ästhetik von TALAS.web
  • +
+
+

🧪 Testfälle

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + +
BedingungErwartung
showVersionInfoModal = trueModal wird angezeigt
Klick auf HintergrundModal wird geschlossen
Klick auf „Schließen“-ButtonModal wird geschlossen
Version APP_VERSION = 1.1.290Text „TALAS.Map Version 1.1.290“ sichtbar
+
+

📦 Verknüpfte Dateien

+
    +
  • .env.production oder .env.development +enthält z. B. NEXT_PUBLIC_APP_VERSION=1.1.188
  • +
  • Aufruf in Footer oder Layout zur Anzeige +bei Klick auf „Version“
  • +
+
+

🛠 Verbesserungsideen

+
    +
  • ESC-Taste als Schließen-Funktion ergänzen
  • +
  • Automatischer Import von Version via +process.env.NEXT_PUBLIC_APP_VERSION
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/mapLayersControlPanel/EditModeToggle.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/mapLayersControlPanel/EditModeToggle.html new file mode 100644 index 000000000..fa0cdc01d --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/mapLayersControlPanel/EditModeToggle.html @@ -0,0 +1,109 @@ + +

✏️ EditModeToggle.js

+

Die Komponente EditModeToggle stellt einen interaktiven +Umschalter für den Bearbeitungsmodus bereit.
+Sie ermöglicht das Ein- und Ausschalten des Modus, in dem POIs, +Polylines (Strecken) und Bereiche bearbeitet werden können.

+
+

📦 Pfad

+
/components/uiWidgets/mapLayersControlPanel/EditModeToggle.js
+
+

🧩 Zweck

+

Der Bearbeitungsmodus wirkt sich auf die Interaktivität der Map +aus:

+
    +
  • Wenn aktiv: +
      +
    • Checkboxen für Layer sind deaktiviert
    • +
    • POI-Funktionen (Hinzufügen, Verschieben, Löschen) werden +ermöglicht
    • +
  • +
  • Wenn inaktiv: +
      +
    • Keine Bearbeitung möglich
    • +
    • UI ist auf Betrachtung beschränkt
    • +
  • +
+
+

🖱 Verhalten

+

Beim Klick auf das Icon:

+
    +
  1. Wird der lokale Zustand editMode umgeschaltet
  2. +
  3. localStorage speichert den neuen Status +(true oder false)
  4. +
  5. Die Seite wird neu geladen (window.location.reload()), +um globale Effekte zu aktivieren
  6. +
+
+

🧠 Interner Zustand

+
const [editMode, setEditMode] = useState(() => localStorage.getItem("editMode") === "true");
+
    +
  • Initialisiert aus localStorage
  • +
  • Persistente Speicherung des Zustands browserseitig
  • +
  • Aufruf in anderen Komponenten (z. B. +MapLayersControlPanel.js) basiert ebenfalls auf diesem +Wert
  • +
+
+

🧰 UI-Darstellung

+
    +
  • Verwendet Material-UI-Icons: +
      +
    • 🟢 ModeEditIcon: Bearbeitungsmodus aus +→ wird angeboten zum Aktivieren
    • +
    • 🔴 EditOffIcon: Bearbeitungsmodus ein +→ wird angeboten zum Deaktivieren
    • +
  • +
  • Tooltip informiert den Nutzer über die jeweilige Aktion
  • +
+
+

🧪 Testfälle

+ ++++ + + + + + + + + + + + + + + + + + + + + +
ZustandErwartetes Verhalten
editMode = falseIcon: ✏️ → Tooltip: „Bearbeitungsmodus aktivieren“
editMode = trueIcon: 🚫✏️ → Tooltip: „Bearbeitungsmodus deaktivieren“
Klick auf IconStatus umschalten, Seite neu laden
+
+

💡 Erweiterungsideen

+
    +
  • 🔄 Statt window.location.reload() → globalen Zustand +über Redux-Dispatch steuern
  • +
  • 📢 Feedback-Toast nach Umschalten anzeigen (z. B. „Bearbeitungsmodus +aktiviert“)
  • +
  • 🧩 Integration in Redux-Store zur globalen Synchronisierung ohne +Reload
  • +
+
+

📄 Verwandte Komponenten

+
    +
  • MapLayersControlPanel.js: liest +localStorage.editMode und deaktiviert Layer-Checkboxen im +aktiven Modus
  • +
  • PoiUpdateModal, AddPOIModal: nutzen den +Bearbeitungsmodus für UI-Freigabe
  • +
+
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/mapLayersControlPanel/MapLayersControlPanel.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/mapLayersControlPanel/MapLayersControlPanel.html new file mode 100644 index 000000000..f4bf8b274 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/mapLayersControlPanel/MapLayersControlPanel.html @@ -0,0 +1,213 @@ + +

🧭 MapLayersControlPanel.js

+

Dieses UI-Widget zeigt eine interaktive Steuereinheit für Layer, POIs +und Stationsbereiche auf der rechten Seite der Karte.
+Es ist vollständig an den Redux-Store angebunden und reagiert auf +Änderungen der Layer-Sichtbarkeit, Bearbeitungsmodus und +Stationsauswahl.

+
+

🧩 UI-Struktur

+
+ + +
+
+

🔧 Pfad

+
/components/uiWidgets/mapLayersControlPanel/MapLayersControlPanel.js
+
+

📌 Zweck

+

Das MapLayersControlPanel ermöglicht Nutzern:

+
    +
  • Die Auswahl eines Stationsbereichs (Dropdown)
  • +
  • Das Aktivieren/Deaktivieren einzelner GIS-Systeme (Checkboxen)
  • +
  • Das Anzeigen von POIs oder Kabelstrecken (TALAS-spezifisch)
  • +
  • Das Ein-/Ausschalten des Bearbeitungsmodus
  • +
  • Die Steuerung der Karten-Zentrierung über ein Icon
  • +
+
+

🧠 Verwendete Redux-Slices

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
SliceZweck
gisStationsStaticDistrictSliceEnthält die Gerätebereiche (mit .Points)
gisSystemStaticSliceEnthält die konfigurierten GIS-Systeme mit Anzeigeerlaubnis
mapLayersSliceSpeichert die Sichtbarkeit aller Layer
poiLayerVisibleSliceSteuert Sichtbarkeit der POIs
polylineLayerVisibleSliceSteuert Sichtbarkeit der Kabelstrecken (TALAS)
zoomTriggerSliceLöst Neuzentrierung der Karte aus
selectedAreaSliceSpeichert den gewählten Bereich/Station
+
+

🔄 Logikübersicht

+
    +
  • Dropdown Stationsauswahl:
    +Wird dynamisch aus GisStationsStaticDistrict.Points +befüllt
    +Nur eindeutige Area_Name, wenn System erlaubt +ist

  • +
  • Checkboxen für Layer:
    +Zeigen alle Systeme aus GisSystemStatic, bei denen +Allow === 1
    +Sonderfall: TALAS erhält ein Untermenü für +„Kabelstrecken“

  • +
  • Lokale Speicherung:
    +Sichtbarkeiten, Bearbeitungsmodus und POI-Zustand werden in +localStorage geschrieben und bei Initialisierung +geladen

  • +
  • Bearbeitungsmodus:
    +Wenn aktiv (editMode === true), sind Layer-Checkboxen +deaktiviert

  • +
+
+

📥 Wichtige Funktionen

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FunktionZweck
handleAreaChange()Setzt selectedArea im Redux Store
handleCheckboxChange()Schaltet Sichtbarkeit einzelner Layer
handlePolylineCheckboxChange()Aktiviert Sichtbarkeit von Kabelstrecken
handlePoiCheckboxChange()Aktiviert Sichtbarkeit von POIs
handleIconClick()Setzt Station zurück und triggert Zoom
+
+

🐞 Debug-Hinweise

+
    +
  • Debug-Logs:
    +__debug.gisStations
    +werden ausgegeben, um sicherzustellen, dass Daten korrekt geladen +wurden

  • +
  • Warnungen:
    +Falls .Points nicht vorhanden ist, wird dies in der Konsole +gewarnt

  • +
+
+

🛠 ToDos / Erweiterungsideen

+
    +
  • Checkboxen für Bereiche („Bereiche“, „Standorte“) sind bereits +vorbereitet, aber auskommentiert
  • +
  • Möglichkeit, Tooltips zu aktivieren/deaktivieren?
  • +
  • Gruppierung von Layern nach Typ (z. B. Linien, Geräte, POIs)
  • +
+
+

📄 Verwendete Komponenten

+
    +
  • MapLayersControlPanel
  • +
  • EditModeToggle – Schaltfläche für Umschalten des +Bearbeitungsmodus
  • +
+
+

✅ Zustand: Lokal & Global

+
    +
  • Global: useSelector(...) aus +Redux
  • +
  • Lokal: useState(...) für editMode, +stationListing, systemListing
  • +
+
+

📦 LokaleStorage-Keys

+ + + + + + + + + + + + + + + + + + + + + + + + + +
KeyBeschreibung
poiVisibleSichtbarkeit der POI-Marker
polylineVisibleSichtbarkeit der Kabelstrecken
mapLayersVisibilitySichtbarkeiten der einzelnen Systeme
editModeZustand des Bearbeitungsmodus (true/false)
+
+

🧪 Testempfehlung

+
    +
  • Dropdown zeigt erwartete Area_Name-Werte?
  • +
  • Layer-Checkboxen werden korrekt gespeichert?
  • +
  • Bei TALAS erscheint zusätzlich: „Kabelstrecken“?
  • +
  • Bei Wechsel der Station wird setSelectedArea +ausgelöst?
  • +
+
+

🧩 Verknüpfte Dateien

+
    +
  • redux/slices/webservice/gisStationsStaticDistrictSlice.js
  • +
  • redux/slices/webservice/gisSystemStaticSlice.js
  • +
  • redux/slices/mapLayersSlice.js
  • +
  • redux/slices/selectedAreaSlice.js
  • +
  • redux/slices/database/polylines/polylineLayerVisibleSlice.js
  • +
  • redux/slices/database/pois/poiLayerVisibleSlice.js
  • +
+
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/mapLayersControlPanel/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/mapLayersControlPanel/README.html new file mode 100644 index 000000000..1cad0bf4e --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/components/uiWidgets/mapLayersControlPanel/README.html @@ -0,0 +1,6 @@ +

📄 +Übersicht: docs/components/uiWidgets/mapLayersControlPanel

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/config/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/config/README.html new file mode 100644 index 000000000..58621445a --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/config/README.html @@ -0,0 +1,107 @@ + +

⚙️ Konfigurationsübersicht +(/config)

+

Dieses Verzeichnis enthält die zentrale Pfad-Konfigurationsdatei, die +für konsistente URL-Generierung in NodeMap zuständig ist.

+
+

📁 paths.js

+
    +
  • Berechnet den Basis-Pfad aus .env.production oder +.env.development
  • +
  • Liefert BASE_URL, z. B. /talas5
  • +
  • Wird in der gesamten App zur dynamischen URL-Erzeugung +verwendet
  • +
+
+

Diese Konfiguration stellt sicher, dass NodeMap unabhängig von +Hostname, Port oder Verzeichnisstruktur funktioniert.

+

📄 Pfad: /config/paths.js

+
+

OSM‑basierte, „open“ Quellen

+

Diese sind datenrechtlich offen (ODbL bzw. Community-Lizenzen), aber +das „kostenlos“ gilt nicht im Sinne unbegrenzter Tile‑Nutzung. Die +Tile‑Server werden als Community‑Ressource bereitgestellt – bitte +Policies respektieren.

+
    +
  • osm-standard (OpenStreetMap)
  • +
    • +
    • Key: Nein
    • +
  • +
    • +
    • Nutzung: Fair‑Use; für produktive/hohe Last eigenen +Tile‑Server/Provider verwenden.
    • +
  • +
    • +
    • Attribution: „© OpenStreetMap contributors“
    • +
  • +
  • osm-humanitarian (HOT)
  • +
    • +
    • Key: Nein
    • +
  • +
    • +
    • Nutzung: Fair‑Use; für größere Last die Betreiber kontaktieren bzw. +andere Infrastruktur nutzen.
    • +
  • +
    • +
    • Attribution: „© OpenStreetMap contributors
    • +
  • +
  • +
  • Humanitarian OpenStreetMap Team“ cyclosm
  • +
    • +
    • Key: Nein
    • +
  • +
    • +
    • Nutzung: Fair‑Use (bereitgestellt u. a. über OSM France). Für höhere +Last Unterstützung/Hostingoptionen prüfen.
    • +
  • +
    • +
    • Attribution: „CyclOSM“ + „OpenStreetMap contributors“
    • +
  • +
  • Praxis‑Tipps Kleine bis mittlere Nutzung: Die oben genannten +„keyless“ Quellen sind oft ausreichend, solange du Attribution setzt und +Limits respektierst. Produktion/hohe Last: Nutze einen Anbieter mit +Vertrag/Key (z. B. Thunderforest, Tracestrack, MapTiler, Mapbox) oder +hoste Tiles selbst. Schlüssel im Client: Für Thunderforest/Tracestrack +stehen die Keys im Frontend. Das ist üblich, aber der Key ist sichtbar. +Wenn du ihn verbergen willst, richte einen kleinen Tile‑Proxy auf deinem +Server ein, der den Key serverseitig anhängt und optional cached. +Attribution: Dein BaseMapPanel setzt bereits Attributionsstrings aus +config.json. Achte darauf, dass sie je Quelle korrekt sind.
  • +
+
+

Kurzantwort: Für kommerzielle Nutzung sind OSM‑Community‑Tile‑Server +nicht geeignet. Nutze einen bezahlten Anbieter (z. B. Thunderforest, +Tracestrack) oder hoste selbst. Attribution ist immer Pflicht.

+

Links und Hinweise je Layer/Provider:

+

OpenStreetMap Standard (osm-standard)

+

Lizenz/Daten: ODbL, Attribution Pflicht Tile-Server-Policy (keine +Produktion/hohe Last): +https://operations.osmfoundation.org/policies/tiles/ +Urheberrecht/Attribution: https://www.openstreetmap.org/copyright HOT +Humanitarian (osm-humanitarian)

+

Community-Server (OSM France); keine Produktion/hohe Last Info/Policy +OSM France Tiles: https://tile.openstreetmap.fr/ HOT: +https://www.hotosm.org/ CyclOSM (cyclosm)

+

Community-Server (OSM France); keine Produktion/hohe Last +Projektseite: https://www.cyclosm.org/ Hinweise/Policy (OSM France): +https://tile.openstreetmap.fr/ Wiki: +https://wiki.openstreetmap.org/wiki/CyclOSM Carto Light (carto-light / +Positron)

+

Keylos nutzbar mit Attribution; Fair‑Use, für hohe Last über +CARTO‑Pläne Basemaps: https://carto.com/basemaps/ Attribution: +https://carto.com/attributions Pricing (Plattform): +https://carto.com/pricing/ (bei großem Volumen Sales kontaktieren) +Thunderforest (Cycle/Transport u. a.)

+

Kommerziell mit API‑Key; Pläne von Free bis Pro Pricing: +https://www.thunderforest.com/pricing/ Terms/Attribution: +https://www.thunderforest.com/terms/ Tracestrack Topo

+

API‑Key erforderlich; kostenlose und bezahlte Pläne +Übersicht/Pricing: https://www.tracestrack.com/en/maps/ +Nutzungsbedingungen: https://www.tracestrack.com/en/terms/ +Empfehlung:

+

Produktion: Nimm Thunderforest oder Tracestrack (oder MapTiler: +https://www.maptiler.com/pricing/) oder hoste Tiles selbst. Attribution +in der Karte anzeigen (OSM + jeweiliger Anbieter). Soll ich diese Links +samt klarer Hinweise kompakt in eure README.md einpflegen?

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/config/paths.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/config/paths.html new file mode 100644 index 000000000..af85af77a --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/config/paths.html @@ -0,0 +1,17 @@ + +

📁 paths.js

+

Berechnet den sauberen BASE_URL-Pfad basierend auf +.env.production oder +public/config.json → basePath.
+Entfernt führende und abschließende Slashes.

+

Beispiel

+

Wenn basePath = "/talas5/" in config.json gesetzt ist, +wird BASE_URL = "/talas5" verwendet.

+
const BASE_PATH = basePathRaw.replace(/^\/|\/$/g, "");
+export const BASE_URL = BASE_PATH ? `/${BASE_PATH}` : "";
+

Nutzung

+
    +
  • Für konsistente Pfadangaben im gesamten Projekt
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/env.local..html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/env.local..html new file mode 100644 index 000000000..afe8544a5 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/env.local..html @@ -0,0 +1,10 @@ + +

/docs/env.local.schema.md

+
    +
  • NEXT_PUBLIC_API_HOST → Webservice-DNS oder IP
  • +
  • NEXT_PUBLIC_API_BASE_PATH → z. B. talas5, +per Deployment steuerbar
  • +
  • DB_NAME → hängt vom Kundenprojekt ab
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/README.html new file mode 100644 index 000000000..455a8ab92 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/README.html @@ -0,0 +1,14 @@ +

📄 Übersicht: docs/guide

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/dependencies.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/dependencies.html new file mode 100644 index 000000000..1945d07a5 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/dependencies.html @@ -0,0 +1,272 @@ + +

📂 Abhängigkeiten in +NodeMap (Stand: 2025)

+

Diese Datei listet alle Drittanbieter-Abhängigkeiten aus der Datei +package.json mit einer kurzen Erklärung, wofür sie im +Projekt verwendet werden.

+
+

✨ Frameworks & Tooling

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + +
PaketZweck & Beschreibung
nextHauptframework (Next.js) zur Erstellung von React-basierten +SSR/SSG-Apps.
react / react-domGrundlage für UI-Komponenten im Projekt.
tailwindcss / postcss / +autoprefixerStyling mit Tailwind. PostCSS verarbeitet CSS, Autoprefixer fügt +vendor-spezifische Präfixe hinzu.
dotenvErmöglicht das Einlesen von .env-Dateien zur Laufzeit +auf dem Server.
+
+

🌐 Leaflet & Karten

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PaketZweck & Beschreibung
leafletBasiskartenbibliothek zur Darstellung interaktiver Karten.
leaflet-contextmenuKontextmenüs per Rechtsklick in Leaflet.
leaflet-control-geocoderSteuerelement für Suche/Geokodierung in Karten.
leaflet.smooth_marker_bouncingAnimation für Marker-Bounces (visuelles Feedback).
overlapping-marker-spiderfier-leafletMarker-Overlapping-Management mit Spiderfy-Effekt bei Klick.
+
+

🪄 Zustand & Redux

+ ++++ + + + + + + + + + + + + + + + + + + + + +
PaketZweck & Beschreibung
@reduxjs/toolkitVereinfachte Redux-Nutzung mit Slices & Thunks.
redux / react-reduxCore-State-Management in React-Komponenten.
redux-thunkMiddleware zur Verarbeitung von asynchronen Aktionen.
+
+

🦜 UI & Styling

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PaketZweck & Beschreibung
@mui/icons-materialUI-Icons aus der Material UI Sammlung.
@emotion/react, @emotion/styledStyled Components-Engine, benötigt für MUI Styling.
@heroicons/reactReact-Icons im Hero-Stil für UI.
react-selectErweiterte Dropdown-Komponente mit Suchfunktion.
react-toastifyBenachrichtigungs-Tool für Toast-Meldungen.
+
+

📁 Daten & Kommunikation

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PaketZweck & Beschreibung
axiosHTTP-Client zur API-Kommunikation (z. B. zu Webservices).
cookiesZugriff & Verwaltung von Cookies auf Server/Client.
wsWebSocket-Kommunikation mit z. B. GMA-Live-Daten.
xml2js / fast-xml-parserParsen von XML-Antworten aus Webservices.
mysql / mysql2Zugriff auf MySQL-Datenbanken.
+
+

🚫 Sicherheit & Netzwerk

+ ++++ + + + + + + + + + + + + + + + + +
PaketZweck & Beschreibung
http-proxy-middlewareAPI-Routing & Proxy-Zugriff z. B. für lokale Entwicklung.
nextjs-corsCORS-Konfiguration für Next.js API-Routen.
+
+

🎓 Entwicklung & Test +(nur devDependencies)

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PaketZweck & Beschreibung
cypressEnd-to-End-Testing.
jest-environment-jsdom / +jest-fetch-mock / jest-junitUnit- & Integrationstests.
identity-obj-proxyMocking für CSS-Module im Jest-Testkontext.
node-fetch, node-mocks-httpHTTP-Mocks für Tests.
huskyGit-Hook-Management (Pre-Commit etc.).
raw-loaderImport von Rohdaten (z. B. SVG) in Webpack.
+
+

📄 Weitere Tools & Hilfen

+ + + + + + + + + + + + + + + + + +
PaketZweck & Beschreibung
prepareWird durch Husky benötigt zum Setup von Hooks.
bump-versionInterner Versionsbump-Script für appVersion.js.
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/env.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/env.html new file mode 100644 index 000000000..5f99a29ca --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/env.html @@ -0,0 +1,108 @@ + +

🌐 +Umgebungsvariablen (.env.production / +.env.development)

+

NodeMap verwendet Umgebungsvariablen zur Steuerung von API-Verhalten, +Serverpfaden und Moduswahl (Mock oder Produktion).

+

📂 Speicherort

+
    +
  • Entwicklung: .env.development
  • +
  • Produktion: .env.production (für +npm run build & npm start)
  • +
+

🔧 Wichtige Variablen

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
VariableBeispielwertBeschreibung
DB_HOSTlocalhostAdresse des Datenbankservers (MySQL)
DB_PORT3306Port für die Datenbankverbindung
DB_NAMEtalasDatenbankname
DB_USERrootBenutzername für MySQL
DB_PASSWORDgeheimPasswort für MySQL
NEXT_PUBLIC_API_PORT_MODEprod oder devSteuert API-Routing bei Services (z. B. Portwechsel für lokal)
NEXT_PUBLIC_USE_MOCKStrue oder falseAktiviert den Mockdaten-Modus über /api/mocks/...
basePath (in config.json)/talas5 oder leerOptionaler Pfad, falls App unter Subpfad läuft (z. B. IIS). Wird +jetzt in public/config.json gepflegt.
NEXT_PUBLIC_DEBUGtrue oder falseAktiviert zusätzliche console.log Ausgaben für +Debugging im Browser
+

📦 Beispiel +.env.production

+
DB_HOST=localhost
+DB_PORT=3306
+DB_NAME=talas
+DB_USER=root
+DB_PASSWORD=geheim
+NEXT_PUBLIC_API_PORT_MODE=prod
+NEXT_PUBLIC_USE_MOCKS=false
+// public/config.json
+{
+    ...
+    "basePath": "/talas5"
+}
+NEXT_PUBLIC_DEBUG=false
+

📦 Beispiel +.env.development

+
DB_HOST=localhost
+DB_PORT=3306
+DB_NAME=talas
+DB_USER=root
+DB_PASSWORD=geheim
+NEXT_PUBLIC_API_PORT_MODE=dev
+NEXT_PUBLIC_USE_MOCKS=true
+// public/config.json
+{
+    ...
+    "basePath": "/talas5"
+}
+NEXT_PUBLIC_DEBUG=true
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/faq.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/faq.html new file mode 100644 index 000000000..9dacd262f --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/faq.html @@ -0,0 +1,85 @@ + +

❓ FAQ – Häufige Fragen

+
+

🔹 Warum sehe ich nur eine +weiße Seite?

+
    +
  • Stelle sicher, dass .env.production korrekt +konfiguriert ist.
  • +
  • Prüfe, ob NEXT_PUBLIC_USE_MOCKS=false gesetzt ist (nur +in Produktion).
  • +
  • Starte den Dienst neu (NodeMapService) oder führe +npm start im Terminal aus.
  • +
+
+

🔹 Was bedeutet die URL +?m=12&u=484?

+
    +
  • m=12 ist die Map-ID (z. B. +Leverkusen).
  • +
  • u=484 ist die User-ID.
  • +
  • Diese IDs werden vom übergeordneten System +(TALAS.web) übergeben und steuern, was angezeigt +wird.
  • +
+
+

🔹 Wie kann ich +POIs hinzufügen oder bearbeiten?

+
    +
  • Rechtsklick auf die Karte → „POI hinzufügen“ oder +„bearbeiten“.
  • +
  • Daten werden automatisch gespeichert, wenn du das Formular +bestätigst.
  • +
+
+

🔹 Wie kann +ich die Karte lokal testen, ohne Backend?

+
    +
  • Setze in .env.development die Variable +NEXT_PUBLIC_USE_MOCKS=true.
  • +
  • Starte mit npm run dev.
  • +
  • Die App lädt jetzt Mockdaten aus /mockData/.
  • +
+
+

🔹 Was mache +ich, wenn keine Marker angezeigt werden?

+
    +
  • Prüfe die Verbindung zum Webservice:
    +http://<ip>/talas5/ClientData/WebServiceMap.asmx
  • +
  • Stelle sicher, dass die Map-ID und +User-ID in der URL gültig sind.
  • +
+
+

🔹 +Wie erkenne ich, ob mein Layer (z. B. TALAS, WAGO, GMA) geladen +ist?

+
    +
  • Im rechten Panel (LayerControl) sollten Checkboxen +für jeden Layer erscheinen.
  • +
  • Wenn keine Layer sichtbar sind, prüfe +redux/mapLayersSlice und den Webservice +GisSystemStatic.
  • +
+
+

🔹 +Was tun bei der Meldung „Fehler beim Laden der Kartenkacheln“?

+
    +
  • Verzeichnis C:\inetpub\wwwroot\talas5\TileMap +prüfen.
  • +
  • Kartenkacheln müssen im public/-Pfad korrekt verlinkt +sein (z. B. mapTiles/...).
  • +
+
+

🔹 Wie kann ich die +Anwendung aktualisieren?

+
    +
  • Kleines Update: Nur .next/ +kopieren.
  • +
  • Größeres Update: Gesamte App inkl. +node_modules, .env.production und +public/ ersetzen.
  • +
  • Dienst neu starten.
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/glossar.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/glossar.html new file mode 100644 index 000000000..7cb1e6d30 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/glossar.html @@ -0,0 +1,128 @@ +

📘 Glossar

+

Eine Übersicht wichtiger Begriffe rund um NodeMap und die verwendeten +Technologien.

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
BegriffErklärung
NodeMapDie Kartenanwendung zur Darstellung von GIS-Daten (z. B. POIs, +Geräte) in TALAS.web.
Next.jsEin Webframework für React, das Server-Rendering und Routing +vereinfacht.
ReactEine JavaScript-Bibliothek zur Erstellung von Benutzeroberflächen +(UI).
Redux ToolkitEin Tool zur einfacheren Zustandverwaltung (State Management) für +React.
Tailwind CSSEin CSS-Framework mit vordefinierten Klassen für schnelles +UI-Design.
LeafletEine JavaScript-Bibliothek für interaktive Karten auf +Webseiten.
POI„Point of Interest“ – Ein Marker auf der Karte (z. B. ein Gerät, +Schacht oder Messpunkt).
MapComponentDie Hauptkomponente, die die Karte lädt und alle Inhalte darauf +anzeigt.
WebServiceEin Serverdienst, der Daten wie POIs, Linien, Geräte liefert (z. B. +aus TALAS).
.env.productionEine Konfigurationsdatei mit Zugangsdaten und Einstellungen für den +Live-Betrieb.
MockdatenTestdaten, die lokal geladen werden, wenn kein Server verfügbar ist +(USE_MOCKS=true).
iFrameEin HTML-Element, mit dem eine andere Webseite innerhalb einer Seite +eingebettet wird.
nssm.exeEin Tool, um Node.js-Anwendungen als Windows-Dienst laufen zu +lassen.
Port 3000Der lokale Entwicklungs-Port, unter dem NodeMap im Browser +erreichbar ist.
Redux SliceEin Teil des globalen Redux-Zustands, der z. B. POIs oder Linien +speichert.
ThunkEine asynchrone Funktion in Redux, z. B. um Daten vom Server zu +laden.
ContextmenüEin Rechtsklick-Menü mit Funktionen wie „POI hinzufügen“, „Station +öffnen“.
LayerEin Karten-Overlay (z. B. Geräte, Linien), das ein- oder +ausgeblendet werden kann.
IdSystem / IdMapInterne IDs zur Zuordnung von Layern und Karten in TALAS.
GisSystemStaticEine Webservice-Antwort mit Systeminformationen für die +Kartendarstellung.
mapTilesBildkacheln (z. B. .png), die die Grundkarte darstellen +– wie bei Google Maps.
TALAS.webDie bestehende (ältere) Verwaltungssoftware, in die NodeMap +eingebettet wird.
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/mock-data.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/mock-data.html new file mode 100644 index 000000000..ee66fe3e9 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/mock-data.html @@ -0,0 +1,65 @@ +

🧪 Mockdaten-Modus +(NEXT_PUBLIC_USE_MOCKS=true)

+

Dieses Projekt unterstützt einen optionalen +Mockdaten-Modus, um Entwicklung und Tests ohne +Backend/Webservice durchzuführen.

+
+

🔍 Zweck & Nutzen

+
    +
  • Schneller Entwicklungsstart ohne aktive Serververbindung
  • +
  • Stabilere Testszenarien mit festen JSON-Daten
  • +
  • Vollständige Isolation von Backend-Fehlern während der +UI-Entwicklung
  • +
+
+

⚙️ Aktivierung

+

Mockdaten werden aktiviert durch folgende Umgebungsvariable:

+
NEXT_PUBLIC_USE_MOCKS=true
+

Diese Variable wird in .env.development gesetzt und +nicht für die Produktionsumgebung verwendet.
+Im Produktivbetrieb steht:

+
NEXT_PUBLIC_USE_MOCKS=false
+
+

🧩 Funktionsweise

+

Wenn NEXT_PUBLIC_USE_MOCKS=true gesetzt ist:

+
    +
  • Statt realer Webservices werden Endpunkte unter +/pages/api/mocks/webservice/*.js aufgerufen
  • +
  • Diese geben vorbereitete JSON-Dateien unter +/mockData/*.json zurück
  • +
+
+

📂 Beispiel-Aufruf im +Mockmodus

+
// Beispiel aus fetchGisSystemStaticService.js
+const url = useMocks
+  ? "/api/mocks/webservice/GisSystemStatic"
+  : `${apiUrl}/WebServiceMap.asmx/GisSystemStatic`;
+
+

🛡️ Sicherheit & +Versionskontrolle

+
    +
  • Alle .json-Dateien im Ordner /mockData/ +sind über .gitignore vom Repository ausgeschlossen
  • +
  • So wird verhindert, dass versehentlich sensible Testdaten +veröffentlicht werden
  • +
+
+

💡 Hinweise

+
    +
  • Mockdaten sollen nur die wichtigsten API-Schnittstellen +simulieren
  • +
  • Bei Änderungen am Datenmodell sollten auch die Mockdaten +aktualisiert werden
  • +
  • Eine zentrale Thunk- & Service-Logik entscheidet automatisch, ob +mock oder real
  • +
+
+

🔗 Weitere Informationen

+ +
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/onboarding-checklist.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/onboarding-checklist.html new file mode 100644 index 000000000..67e070691 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/onboarding-checklist.html @@ -0,0 +1,59 @@ +

✅ +Onboarding-Checkliste für neue Entwickler bei NodeMap

+

Willkommen im NodeMap-Team! Diese Checkliste begleitet dich Schritt +für Schritt beim Einstieg ins Projekt.

+
+

🚦 Schritte zum Start

+
    +
  1. README.md lesen
    +Verschaffe dir einen Überblick über das Projekt.
    +☐ Erledigt

  2. +
  3. Repository clonen & installieren

    +
    git clone http://10.10.0.12:3000/ISA/nodeMap
    +cd nodeMap
    +npm install
    +

    ☐ Erledigt

  4. +
  5. .env.development anlegen
    +Siehe env.md für Details.
    +☐ Erledigt

  6. +
  7. Mock-Modus aktivieren

    +
    NEXT_PUBLIC_USE_MOCKS=true
    +

    ☐ Erledigt

  8. +
  9. Projekt starten

    +
    npm run dev
    +

    ☐ Erledigt

  10. +
  11. App im Browser öffnen
    +Gehe zu: http://localhost:3000
    +☐ Erledigt

  12. +
  13. POIs testen
    +Hinzufügen, Verschieben, Löschen – siehe user-guide.md.
    +☐ Erledigt

  14. +
  15. Redux DevTools installieren & testen
    +Empfohlen für Debugging.
    +☐ Erledigt

  16. +
  17. Projektstruktur ansehen
    +Wichtige Ordner: components/, redux/, +services/ – siehe project-structure.md.
    +☐ Erledigt

  18. +
  19. Webservices überfliegen
    +Siehe webservices.md.
    +☐ Erledigt

  20. +
  21. Fehlerbehandlung beachten
    +Hinweise dazu findest du im README.
    +☐ Erledigt

  22. +
  23. Fragen notieren & klären
    +Sammle offene Punkte und sprich sie im Team an.
    +☐ Erledigt

  24. +
+
+

Tipp: Hake jeden Schritt ab, sobald du ihn erledigt +hast.
+Viel Erfolg beim Einstieg! 🎉

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/project-structure.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/project-structure.html new file mode 100644 index 000000000..03a8f17c2 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/project-structure.html @@ -0,0 +1,135 @@ +

🧱 Projektstruktur

+
components/     → UI-Komponenten inkl. Karte und Layer-Control-Panel (`MapLayersControlPanel`)
+
+📦components
+  📂contextmenu
+  ┣ 📜CoordinatePopup.js
+  ┗ 📜useMapContextMenu.js
+  📂gisPolylines
+  ┣ 📂icons
+  ┃ ┣ 📜CircleIcon.js
+  ┃ ┣ 📜EndIcon.js
+  ┃ ┣ 📜StartIcon.js
+  ┃ ┗ 📜SupportPointIcons.js
+  ┗ 📜PolylineContextMenu.js
+  📂icons
+  ┗ 📂devices
+  ┃ ┗ 📂overlapping
+  ┃ ┃ ┗ 📜PlusRoundIcon.js
+  📂mainComponent
+  ┣ 📂hooks
+  ┃ ┗ 📜useInitializeMap.js
+  ┗ 📜MapComponent.js
+  📂pois
+  ┣ 📜AddPOIModal.js
+  ┗ 📜PoiUpdateModal.js
+  📂uiWidgets
+  ┣ 📂mapLayersControlPanel
+  ┃ ┣ 📜EditModeToggle.js
+  ┃ ┗ 📜MapLayersControlPanel.js
+  ┣ 📜CoordinateInput.js
+  ┗ 📜VersionInfoModal.js
+  📜TestScript.js
+
+config/         → zentrale Variablen (.env.development, .env.production)
+
+hooks/          → eigene React-Hooks
+
+utils/          → POI- und Linienverarbeitung
+
+lib/            → Formatierungen, Umrechnungen
+
+public/         → Bilder, Icons, mapTiles sind nicht im nodeMap Projekt Verzeichnis sondern in TALAS Verzeichnis
+
+pages/          → Next.js Seiten & Routen
+
+scripts/        → lokale Tools (nur Dev)
+
+redux/          → globale Zustände (Slices)
+📦redux
+  📂slices
+  ┣ 📂database
+  ┃ ┣ 📂pois
+  ┃ ┃ ┣ 📜addPoiOnPolylineSlice.js
+  ┃ ┃ ┣ 📜addPoiSlice.js
+  ┃ ┃ ┣ 📜currentPoiSlice.js
+  ┃ ┃ ┣ 📜poiIconsDataSlice.js
+  ┃ ┃ ┣ 📜poiLayerVisibleSlice.js
+  ┃ ┃ ┣ 📜poiReadFromDbTriggerSlice.js
+  ┃ ┃ ┣ 📜poiTypesSlice.js
+  ┃ ┃ ┣ 📜poiTypSlice.js
+  ┃ ┃ ┣ 📜readPoiMarkersStoreSlice.js
+  ┃ ┃ ┗ 📜selectedPoiSlice.js
+  ┃ ┣ 📂polylines
+  ┃ ┃ ┣ 📜gisLinesSlice.js
+  ┃ ┃ ┣ 📜polylineContextMenuSlice.js
+  ┃ ┃ ┣ 📜polylineEventsDisabledSlice.js
+  ┃ ┃ ┗ 📜polylineLayerVisibleSlice.js
+  ┃ ┣ 📜locationDevicesFromDBSlice.js
+  ┃ ┣ 📜locationDevicesSlice.js
+  ┃ ┗ 📜priorityConfigSlice.js
+  ┣ 📂webservice
+  ┃ ┣ 📜gisLinesStatusSlice.js
+  ┃ ┣ 📜gisStationsMeasurementsSlice.js
+  ┃ ┣ 📜gisStationsStaticDistrictSlice.js
+  ┃ ┣ 📜gisStationsStatusDistrictSlice.js
+  ┃ ┣ 📜gisSystemStaticSlice.js
+  ┃ ┗ 📜userRightsSlice.js
+  ┣ 📜lineVisibilitySlice.js
+  ┣ 📜mapLayersSlice.js
+  ┣ 📜selectedAreaSlice.js
+  ┣ 📜selectedDeviceSlice.js
+  ┣ 📜urlParameterSlice.js
+  ┗ 📜zoomTriggerSlice.js
+  📂thunks
+  ┣ 📂database
+  ┃ ┣ 📂pois
+  ┃ ┃ ┣ 📜addPoiThunk.js
+  ┃ ┃ ┣ 📜deletePoiThunk.js
+  ┃ ┃ ┣ 📜fetchPoiIconsDataThunk.js
+  ┃ ┃ ┣ 📜fetchPoiTypThunk.js
+  ┃ ┃ ┗ 📜updatePoiThunk.js
+  ┃ ┣ 📂polylines
+  ┃ ┃ ┗ 📜fetchGisLinesThunk.js
+  ┃ ┣ 📜fetchLocationDevicesThunk.js
+  ┃ ┣ 📜fetchPriorityConfigThunk.js
+  ┃ ┗ 📜getDeviceIdByNameThunk.js
+  ┗ 📂webservice
+  ┃ ┣ 📜fetchGisLinesStatusThunk.js
+  ┃ ┣ 📜fetchGisStationsMeasurementsThunk.js
+  ┃ ┣ 📜fetchGisStationsStaticDistrictThunk.js
+  ┃ ┣ 📜fetchGisStationsStatusDistrictThunk.js
+  ┃ ┣ 📜fetchGisSystemStaticThunk.js
+  ┃ ┗ 📜fetchUserRightsThunk.js
+  📜store.js
+
+services/       → API-Kommunikation, Mock-Logik
+📦services
+  📂database
+  ┣ 📂pois
+  ┃ ┣ 📜addPoiService.js
+  ┃ ┣ 📜deletePoiService.js
+  ┃ ┣ 📜fetchPoiDataByIdService.js
+  ┃ ┣ 📜fetchPoiDataService.js
+  ┃ ┣ 📜fetchPoiIconsDataService.js
+  ┃ ┣ 📜fetchPoiTypService.js
+  ┃ ┗ 📜updatePoiService.js
+  ┣ 📂polylines
+  ┃ ┗ 📜fetchGisLinesService.js
+  ┣ 📜fetchDeviceNameByIdService.js
+  ┣ 📜fetchLocationDevicesService.js
+  ┣ 📜fetchPriorityConfigService.js
+  ┣ 📜getDeviceIdByNameService.js
+  ┗ 📜updateLocationInDatabaseService.js
+  📂utils
+  ┗ 📜fetchWithTimeout.js
+  📂webservice
+  ┣ 📜fetchGisLinesStatusService.js
+  ┣ 📜fetchGisStationsMeasurementsService.js
+  ┣ 📜fetchGisStationsStaticDistrictService.js
+  ┣ 📜fetchGisStationsStatusDistrictService.js
+  ┣ 📜fetchGisSystemStaticService.js
+  ┗ 📜fetchUserRightsService.js
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/redux-zustand.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/redux-zustand.html new file mode 100644 index 000000000..a39bfd2cb --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/redux-zustand.html @@ -0,0 +1,23 @@ + +

🧠 Zustand: Redux

+

Die Anwendung verwendet vollständig Redux Toolkit +für die globale Zustandverwaltung.

+
    +
  • Dynamische Gerätegruppen (Layer) werden automatisch über +IdSystem aus GisSystemStatic +initialisiert
  • +
  • Layer-Steuerung erfolgt über system-<IdSystem> +Keys im Redux mapLayersSlice
  • +
  • Marker für Geräte werden über Vergleich System ↔︎ +IdSystem angezeigt
  • +
+

Gründe für Redux :

+
    +
  • Bessere Nachvollziehbarkeit durch zentrale Store-Struktur
  • +
  • Unterstützung für DevTools, Logging, Debugging
  • +
  • Einheitliche Behandlung von Status, auch bei komplexen +Komponenten
  • +
+

➡ Neue Features bitte ausschließlich mit Redux umsetzen!

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/setup-dev.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/setup-dev.html new file mode 100644 index 000000000..65e61a3ec --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/setup-dev.html @@ -0,0 +1,46 @@ +

🧑‍💻 Lokale Entwicklung mit +NodeMap

+

Diese Anleitung richtet sich an Entwickler, die NodeMap lokal +weiterentwickeln möchten.

+
+

Voraussetzungen

+
    +
  • Node.js v18+
  • +
  • NPM
  • +
  • Chrome / Edge / Firefox
  • +
+
+

Schritte

+
npm install
+npm run dev
+
+

Optionen

+
    +
  • Mockdaten-Modus aktivieren:
  • +
+
NEXT_PUBLIC_USE_MOCKS=true
+
    +
  • Umgebungsvariablen lokal definieren:
  • +
+

Datei .env.development mit Inhalten wie:

+
NEXT_PUBLIC_API_URL=http://localhost:3000
+NEXT_PUBLIC_USE_MOCKS=true
+
+

Debugging

+
    +
  • Verwende console.log in Komponenten oder +Redux-Slices
  • +
  • Browser-DevTools & Redux DevTools empfohlen
  • +
+
+

Weitere Dokumentation

+ +
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/user-guide.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/user-guide.html new file mode 100644 index 000000000..cbf7c71a9 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/user-guide.html @@ -0,0 +1,22 @@ + +

🧭 Benutzeranleitung

+
    +
  • Station öffnen: Rechte Maustaste → “Station öffnen” +oder “Station öffnen (Tab)”
  • +
  • POI hinzufügen: Rechtsklick → “POI hinzufügen” → +Formular ausfüllen
  • +
  • POI bearbeiten/löschen: Kontextmenü verwenden
  • +
  • POI verschieben: Drag & Drop des Markers, +automatische DB-Aktualisierung
  • +
  • Koordinaten anzeigen: Kontextmenüoption nutzen
  • +
  • Zoom: Mausrad oder Kontextmenüoption
  • +
  • Layer steuern: GIS-Geräte-Layer (z. B. TALAS, WAGO, +GMA) ein-/ausblenden über Checkboxen im rechten Panel +(MapLayersControlPanel)
  • +
  • Station auswählen: Dropdown oben rechts
  • +
  • Zentrieren: Rechtsklick → “Hier zentrieren”
  • +
  • Geräte-Kontextmenü: Rechtsklick auf Marker → +„Station öffnen (Tab)“
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/webservices.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/webservices.html new file mode 100644 index 000000000..93e23a891 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/guide/webservices.html @@ -0,0 +1,67 @@ +

📡 Webservice-Anbindung +(Backend: TALAS.web)

+

NodeMap verwendet verschiedene Webservices, die von TALAS +V5/TALAS.web im IIS bereitgestellt werden.
+Diese Services liefern dynamische GIS-, Geräte- und Statusdaten für die +MapComponent.

+

URL des Webservice:

+
http://localhost/talas5/ClientData/WebServiceMap.asmx
+
+

🔧 In .env.production oder config.js muss +die Adresse je nach Umgebung angepasst werden (z. B. +http://10.10.0.13/talas5/...)

+
+

Verfügbare Methoden (Auszug):

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EndpunktZweck / Datenquelle
CablesStaticListe aller Stränge
GetIconsStaticListe aller Icons
GisLinesStatusListe aller Status der Linien
GisStationsMeasurementsListe aller Messungen der Geräte
GisStationsStaticDistrictListe aller Geräte einer bestimmten Karte
GisStationsStatusDistrictListe aller Statis der Geräte
GisSystemStaticListe aller angezeigten Systeme
+

Die Webservices liefern JSON und werden im Frontend über +services/*.js abgefragt.
+Die Daten werden verarbeitet, zwischengespeichert und z. T. über Redux +in der Karte dargestellt.

+

➡ Damit alles funktioniert, müssen:

+
    +
  • der IIS laufen
  • +
  • der WebServiceMap.asmx erreichbar sein
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/README.html new file mode 100644 index 000000000..be5ed7c57 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/README.html @@ -0,0 +1,11 @@ +

📄 Übersicht: docs/hooks

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/layers/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/layers/README.html new file mode 100644 index 000000000..c6a5e8e71 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/layers/README.html @@ -0,0 +1,28 @@ +

📄 Übersicht: docs/hooks/layers

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/layers/useAreaMarkersLayer.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/layers/useAreaMarkersLayer.html new file mode 100644 index 000000000..d1f56870f --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/layers/useAreaMarkersLayer.html @@ -0,0 +1,16 @@ + +

🗺️ useAreaMarkersLayer.js

+

Lädt Bereichs-/Stationsmarker aus einer API und rendert sie auf der +Karte.

+

Features

+
    +
  • Marker mit Tooltip für Standort & Bereich
  • +
  • Draggable Marker (verschiebbar)
  • +
  • Automatischer API-Fetch mit fetch(...)
  • +
  • Dynamisches Layer-Handling via localStorage +(“mapLayersVisibility”)
  • +
  • Automatisches Speichern neuer Koordinaten per +updateAreaThunk()
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/layers/useDrawLines.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/layers/useDrawLines.html new file mode 100644 index 000000000..f520c9ca9 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/layers/useDrawLines.html @@ -0,0 +1,13 @@ + +

🧬 useDrawLines.js

+

Hook zur Konvertierung von GIS-Linien in kartentaugliche +Koordinatenpaare.

+

Schritte

+
    +
  • Lädt Linien mit fetchGisLinesThunk()
  • +
  • Wandelt points[x, y] in Leaflet-Koordinaten +[lat, lng] um
  • +
  • Gibt setLinePositions([...]) zurück
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useCreateAndSetDevices.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useCreateAndSetDevices.html new file mode 100644 index 000000000..dee7ea52d --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useCreateAndSetDevices.html @@ -0,0 +1,24 @@ + +

🛠️ useCreateAndSetDevices.js

+

Custom Hook zur Initialisierung von Leaflet-Markern für ein +bestimmtes System.
+Bindet createAndSetDevices(...) automatisch in einen +useEffect.

+

Beispiel: TALAS Layer ist mit Pfeilen markiert
+TALAS-Layer

+

Parameter

+
    +
  • systemId: ID des Gerätesystems (z. B. 1 = TALAS)
  • +
  • setMarkersFunction: Funktion zum Speichern der +erzeugten Marker
  • +
  • GisSystemStatic: Systemdaten aus Redux
  • +
  • priorityConfig: Konfigurationsobjekt zur +Prioritätsbewertung
  • +
+

Redux

+
    +
  • Bezieht polylineEventsDisabled aus Redux zur Steuerung +der Interaktivität
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useDynamicMarkerLayers.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useDynamicMarkerLayers.html new file mode 100644 index 000000000..be6777708 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useDynamicMarkerLayers.html @@ -0,0 +1,22 @@ + +

🔄 useDynamicMarkerLayers.js

+

Verwaltet alle Marker-Layergruppen dynamisch und modular in einem +zentralen Hook.

+

Beispiel: TALAS Layer ist mit Pfeilen markiert
+TALAS-Layer

+

Funktionen

+
    +
  • Initialisiert LayerGroups für 15+ Gerätesysteme
  • +
  • Ruft createAndSetDevices() pro System-ID auf
  • +
  • Führt automatisch Overlap-Check aus +(checkOverlappingMarkers)
  • +
  • Speichert erzeugte Marker in setMarkerStates
  • +
+

Voraussetzungen

+
    +
  • Karte (map) muss bereit sein
  • +
  • GisSystemStatic + priorityConfig + +Marker-Setter müssen übergeben werden
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useLayerVisibility.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useLayerVisibility.html new file mode 100644 index 000000000..3a7bf04bf --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useLayerVisibility.html @@ -0,0 +1,25 @@ + +

👁️ useLayerVisibility.js

+

Custom Hook zur dynamischen Steuerung von Layer-Sichtbarkeit +basierend auf Redux.

+

Beispiel: TALAS Layer ist mit Pfeilen markiert
+
+Redux
+
+Local Storage
+

+

Features

+
    +
  • Entfernt oder zeigt Marker je nach +mapLayersVisibility
  • +
  • Nutzt OverlappingMarkerSpiderfier
  • +
  • Nutzt Layer-IDs
  • +
+

Intern

+

Verwendet addContextMenuToMarker() zur +Kontextmenüintegration pro Marker.

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useLineData.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useLineData.html new file mode 100644 index 000000000..018539f28 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useLineData.html @@ -0,0 +1,21 @@ + +

📊 useLineData.js

+

Lädt Linienstatusdaten (Farben, Tooltips) aus zwei Webservices in +Redux und bereitet sie auf.

+

Rückgabe

+
    +
  • lineColors: Farben pro Linie basierend auf Status
  • +
  • tooltipContents: HTML-Tooltip pro Modul/Station
  • +
+

Datenquellen

+
    +
  • fetchGisLinesThunk() (Struktur)
  • +
  • fetchGisLinesStatusThunk() (Statusdaten)
  • +
+

Intern

+
    +
  • Nutzt Map valueMap, um Messwert, Schleifenwert, +Meldungen zu gruppieren
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useMapComponentState.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useMapComponentState.html new file mode 100644 index 000000000..d8ee67422 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useMapComponentState.html @@ -0,0 +1,21 @@ + +

🧠 useMapComponentState.js

+

Sammelt zentrale UI-Zustände und Redux-Daten für die +MapComponent.

+

Rückgabe

+
    +
  • POI-Typen + Ladezustand
  • +
  • deviceName (z. B. erstes Gerät)
  • +
  • locationDeviceData
  • +
  • priorityConfig
  • +
  • menuItemAdded, setMenuItemAdded
  • +
  • Sichtbarkeit des POI-Layers
  • +
+

Redux

+
    +
  • fetchPoiTypThunk, +fetchGisStationsStaticDistrictThunk, +fetchPriorityConfigThunk
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useMarkerLayers.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useMarkerLayers.html new file mode 100644 index 000000000..ba3f3b9fc --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/useMarkerLayers.html @@ -0,0 +1,13 @@ + +

📍 useMarkerLayers.js

+

Steuert das Hinzufügen oder Entfernen von Markern in ein +Leaflet-Map-Layer.

+

Verwendung

+
useMarkerLayers(map, gmaMarkers, "GMA");
+

Redux

+
    +
  • Liest mapLayersVisibility aus dem Store
  • +
  • Reagiert automatisch auf Änderungen
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/usePolylineTooltipLayer.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/usePolylineTooltipLayer.html new file mode 100644 index 000000000..6255d3a76 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/hooks/usePolylineTooltipLayer.html @@ -0,0 +1,20 @@ + +

💬 usePolylineTooltipLayer.js

+

Initialisiert und steuert Polylinien + Tooltip-Verhalten für +Linienmessdaten.

+

Funktion

+
    +
  • Nutzt setupPolylines(...) zur Marker- und +Linienerstellung
  • +
  • Tooltip-Anzeige bei mouseover, dynamisch +positioniert
  • +
  • Entfernt alte Marker und Polylinien automatisch
  • +
+

Parameter (gekürzt)

+
    +
  • map, markers, setMarkers, +setPolylines, linePositions, +tooltipContents, lineColors, etc.
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/nssm-exe-installation.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/nssm-exe-installation.html new file mode 100644 index 000000000..102974e1f --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/nssm-exe-installation.html @@ -0,0 +1,53 @@ + +
- Sicherstellen, dass `nssm.exe` in `C:\inetpub\wwwroot\talas5\nodeMap\` vorhanden ist
+- Als Administrator Eingabeaufforderung oder PowerShell öffnen
+
+- Navigiere zu dem NodeMap Projekt Verzeichnis:
+  ```shell
+  C:\Users\Administrator>cd C:\inetpub\wwwroot\talas5\nodeMap
+  ```
+
    +
  • Befehl zum Erstellen eines Dienstes: Führen Sie den folgenden +Befehl aus, um einen neuen Dienst zu erstellen:

    +
    .\nssm.exe install NodeMapService
    +

    Nachdem Sie diesen Befehl ausgeführt haben, öffnet sich ein +NSSM-Dialogfenster.

    +
    + + +
    +

    Dienstkonfiguration: In dem geöffneten +NSSM-Dialogfenster müssen Sie einige Parameter angeben:

    +
      +
    • Path: Der Pfad zur ausführbaren Datei, die der +Dienst ausführen soll.

      +
      C:\inetpub\wwwroot\talas5\nodeMap\StartNodeApp.bat
    • +
    • Startup directory: Das Verzeichnis, in dem die +Anwendung gestartet werden soll.

      +
      C:\inetpub\wwwroot\talas5\nodeMap
    • +
    • Arguments: kann leer gelassen werden.

    • +
  • +
  • Dienst starten: Sobald der Dienst erstellt wurde, können Sie ihn +starten. Das können Sie entweder über die Eingabeaufforderung oder über +die Diensteverwaltung von Windows tun.

    +
    +nodeMap Dienst + +
    +

    Um den Dienst über die Eingabeaufforderung zu starten, verwenden Sie +den folgenden Befehl:

    +
    nssm.exe start DienstName
  • +
+
+
    +
  • Dienst bearbeiten:

    +
    nssm.exe edit NodeMapService
  • +
  • Dienst entfernen:

    +
    nssm.exe remove NodeMapService confirm
    +

    dauert bis 1 Minute

  • +
+
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/README.html new file mode 100644 index 000000000..28be08a2f --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: docs/pages

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/_app.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/_app.html new file mode 100644 index 000000000..e97d6cfbb --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/_app.html @@ -0,0 +1,21 @@ + +

🌐 _app.js

+

Diese Datei stellt die Haupt-Wrap-Komponente der Next.js-App +dar.
+Sie initialisiert globale Provider wie den Redux Store.

+

Features

+
    +
  • Importiert globales CSS (styles/global.css)
  • +
  • Bindet Redux Provider um alle Seiten-Komponenten
  • +
  • Ermöglicht Zugriff auf Store in allen Seiten
  • +
+

Struktur

+
<Provider store={store}>
+  <Component {...pageProps} />
+</Provider>
+

Pfad

+
/pages/_app.js
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/README.html new file mode 100644 index 000000000..1dc8da6d5 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/README.html @@ -0,0 +1,4 @@ +

📄 Übersicht: docs/pages/api

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/[...path].html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/[...path].html new file mode 100644 index 000000000..8919fd8d0 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/[...path].html @@ -0,0 +1,37 @@ + +

🌐 […path].js

+

Next.js API-Proxy-Handler mit +http-proxy-middleware.
+Dient als Middleware zur Weiterleitung von API-Requests an das Backend +(z. B. Raspberry Pi oder Entwicklungsserver).

+
+

🔧 Funktion

+
    +
  • Leitet alle Requests von /api/... an das definierte +target weiter
  • +
  • Entfernt /api aus dem URL-Pfad
  • +
  • Erlaubt Cross-Origin Requests mit +changeOrigin: true
  • +
+
+

Ziel-Logik

+
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
+const target = mode === "dev" ? "http://localhost:80" : "http://localhost";
+
+

Beispiel

+
    +
  • Frontend-Request: +GET /api/GisStationsStaticDistrict
  • +
  • Weitergeleitet an: +GET http://localhost:80/GisStationsStaticDistrict
  • +
+
+

Besonderheiten

+
    +
  • Ermöglicht portunabhängige Proxy-Nutzung über .env
  • +
  • Setzt logLevel: "debug" zur Diagnose
  • +
+
+

Pfad

+
/pages/api/[...path].js
diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/README.html new file mode 100644 index 000000000..b4d9919aa --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: +docs/pages/api/talas_v5_DB

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/area/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/area/README.html new file mode 100644 index 000000000..fb5b7e7f6 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/area/README.html @@ -0,0 +1,6 @@ +

📄 Übersicht: +docs/pages/api/talas_v5_DB/area

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/area/readArea.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/area/readArea.html new file mode 100644 index 000000000..dd708d1be --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/area/readArea.html @@ -0,0 +1,40 @@ + +

📥 readArea.js

+

Liest Bereichskoordinaten (location_coordinates) aus der +Datenbank basierend auf idMaps (und optional +idLocation).

+

Methode

+
    +
  • GET
  • +
+

URL-Parameter

+ + + + + + + + + + + + + + + + + +
NameBeschreibung
mKarten-ID (entspricht idMaps)
idLocation(optional) ID eines bestimmten Bereichs
+

Verhalten

+
    +
  • Joint location, location_coordinates und +area-Tabelle
  • +
  • Gibt strukturierte Daten mit x, y, +location_name, area_name zurück
  • +
  • Nutzt MySQL-Pool (getPool())
  • +
+

Beispiel

+
GET /api/talas_v5_DB/area/readArea?m=3
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/area/updateArea.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/area/updateArea.html new file mode 100644 index 000000000..3d8db8481 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/area/updateArea.html @@ -0,0 +1,32 @@ + +

📤 updateArea.js

+

Aktualisiert die Koordinaten eines Bereichs +(location_coordinates) basierend auf +idLocation und idMap.

+

Methode

+
    +
  • PUT
  • +
+

Request-Body

+
{
+  "idLocation": 12,
+  "idMap": 3,
+  "x": 53.21421,
+  "y": 8.43212
+}
+

Verhalten

+
    +
  • Führt +UPDATE location_coordinates SET x=?, y=? WHERE idLocation=? AND idMaps=?
  • +
  • Gibt bei Erfolg success: true zurück
  • +
  • Nutzt MySQL-Pool und connection.release()
  • +
+

Fehlerbehandlung

+
    +
  • 400: Fehlende Daten
  • +
  • 404: Kein Eintrag gefunden
  • +
  • 500: Interner Fehler
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/device/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/device/README.html new file mode 100644 index 000000000..1d70b976a --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/device/README.html @@ -0,0 +1,6 @@ +

📄 Übersicht: +docs/pages/api/talas_v5_DB/device

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/device/getAllStationsNames.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/device/getAllStationsNames.html new file mode 100644 index 000000000..76b80dab6 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/device/getAllStationsNames.html @@ -0,0 +1,25 @@ + +

🧾 getAllStationsNames.js

+

Liefert eine Zuordnungstabelle aller Geräte-IDs (idLD) +zu ihren Namen (name).

+

Methode

+
    +
  • GET
  • +
+

Antwortformat

+
{
+  "123": "Kue 705",
+  "124": "Basisstation 1"
+}
+

Verhalten

+
    +
  • Nutzt Tabelle location_device
  • +
  • Gibt Fehler bei leerem Ergebnis (404) oder Datenbankfehler +(500)
  • +
+

Pfad

+
/pages/api/talas_v5_DB/device/getAllStationsNames.js
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/device/getDevices.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/device/getDevices.html new file mode 100644 index 000000000..fe47bd9d5 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/device/getDevices.html @@ -0,0 +1,30 @@ + +

🔌 getDevices.js

+

API-Route zum Abrufen aller Geräteinformationen aus der +devices-Tabelle.

+

Methode

+
    +
  • POST (erwartet JSON-Body mit optionalem +activeSystems-Array)
  • +
+

Verhalten

+
    +
  • Führt ein einfaches SELECT * FROM devices aus
  • +
  • Nutzt Singleton-MySQL-Pool für Verbindung
  • +
  • Rückgabe: JSON-Array mit allen Geräteobjekten
  • +
+

Beispielantwort

+
[
+  {
+    "id": 1,
+    "name": "Kue705",
+    "idsystem_typ": 1,
+    ...
+  }
+]
+

Pfad

+
/pages/api/talas_v5_DB/device/getDevices.js
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/gisLines/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/gisLines/README.html new file mode 100644 index 000000000..2df5fb631 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/gisLines/README.html @@ -0,0 +1,6 @@ +

📄 Übersicht: +docs/pages/api/talas_v5_DB/gisLines

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/gisLines/readGisLines.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/gisLines/readGisLines.html new file mode 100644 index 000000000..32121d381 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/gisLines/readGisLines.html @@ -0,0 +1,21 @@ + +

🧭 readGisLines.js

+

Liefert alle Linien aus der Tabelle gis_lines.

+

Methode

+
    +
  • GET
  • +
+

Rückgabe

+
    +
  • JSON-Array mit Objekten aus gis_lines
  • +
  • Leeres Array bei keinen Treffern
  • +
+

Besonderheiten

+
    +
  • Nutzt Singleton-Pool (getPool())
  • +
  • Immer HTTP 200, auch bei leerem Ergebnis
  • +
+

Beispiel

+
GET /api/talas_v5_DB/gisLines/readGisLines
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/gisLines/updateLineCoordinates.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/gisLines/updateLineCoordinates.html new file mode 100644 index 000000000..97803a746 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/gisLines/updateLineCoordinates.html @@ -0,0 +1,31 @@ + +

✏️ updateLineCoordinates.js

+

Aktualisiert die points-Spalte einer Linie in der +Tabelle gis_lines.

+

Methode

+
    +
  • POST
  • +
+

Request-Body

+
{
+  "idLD": 7,
+  "idModul": 2,
+  "newCoordinates": [
+    [53.2151, 8.4522],
+    [53.2165, 8.4531]
+  ]
+}
+

Verhalten

+
    +
  • Erzeugt aus Koordinaten eine LINESTRING(...)
  • +
  • Nutzt ST_GeomFromText() in MySQL
  • +
  • Transaktion mit Commit/Rollback
  • +
+

Fehlerfälle

+
    +
  • 400: Ungültige oder fehlende Felder
  • +
  • 500: Datenbankfehler
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/README.html new file mode 100644 index 000000000..b3a13e584 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/README.html @@ -0,0 +1,7 @@ +

📄 Übersicht: +docs/pages/api/talas_v5_DB/locationDevice

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/getDeviceId.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/getDeviceId.html new file mode 100644 index 000000000..0181a9c75 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/getDeviceId.html @@ -0,0 +1,33 @@ + +

🔍 getDeviceId.js

+

Gibt die Geräte-ID (idLD) zu einem übergebenen +Gerätenamen zurück.

+

Methode

+
    +
  • GET
  • +
+

Parameter

+ + + + + + + + + + + + + +
NameBeschreibung
deviceNameDer Gerätename (z. B. “Kue705”)
+

Antwort

+
{ "idLD": 27 }
+

Fehler

+
    +
  • 400: Wenn deviceName fehlt
  • +
  • 404: Gerät nicht gefunden
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/locationDeviceNameById.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/locationDeviceNameById.html new file mode 100644 index 000000000..8017ad280 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/locationDeviceNameById.html @@ -0,0 +1,32 @@ + +

🏷️ locationDeviceNameById.js

+

Gibt den Namen eines Geräts anhand seiner ID zurück.

+

Methode

+
    +
  • GET
  • +
+

Parameter

+ + + + + + + + + + + + + +
NameBeschreibung
idLDGeräte-ID (z. B. 27)
+

Antwort

+
{ "name": "Kue705" }
+

Fehler

+
    +
  • 400: Fehlender Parameter
  • +
  • 404: Gerät mit ID nicht gefunden
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/locationDevices.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/locationDevices.html new file mode 100644 index 000000000..f7c34a9c7 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/locationDevice/locationDevices.html @@ -0,0 +1,26 @@ + +

🗂️ locationDevices.js

+

Gibt eine vollständige Liste aller Geräte in der Tabelle +location_device zurück.

+

Methode

+
    +
  • GET
  • +
+

Verhalten

+
    +
  • Führt SELECT * FROM location_device ORDER BY name +aus
  • +
  • Gibt vollständige Objekte zurück
  • +
+

Beispielantwort

+
[
+  {
+    "idLD": 27,
+    "name": "Kue705",
+    "description": "...",
+    ...
+  }
+]
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/poiTyp/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/poiTyp/README.html new file mode 100644 index 000000000..bd835f8db --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/poiTyp/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: +docs/pages/api/talas_v5_DB/poiTyp

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/poiTyp/readPoiTyp.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/poiTyp/readPoiTyp.html new file mode 100644 index 000000000..dfa154ec7 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/poiTyp/readPoiTyp.html @@ -0,0 +1,30 @@ + +

🗂️ readPoiTyp.js

+

Liefert alle verfügbaren POI-Typen aus der Tabelle +poityp.

+

Methode

+
    +
  • GET
  • +
+

Rückgabe

+
    +
  • JSON-Array mit allen Einträgen in poityp
  • +
+

Besonderheiten

+
    +
  • Gibt bei leerem Ergebnis 200 mit Warnung zurück
  • +
  • Verwendet Singleton-Verbindungspool (getPool())
  • +
+

Beispiel

+
GET /api/talas_v5_DB/poiTyp/readPoiTyp
+

Antwort

+
[
+  {
+    "idPoiTyp": 1,
+    "name": "Messgerät",
+    "icon": 12
+  }
+]
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/README.html new file mode 100644 index 000000000..f75e1bfa2 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/README.html @@ -0,0 +1,11 @@ +

📄 Übersicht: +docs/pages/api/talas_v5_DB/pois

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/addPoi.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/addPoi.html new file mode 100644 index 000000000..234a78662 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/addPoi.html @@ -0,0 +1,23 @@ + +

➕ addPoi.js

+

Fügt einen neuen POI (Point of Interest) zur Datenbank hinzu.

+

Methode

+
    +
  • POST
  • +
+

Request-Body

+
{
+  "name": "POI A",
+  "poiTypeId": 1,
+  "latitude": 53.2,
+  "longitude": 8.1,
+  "idLD": 27
+}
+

Besonderheiten

+
    +
  • Position wird als POINT(longitude latitude) +gespeichert
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/deletePoi.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/deletePoi.html new file mode 100644 index 000000000..236bffdbe --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/deletePoi.html @@ -0,0 +1,29 @@ + +

❌ deletePoi.js

+

Löscht einen POI anhand seiner ID.

+

Methode

+
    +
  • DELETE
  • +
+

Query-Parameter

+ + + + + + + + + + + + + +
ParameterBeschreibung
idID des POI (idPoi)
+

Antwort

+
    +
  • 200: Erfolgreich gelöscht
  • +
  • 404: POI nicht gefunden
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/getPoiById.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/getPoiById.html new file mode 100644 index 000000000..9c337be5c --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/getPoiById.html @@ -0,0 +1,27 @@ + +

🔎 getPoiById.js

+

Gibt die Beschreibung eines POIs zurück.

+

Methode

+
    +
  • GET
  • +
+

Query-Parameter

+ + + + + + + + + + + + + +
ParameterBeschreibung
idPoiPOI-ID
+

Antwort

+
{ "description": "POI A" }
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/poi-icons.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/poi-icons.html new file mode 100644 index 000000000..a70ed49d8 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/poi-icons.html @@ -0,0 +1,17 @@ + +

🖼️ poi-icons.js

+

Gibt eine Liste aller POIs und ihrer zugehörigen Icon-Pfade +zurück.

+

Methode

+
    +
  • GET
  • +
+

Datenquelle

+
    +
  • poipoiTyppoiicons
  • +
+

Antwort

+
[{ "idPoi": 12, "path": "/icons/kue.svg" }]
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/readAllPOIs.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/readAllPOIs.html new file mode 100644 index 000000000..3ce9c0636 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/readAllPOIs.html @@ -0,0 +1,19 @@ + +

📋 readAllPOIs.js

+

Gibt alle POIs mit Positionen zurück.

+

Methode

+
    +
  • GET
  • +
+

Rückgabe

+
    +
  • JSON-Array mit idPoi, description, +idPoiTyp, idLD, position
  • +
+

Besonderheiten

+
    +
  • Position wird per ST_AsText(...) als String +geliefert
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/updateLocation.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/updateLocation.html new file mode 100644 index 000000000..fa32aa161 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/updateLocation.html @@ -0,0 +1,20 @@ + +

🧭 updateLocation.js

+

Aktualisiert die Position (POINT) eines POIs.

+

Methode

+
    +
  • POST
  • +
+

Request-Body

+
{
+  "id": 12,
+  "latitude": 53.2,
+  "longitude": 8.1
+}
+

Antwort

+
    +
  • 200: { success: true }
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/updatePoi.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/updatePoi.html new file mode 100644 index 000000000..801d23c97 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/pois/updatePoi.html @@ -0,0 +1,22 @@ + +

📝 updatePoi.js

+

Aktualisiert Beschreibung, Typ und Gerät eines POIs.

+

Methode

+
    +
  • POST
  • +
+

Request-Body

+
{
+  "idPoi": 12,
+  "description": "POI A",
+  "idPoiTyp": 2,
+  "idLD": 27
+}
+

Antwort

+
    +
  • 200: Erfolgreich aktualisiert
  • +
  • 404: POI nicht gefunden
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/priorityConfig.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/priorityConfig.html new file mode 100644 index 000000000..fad26728b --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/priorityConfig.html @@ -0,0 +1,107 @@ + +

📊 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

+
[
+  { "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

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
DateiZweck
fetchPriorityConfigThunk.jsHolt Prioritätsdaten über API und reicht sie an Redux weiter
priorityConfigSlice.jsSpeichert die geladenen Prioritätsdaten im Redux-Store
MapComponent.jsDispatcht Thunk zum Laden der Daten beim Start
useMapComponentState.jsLiest priorityConfig aus Redux und gibt es an +Marker-Setup weiter
createAndSetDevices.jsErzeugt Marker mit zIndexOffset basierend auf +Priorität
useCreateAndSetDevices.jsHook zur Initialisierung von Geräten auf der Karte
useDynamicMarkerLayers.jsVerwaltet Marker-Layer dynamisch (inkl. Z-Priorität)
+

❌ Fehlerbehandlung Bei DB- oder Verbindungsfehlern:

+

json Copy Edit { “error”: “Fehler bei der Abfrage” } HTTP-Statuscode: +500

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/station/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/station/README.html new file mode 100644 index 000000000..6e66c48df --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/station/README.html @@ -0,0 +1,6 @@ +

📄 Übersicht: +docs/pages/api/talas_v5_DB/station

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/station/getAllStationsNames.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/station/getAllStationsNames.html new file mode 100644 index 000000000..768ded3db --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/station/getAllStationsNames.html @@ -0,0 +1,27 @@ + +

🏷️ getAllStationsNames.js

+

Liefert eine Mapping-Tabelle aus idLD → +name aller Einträge in location_device.

+

Methode

+
    +
  • GET
  • +
+

Rückgabe

+
{
+  "12": "Hauptstation",
+  "13": "Unterstation"
+}
+

Verhalten

+
    +
  • Antwort ist ein Key-Value-Objekt
  • +
  • Nutzt reduce() zur Map-Erstellung
  • +
  • Verwendet MySQL-Singleton-Pool
  • +
+

Fehler

+
    +
  • 404: Wenn keine Daten vorhanden
  • +
  • 500: Datenbankfehler
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/station/getDevices.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/station/getDevices.html new file mode 100644 index 000000000..813c264d5 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/api/talas_v5_DB/station/getDevices.html @@ -0,0 +1,34 @@ + +

📦 getDevices.js

+

Gibt alle Geräte aus der devices-Tabelle zurück.

+

Methode

+
    +
  • POST
  • +
+

Request-Body

+
{
+  "activeSystems": [1, 2, 3]
+}
+

⚠️ Hinweis: Im aktuellen Code wird der Parameter +activeSystems nicht verwendet!

+

Rückgabe

+
    +
  • JSON-Array mit Geräteobjekten
  • +
+

Beispielantwort

+
[
+  {
+    "id": 1,
+    "name": "CPL V4.0",
+    "idsystem_typ": 1
+  }
+]
+

Fehler

+
    +
  • 404: Keine Ergebnisse
  • +
  • 500: Datenbankfehler
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/index.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/index.html new file mode 100644 index 000000000..047932dc0 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/pages/index.html @@ -0,0 +1,31 @@ + +

🏠 index.js (Home-Seite)

+

Die Hauptseite der Anwendung.
+Bindet dynamisch die Leaflet-Karte (MapComponent) und ein +Testscripting-Tool (TestScript).

+

Features

+
    +
  • MapComponent ohne SSR eingebunden
  • +
  • TestScript prüft per Konsole Logik/Strukturen
  • +
  • Lädt POI-Daten per fetchPoiMarkersThunk()
  • +
  • Liest URL-Parameter m und u
  • +
  • Unterstützt POI-Hinzufügen über addPoiThunk(...)
  • +
+

Redux-Slices

+
    +
  • poiMarkersSlice
  • +
  • addPoiSlice
  • +
  • poiReadFromDbTrigger
  • +
+

Struktur

+
<MapComponentWithNoSSR locations={locations} onAddLocation={handleAddLocation} />
+<TestScriptWithNoSSR />
+

Besonderheiten

+
    +
  • Dynamisches Nachladen der POIs bei Triggeränderung
  • +
  • Fehleranzeige über addPoiStatus + +addPoiError
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/README.html new file mode 100644 index 000000000..ba313ce05 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/README.html @@ -0,0 +1,4 @@ +

📄 Übersicht: docs/redux

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/README.html new file mode 100644 index 000000000..06cddba8a --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/README.html @@ -0,0 +1,9 @@ +

📄 Übersicht: docs/redux/slices

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/README.html new file mode 100644 index 000000000..afc53ed4c --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/README.html @@ -0,0 +1,8 @@ +

📄 Übersicht: +docs/redux/slices/database

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/area/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/area/README.html new file mode 100644 index 000000000..b2e52d320 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/area/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: +docs/redux/slices/database/area

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/area/updateAreaSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/area/updateAreaSlice.html new file mode 100644 index 000000000..a97578f52 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/area/updateAreaSlice.html @@ -0,0 +1,35 @@ + +

🧩 updateAreaSlice.js

+

Redux-Slice zur Verwaltung des Update-Zustands beim Aktualisieren +eines Bereichs (Area).

+
+

Zustand

+
{
+  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.
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevice/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevice/README.html new file mode 100644 index 000000000..32672ef15 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevice/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: +docs/redux/slices/database/locationDevice

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevice/locationDevicesSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevice/locationDevicesSlice.html new file mode 100644 index 000000000..00eb8e1ac --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevice/locationDevicesSlice.html @@ -0,0 +1,35 @@ + +

🧩 locationDevicesSlice.js

+

Redux-Slice zur Verwaltung von Standortgeräten (Devices) aus der +Tabelle location_device.

+
+

Zustand

+
{
+  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

+
selectLocationDevices = state => state.locationDevices.data;
+selectLocationDeviceStatus = state => state.locationDevices.status;
+
+

Besonderheiten

+
    +
  • Zustand wird bei pending, fulfilled und +rejected aktualisiert
  • +
  • Fehlernachricht wird in error gespeichert
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevicesFromDBSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevicesFromDBSlice.html new file mode 100644 index 000000000..99f5a60db --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevicesFromDBSlice.html @@ -0,0 +1,19 @@ + +

🧩 +locationDevicesFromDBSlice.js

+

Redux-Slice für das Laden von Geräten aus der Datenbank-Tabelle +location_device.

+

Zustand

+
{
+  devices: [],
+  status: "idle" | "loading" | "succeeded" | "failed",
+  error: string | null
+}
+

Thunk

+
    +
  • fetchLocationDevicesThunk (async)
  • +
+

Selector

+
selectLocationDevices = state => state.locationDevicesFromDB.devices;
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevicesSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevicesSlice.html new file mode 100644 index 000000000..5bf5ef8a0 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/locationDevicesSlice.html @@ -0,0 +1,15 @@ + +

🧩 locationDevicesSlice.js

+

Zweite Variante des Slices für Geräte (veraltet oder parallel +verwendet).

+

Zustand

+
{
+  data: [],
+  status: "idle" | "loading" | "succeeded" | "failed",
+  error: string | null
+}
+

Selector

+
selectLocationDevices = state => state.locationDevices.data;
+

⚠️ Beachte: +Duplikat zu locationDevicesFromDBSlice.js

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/README.html new file mode 100644 index 000000000..9bebd6e76 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/README.html @@ -0,0 +1,17 @@ +

📄 Übersicht: +docs/redux/slices/database/pois

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/addPoiOnPolylineSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/addPoiOnPolylineSlice.html new file mode 100644 index 000000000..23eaa7849 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/addPoiOnPolylineSlice.html @@ -0,0 +1,4 @@ +

🧩 addPoiOnPolylineSlice.js

+

Redux-Slice +zur Verwaltung von addPoiOnPolyline.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/addPoiSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/addPoiSlice.html new file mode 100644 index 000000000..c8f93a8fb --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/addPoiSlice.html @@ -0,0 +1,4 @@ +

🧩 addPoiSlice.js

+

Redux-Slice zur +Verwaltung von addPoi.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/currentPoiSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/currentPoiSlice.html new file mode 100644 index 000000000..41c4a1481 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/currentPoiSlice.html @@ -0,0 +1,4 @@ +

🧩 currentPoiSlice.js

+

Redux-Slice zur +Verwaltung von currentPoi.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiIconsDataSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiIconsDataSlice.html new file mode 100644 index 000000000..382b5bbe4 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiIconsDataSlice.html @@ -0,0 +1,4 @@ +

🧩 poiIconsDataSlice.js

+

Redux-Slice zur +Verwaltung von POIIconsData.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiLayerVisibleSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiLayerVisibleSlice.html new file mode 100644 index 000000000..ec989c3ba --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiLayerVisibleSlice.html @@ -0,0 +1,4 @@ +

🧩 poiLayerVisibleSlice.js

+

Redux-Slice zur +Verwaltung von POILayerVisible.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiMarkersSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiMarkersSlice.html new file mode 100644 index 000000000..e3881e9b2 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiMarkersSlice.html @@ -0,0 +1,4 @@ +

🧩 poiMarkersSlice.js

+

Redux-Slice zur +Verwaltung von POIMarkers.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiReadFromDbTriggerSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiReadFromDbTriggerSlice.html new file mode 100644 index 000000000..b3982eb45 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiReadFromDbTriggerSlice.html @@ -0,0 +1,6 @@ +

🧩 +poiReadFromDbTriggerSlice.js

+

Redux-Slice +zur Verwaltung von POIReadFromDbTrigger.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiTypSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiTypSlice.html new file mode 100644 index 000000000..9eaf58f9e --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiTypSlice.html @@ -0,0 +1,4 @@ +

🧩 poiTypSlice.js

+

Redux-Slice zur +Verwaltung von POITyp.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiTypesSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiTypesSlice.html new file mode 100644 index 000000000..ddf7c31a8 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/poiTypesSlice.html @@ -0,0 +1,4 @@ +

🧩 poiTypesSlice.js

+

Redux-Slice zur +Verwaltung von POITypes.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/readPoiMarkersStoreSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/readPoiMarkersStoreSlice.html new file mode 100644 index 000000000..62f0de3a8 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/readPoiMarkersStoreSlice.html @@ -0,0 +1,4 @@ +

🧩 readPoiMarkersStoreSlice.js

+

Redux-Slice +zur Verwaltung von readPoiMarkersStore.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/selectedPoiSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/selectedPoiSlice.html new file mode 100644 index 000000000..a29f148a7 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/pois/selectedPoiSlice.html @@ -0,0 +1,4 @@ +

🧩 selectedPoiSlice.js

+

Redux-Slice zur +Verwaltung von selectedPoi.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/README.html new file mode 100644 index 000000000..bcf1931bc --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/README.html @@ -0,0 +1,13 @@ +

📄 Übersicht: +docs/redux/slices/database/polylines

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/gisLinesSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/gisLinesSlice.html new file mode 100644 index 000000000..9084ce271 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/gisLinesSlice.html @@ -0,0 +1,18 @@ + +

🧩 gisLinesSlice.js

+

Verwaltet alle Linienobjekte, die aus der Datenbank +(gis_lines) gelesen wurden.

+

Zustand

+
{
+  data: [],
+  status: "idle" | "loading" | "succeeded" | "failed",
+  error: string | null
+}
+

Thunk

+
    +
  • fetchGisLinesThunk()
  • +
+

Selector

+
selectGisLines = state => state.gisLines.data;
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/polylineContextMenuSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/polylineContextMenuSlice.html new file mode 100644 index 000000000..9663dc8cd --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/polylineContextMenuSlice.html @@ -0,0 +1,22 @@ + +

🧩 polylineContextMenuSlice.js

+

Verwaltet den Zustand des Kontextmenüs bei Polylinien (z. B. +Stützpunkt hinzufügen/entfernen).

+

Zustand

+
{
+  isOpen: false,
+  position: { lat, lng } | null,
+  forceClose: false,
+  timerStart: number | null,
+  countdown: number,
+  countdownActive: boolean
+}
+

Aktionen

+
    +
  • openPolylineContextMenu(payload)
  • +
  • closePolylineContextMenu()
  • +
  • updateCountdown()
  • +
  • forceCloseContextMenu()
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/polylineEventsDisabledSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/polylineEventsDisabledSlice.html new file mode 100644 index 000000000..4a9935a7c --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/polylineEventsDisabledSlice.html @@ -0,0 +1,16 @@ + +

🧩 +polylineEventsDisabledSlice.js

+

Steuert, ob Interaktionen mit Polylinien (z. B. Ziehen, Klicks) +temporär deaktiviert sind.

+

Zustand

+
{
+  disabled: boolean;
+}
+

Aktionen

+
    +
  • setDisabled(boolean)
  • +
  • toggleDisabled()
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/polylineLayerVisibleSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/polylineLayerVisibleSlice.html new file mode 100644 index 000000000..2d6f8bd75 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/polylineLayerVisibleSlice.html @@ -0,0 +1,16 @@ + +

🧩 +polylineLayerVisibleSlice.js

+

Steuert die Sichtbarkeit des Polylinienlayers auf der Karte.

+

Zustand

+
{
+  visible: boolean;
+}
+

Aktion

+
    +
  • setPolylineVisible(boolean)
  • +
+

Selector

+
selectPolylineVisible = state => state.polylineLayerVisible.visible;
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/updatePolylineCoordinatesSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/updatePolylineCoordinatesSlice.html new file mode 100644 index 000000000..22c217728 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/polylines/updatePolylineCoordinatesSlice.html @@ -0,0 +1,20 @@ + +

🧩 +updatePolylineCoordinatesSlice.js

+

Redux-Slice zur Überwachung des Lade-/Fehlerstatus bei der +Aktualisierung von Linienkoordinaten.

+

Zustand

+
{
+  status: "idle" | "loading" | "succeeded" | "failed",
+  error: string | null
+}
+

Thunk

+
    +
  • updatePolylineCoordinatesThunk()
  • +
+

Aktion

+
    +
  • resetUpdateStatus()
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/priorityConfigSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/priorityConfigSlice.html new file mode 100644 index 000000000..76581cd42 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/database/priorityConfigSlice.html @@ -0,0 +1,17 @@ + +

🧩 priorityConfigSlice.js

+

Lädt die Prioritätskonfiguration für Marker (z. B. zur farblichen +Darstellung).

+

Zustand

+
{
+  data: [],
+  status: "idle" | "succeeded"
+}
+

Thunk

+
    +
  • fetchPriorityConfigThunk
  • +
+

Selector

+
selectPriorityConfig = state => state.priorityConfig.data;
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/lineVisibilitySlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/lineVisibilitySlice.html new file mode 100644 index 000000000..bf42e2d45 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/lineVisibilitySlice.html @@ -0,0 +1,21 @@ + +

📶 lineVisibilitySlice.js

+

Redux-Slice zur Steuerung der Sichtbarkeit aktiver Linien auf der +Karte.

+

Zustand

+
{
+  activeLines: {
+    [idLD]: true | false
+  }
+}
+

Aktionen

+
    +
  • updateLineStatus({ idLD, active }): Einzelne Linie +sichtbar/unsichtbar
  • +
  • setActiveLines({ ... }): Ganze Objektzuweisung
  • +
+

Anwendung

+

Wird +verwendet z. B. in useLineData.js, +MapComponent.js

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/mapLayers/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/mapLayers/README.html new file mode 100644 index 000000000..2d8496031 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/mapLayers/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: +docs/redux/slices/mapLayers

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/mapLayers/device-layer-upgrade.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/mapLayers/device-layer-upgrade.html new file mode 100644 index 000000000..27e655b62 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/mapLayers/device-layer-upgrade.html @@ -0,0 +1,61 @@ +

🔁 +Geräte-Layer Upgrade: Dynamische Initialisierung über IdSystem

+

📅 Änderungsdatum: 2025-06-02

+
+

🧩 Ziel

+

Die Marker-Einblendung (Geräte) sollte über System +(Stationsdaten) mit IdSystem (Systemdaten) verglichen +werden. Früher wurde fälschlich über Name verglichen. +Außerdem sollten die Layer-Schlüssel konsistent und dynamisch verwaltet +werden.

+
+

✅ Änderungen im Detail

+

Redux:

+
    +
  • mapLayersSlice überarbeitet: +
      +
    • Statische Namen (z. B. SMSFunkmodem) entfernt
    • +
    • Dynamische Initialisierung mit +system-<IdSystem>
    • +
    • setInitialLayers(systems[]) Action erstellt
    • +
  • +
+

Thunks:

+
    +
  • fetchGisSystemStaticThunk.js erweitert: +
      +
    • Initialisiert mapLayers mit +setInitialLayers
    • +
    • Liefert Redux-Layerstatus zu jedem System
    • +
  • +
+

Services:

+
    +
  • fetchGisSystemStaticService.js liefert +IdSystem
  • +
+

Komponenten:

+
    +
  • useDynamicDeviceLayers.js: verwendet +IdSystem als Vergleich +(station.System === system.IdSystem)
  • +
  • MapLayersControlPanel.js: generiert Checkboxen mit +key = system-<IdSystem>
  • +
+
+

🧪 Ergebnis

+ +
+

🏷 Version

+

Diese Änderung wurde mit dem Tag v1.1.210 +versehen.

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/mapLayersSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/mapLayersSlice.html new file mode 100644 index 000000000..d1492ddc2 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/mapLayersSlice.html @@ -0,0 +1,21 @@ + +

🗺️ mapLayersSlice.js

+

Verwaltet die Sichtbarkeit einzelner Layergruppen (z. B. GMA, ECI, +Siemens).

+

Zustand

+
{
+  TALAS: true,
+  ECI: true,
+  ULAF: true,
+  ...
+}
+

Aktionen

+
    +
  • toggleLayer(layer): Sichtbarkeit toggeln
  • +
  • setLayerVisibility({ layer, visibility }): Sichtbarkeit +explizit setzen
  • +
+

Selector

+
selectMapLayersState = state => state.mapLayers;
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/selectedAreaSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/selectedAreaSlice.html new file mode 100644 index 000000000..61fe6b099 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/selectedAreaSlice.html @@ -0,0 +1,14 @@ + +

📍 selectedAreaSlice.js

+

Steuert die aktuell selektierte Station/Bereich in der Karte.

+

Zustand

+
{
+  area: null | object;
+}
+

Aktionen

+
    +
  • setSelectedArea(area)
  • +
  • clearSelectedArea()
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/selectedDeviceSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/selectedDeviceSlice.html new file mode 100644 index 000000000..7a67b5925 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/selectedDeviceSlice.html @@ -0,0 +1,12 @@ + +

🖥️ selectedDeviceSlice.js

+

Speichert das aktuell ausgewählte Gerät aus der Karte.

+

Zustand

+
null | { ...Gerät };
+

Aktionen

+
    +
  • setSelectedDevice(device)
  • +
  • clearSelectedDevice()
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/urlParameterSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/urlParameterSlice.html new file mode 100644 index 000000000..ef9025a88 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/urlParameterSlice.html @@ -0,0 +1,17 @@ + +

🔗 urlParameterSlice.js

+

Verwaltet die URL-Parameter m (mapId) und u +(userId).

+

Zustand

+
{
+  mapId: number | null,
+  userId: number | null
+}
+

Aktionen

+
    +
  • setMapId(id)
  • +
  • setUserId(id)
  • +
  • setFromURL({ m, u })
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/README.html new file mode 100644 index 000000000..e83b40d9e --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/README.html @@ -0,0 +1,13 @@ +

📄 Übersicht: +docs/redux/slices/webService

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisLinesStatusSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisLinesStatusSlice.html new file mode 100644 index 000000000..94900b4d1 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisLinesStatusSlice.html @@ -0,0 +1,18 @@ + +

🧩 gisLinesStatusSlice.js

+

Lädt und speichert Statusdaten von Linien (z. B. Spannungswerte, +Betriebszustand) aus dem Webservice.

+

Zustand

+
{
+  data: [],
+  status: "idle" | "loading" | "succeeded" | "failed",
+  error: string | null
+}
+

Thunk

+
    +
  • fetchGisLinesStatusThunk()
  • +
+

Selector

+
selectGisLinesStatusFromWebservice = state => state.gisLinesStatusFromWebservice;
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisStationsMeasurementsSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisStationsMeasurementsSlice.html new file mode 100644 index 000000000..9f52bea83 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisStationsMeasurementsSlice.html @@ -0,0 +1,19 @@ + +

🧩 +gisStationsMeasurementsSlice.js

+

Verwaltet Messwerte einzelner Stationen (z. B. Schleifenwiderstand, +Isolation) aus Webservice-Antworten.

+

Zustand

+
{
+  data: [],
+  status: "idle" | "loading" | "succeeded" | "failed",
+  error: string | null
+}
+

Thunk

+
    +
  • fetchGisStationsMeasurementsThunk()
  • +
+

Selector

+
selectGisStationsMeasurements = state => state.gisStationsMeasurements.data;
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisStationsStaticDistrictSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisStationsStaticDistrictSlice.html new file mode 100644 index 000000000..bb5f43484 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisStationsStaticDistrictSlice.html @@ -0,0 +1,19 @@ + +

🧩 +gisStationsStaticDistrictSlice.js

+

Lädt und speichert statische Standortdaten (z. B. Koordinaten) der +Stationen im aktuellen Bezirk.

+

Zustand

+
{
+  data: { Points: [] },
+  status: "idle" | "loading" | "succeeded" | "failed",
+  error: string | null
+}
+

Thunk

+
    +
  • fetchGisStationsStaticDistrictThunk()
  • +
+

Selector

+
selectGisStationsStaticDistrict = state => state.gisStationsStaticDistrict.data;
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisStationsStatusDistrictSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisStationsStatusDistrictSlice.html new file mode 100644 index 000000000..f027df688 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisStationsStatusDistrictSlice.html @@ -0,0 +1,19 @@ + +

🧩 +gisStationsStatusDistrictSlice.js

+

Verwaltet den Status aller Stationen im aktuellen Bezirk aus +Webservice-Daten.

+

Zustand

+
{
+  data: [],
+  status: "idle" | "loading" | "succeeded" | "failed",
+  error: string | null
+}
+

Thunk

+
    +
  • fetchGisStationsStatusDistrictThunk()
  • +
+

Selector

+
selectGisStationsStatusDistrict = state => state.gisStationsStatusDistrict.data;
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisSystemStaticSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisSystemStaticSlice.html new file mode 100644 index 000000000..d42637553 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/gisSystemStaticSlice.html @@ -0,0 +1,18 @@ + +

🧩 gisSystemStaticSlice.js

+

Verwaltet statische Gerätedaten aller Systeme, die vom Webservice +zurückgegeben werden.

+

Zustand

+
{
+  data: [],
+  status: "idle" | "loading" | "succeeded" | "failed",
+  error: string | null
+}
+

Thunk

+
    +
  • fetchGisSystemStaticThunk()
  • +
+

Selector

+
selectGisSystemStatic = state => state.gisSystemStatic.data;
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/userRightsSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/userRightsSlice.html new file mode 100644 index 000000000..bbff0dcf6 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/webService/userRightsSlice.html @@ -0,0 +1,19 @@ + +

🧩 userRightsSlice.js

+

Verwaltet die Benutzerrechte, die vom Webservice für den angemeldeten +Nutzer bereitgestellt werden.

+

Zustand

+
{
+  rights: [],
+  status: "idle" | "loading" | "succeeded" | "failed",
+  error: string | null
+}
+

Thunk

+
    +
  • fetchUserRightsThunk()
  • +
+

Selector

+
selectGisUserRightsFromWebservice = state => state.gisUserRightsFromWebservice.rights;
+selectGisUserRightsStatus = state => state.gisUserRightsFromWebservice.status;
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/zoomTriggerSlice.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/zoomTriggerSlice.html new file mode 100644 index 000000000..ae2541b1d --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/slices/zoomTriggerSlice.html @@ -0,0 +1,15 @@ + +

🔍 zoomTriggerSlice.js

+

Ein Redux-Trigger, der die Karte zur Neuberechnung des Zoom-Zustands +veranlasst.

+

Zustand

+
{
+  trigger: number;
+}
+

Aktionen

+
    +
  • incrementZoomTrigger(): Erhöht den Trigger
  • +
  • resetZoomTrigger(): Setzt auf 0 zurück
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/store.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/store.html new file mode 100644 index 000000000..a91fb78d4 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/store.html @@ -0,0 +1,58 @@ + +

🧠 Redux Store (store.js)

+

Zentrale Konfiguration des globalen Redux-Stores für die +Anwendung.
+Er verwaltet Zustand für Daten aus Webservices, der Datenbank und +UI-Status.

+
+

🔌 Verwendung

+
import { Provider } from "react-redux";
+import { store } from "../redux/store";
+
+<Provider store={store}>
+  <App />
+</Provider>;
+
+

🔁 Struktur

+

Der Store besteht aus drei Bereichen:

+

1. database

+
    +
  • poiMarkers, addPoi, +poiLayerVisible
  • +
  • gisLinesFromDatabase, +polylineLayerVisible
  • +
  • readPoiMarkersStore, priorityConfig, +locationDevicesFromDB
  • +
+

2. webservice

+
    +
  • gisStationsStaticDistrict, +gisStationsStatusDistrict, +gisSystemStatic
  • +
  • gisStationsMeasurements, +gisLinesStatusFromWebservice, userRights
  • +
+

3. ui / interaktiv

+
    +
  • mapLayers, selectedDevice, +selectedPoi, selectedArea
  • +
  • lineVisibility, zoomTrigger, +urlParameter, polylineContextMenu
  • +
  • polylineEventsDisabled, +addPoiOnPolyline
  • +
+
+

⚙️ Einrichtung

+
export const store = configureStore({
+  reducer: {
+    selectedDevice: selectedDeviceReducer,
+    poiMarkers: poiMarkersReducer,
+    ...
+  }
+});
+
+

📁 Pfad

+
/redux/store.js
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/README.html new file mode 100644 index 000000000..48462e05f --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/README.html @@ -0,0 +1,9 @@ +

📄 Übersicht: +docs/redux/thunks/database

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/area/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/area/README.html new file mode 100644 index 000000000..c6f7342d2 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/area/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: +docs/redux/thunks/database/area

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/area/updateAreaThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/area/updateAreaThunk.html new file mode 100644 index 000000000..1638b7ca4 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/area/updateAreaThunk.html @@ -0,0 +1,24 @@ + +

✏️ updateAreaThunk.js

+

Async-Thunk zum Aktualisieren der Koordinaten eines Bereichs +(Area).

+

Verwendung

+
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
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/fetchLocationDevicesThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/fetchLocationDevicesThunk.html new file mode 100644 index 000000000..78019707b --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/fetchLocationDevicesThunk.html @@ -0,0 +1,13 @@ + +

🚚 +fetchLocationDevicesThunk.js

+

Async-Thunk zum Laden aller Geräte aus der Tabelle +location_device.

+

Verwendung

+
dispatch(fetchLocationDevicesThunk());
+

Quelle

+
    +
  • Ruft fetchLocationDevicesService() auf
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/fetchPriorityConfigThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/fetchPriorityConfigThunk.html new file mode 100644 index 000000000..f9541edca --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/fetchPriorityConfigThunk.html @@ -0,0 +1,11 @@ + +

🎯 fetchPriorityConfigThunk.js

+

Async-Thunk zum Abrufen der Prioritätskonfiguration für Marker.

+

Verwendung

+
dispatch(fetchPriorityConfigThunk());
+

Quelle

+
    +
  • Ruft fetchPriorityConfigService() auf
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/getDeviceIdByNameThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/getDeviceIdByNameThunk.html new file mode 100644 index 000000000..beecacac5 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/getDeviceIdByNameThunk.html @@ -0,0 +1,14 @@ + +

🆔 getDeviceIdByNameThunk.js

+

Async-Thunk zur Ermittlung der ID eines Geräts anhand des +Gerätenamens.

+

Verwendung

+
dispatch(getDeviceIdByNameThunk("Kue705"));
+

Verhalten

+
    +
  • Ruft getDeviceIdByNameService(deviceName) auf
  • +
  • Fehler werden mit rejectWithValue(error.message) +behandelt
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/locationDevice/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/locationDevice/README.html new file mode 100644 index 000000000..e65d48c97 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/locationDevice/README.html @@ -0,0 +1,7 @@ +

📄 Übersicht: +docs/redux/thunks/database/locationDevice

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/locationDevice/fetchLocationDevicesThunk (1).html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/locationDevice/fetchLocationDevicesThunk (1).html new file mode 100644 index 000000000..1f7dc572e --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/locationDevice/fetchLocationDevicesThunk (1).html @@ -0,0 +1,23 @@ + +

🚚 +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

+
createAsyncThunk("locationDevices/fetchAll", async () => {
+  return await fetchLocationDevicesService();
+});
+
+

✅ Verwendung

+
dispatch(fetchLocationDevicesThunk());
+
+

📁 Pfad

+
/redux/thunks/database/locationDevice/fetchLocationDevicesThunk.js
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/README.html new file mode 100644 index 000000000..42511078a --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/README.html @@ -0,0 +1,10 @@ +

📄 Übersicht: +docs/redux/thunks/database/pois

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/addPoiThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/addPoiThunk.html new file mode 100644 index 000000000..00430ba82 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/addPoiThunk.html @@ -0,0 +1,19 @@ + +

➕ addPoiThunk.js

+

Async-Thunk zur Erstellung eines neuen POIs.

+

Verwendung

+
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.

+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/deletePoiThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/deletePoiThunk.html new file mode 100644 index 000000000..5e2502487 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/deletePoiThunk.html @@ -0,0 +1,12 @@ + +

❌ deletePoiThunk.js

+

Async-Thunk zum Löschen eines POIs anhand seiner ID.

+

Verwendung

+
dispatch(deletePoiThunk(15));
+

Verhalten

+
    +
  • Ruft deletePoiService(id) auf
  • +
  • Gibt die ID im Erfolgsfall zurück
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/fetchPoiIconsDataThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/fetchPoiIconsDataThunk.html new file mode 100644 index 000000000..b77852310 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/fetchPoiIconsDataThunk.html @@ -0,0 +1,11 @@ + +

🖼️ fetchPoiIconsDataThunk.js

+

Lädt alle verfügbaren POI-Icons aus dem Backend.

+

Verwendung

+
dispatch(fetchPoiIconsDataThunk());
+

Intern

+
    +
  • Ruft fetchPoiIconsDataService() auf
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/fetchPoiMarkersThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/fetchPoiMarkersThunk.html new file mode 100644 index 000000000..5daaffc17 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/fetchPoiMarkersThunk.html @@ -0,0 +1,11 @@ + +

📍 fetchPoiMarkersThunk.js

+

Lädt alle POI-Marker (Positionsdaten) aus dem Backend.

+

Verwendung

+
dispatch(fetchPoiMarkersThunk());
+

Intern

+
    +
  • Ruft fetchPoiMarkersService() auf
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/fetchPoiTypThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/fetchPoiTypThunk.html new file mode 100644 index 000000000..042e1e187 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/fetchPoiTypThunk.html @@ -0,0 +1,11 @@ + +

🗂️ fetchPoiTypThunk.js

+

Lädt alle verfügbaren POI-Typen aus der Datenbank.

+

Verwendung

+
dispatch(fetchPoiTypThunk());
+

Intern

+
    +
  • Ruft fetchPoiTypService() auf
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/updatePoiThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/updatePoiThunk.html new file mode 100644 index 000000000..195dfb5a8 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/pois/updatePoiThunk.html @@ -0,0 +1,18 @@ + +

📝 updatePoiThunk.js

+

Aktualisiert einen bestehenden POI mit neuen Daten.

+

Verwendung

+
dispatch(
+  updatePoiThunk({
+    idPoi: 15,
+    description: "Neue Beschreibung",
+    idPoiTyp: 3,
+    idLD: 8,
+  })
+);
+

Intern

+
    +
  • Ruft updatePoiService(poi) auf
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/polylines/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/polylines/README.html new file mode 100644 index 000000000..cb09dc902 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/polylines/README.html @@ -0,0 +1,7 @@ +

📄 Übersicht: +docs/redux/thunks/database/polylines

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/polylines/fetchGisLinesThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/polylines/fetchGisLinesThunk.html new file mode 100644 index 000000000..7ca4202f2 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/polylines/fetchGisLinesThunk.html @@ -0,0 +1,13 @@ + +

📡 fetchGisLinesThunk.js

+

Async-Thunk zum Laden aller Linien aus der Datenbanktabelle +gis_lines.

+

Verwendung

+
dispatch(fetchGisLinesThunk());
+

Intern

+
    +
  • Ruft fetchGisLinesService() auf
  • +
  • Liefert alle Linien mit Koordinaten zur Anzeige auf der Karte
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/polylines/updatePolylineCoordinatesThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/polylines/updatePolylineCoordinatesThunk.html new file mode 100644 index 000000000..6d6a80fe8 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/database/polylines/updatePolylineCoordinatesThunk.html @@ -0,0 +1,24 @@ + +

🧭 +updatePolylineCoordinatesThunk.js

+

Async-Thunk zur Aktualisierung von Linienkoordinaten in der +Datenbank.

+

Verwendung

+
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
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/README.html new file mode 100644 index 000000000..bb7c30d69 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/README.html @@ -0,0 +1,15 @@ +

📄 Übersicht: +docs/redux/thunks/webservice

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisLinesStatusThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisLinesStatusThunk.html new file mode 100644 index 000000000..5597784b8 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisLinesStatusThunk.html @@ -0,0 +1,13 @@ + +

📡 fetchGisLinesStatusThunk.js

+

Async-Thunk zum Laden des Status aller Linien aus dem Webservice.

+

Verwendung

+
dispatch(fetchGisLinesStatusThunk());
+

Intern

+
    +
  • Ruft fetchGisLinesStatusService() auf
  • +
  • Fehlerbehandlung per +rejectWithValue(error.message)
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisStationsMeasurementsThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisStationsMeasurementsThunk.html new file mode 100644 index 000000000..3876f3eaa --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisStationsMeasurementsThunk.html @@ -0,0 +1,13 @@ + +

📈 +fetchGisStationsMeasurementsThunk.js

+

Lädt Messwerte aller Stationen (z. B. Schleifenwiderstand, +Isolation).

+

Verwendung

+
dispatch(fetchGisStationsMeasurementsThunk());
+

Intern

+
    +
  • Ruft fetchGisStationsMeasurementsService() auf
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisStationsStaticDistrictThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisStationsStaticDistrictThunk.html new file mode 100644 index 000000000..341a20bf8 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisStationsStaticDistrictThunk.html @@ -0,0 +1,13 @@ + +

🧭 +fetchGisStationsStaticDistrictThunk.js

+

Lädt statische Standortdaten (z. B. Koordinaten) für den aktuellen +Bezirk.

+

Verwendung

+
dispatch(fetchGisStationsStaticDistrictThunk());
+

Intern

+
    +
  • Ruft fetchGisStationsStaticDistrictService() auf
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisStationsStatusDistrictThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisStationsStatusDistrictThunk.html new file mode 100644 index 000000000..55de31e3f --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisStationsStatusDistrictThunk.html @@ -0,0 +1,12 @@ + +

🚦 +fetchGisStationsStatusDistrictThunk.js

+

Lädt Statusdaten (aktiv/inaktiv) aller Stationen im Bezirk.

+

Verwendung

+
dispatch(fetchGisStationsStatusDistrictThunk());
+

Intern

+
    +
  • Ruft fetchGisStationsStatusDistrictService() auf
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisSystemStaticThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisSystemStaticThunk.html new file mode 100644 index 000000000..c1d926073 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchGisSystemStaticThunk.html @@ -0,0 +1,12 @@ + +

🧱 +fetchGisSystemStaticThunk.js

+

Lädt Geräte-/Systemdaten für alle Module aus dem Webservice.

+

Verwendung

+
dispatch(fetchGisSystemStaticThunk());
+

Intern

+
    +
  • Ruft fetchGisSystemStaticService() auf
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchUserRightsThunk.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchUserRightsThunk.html new file mode 100644 index 000000000..81c98ace4 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/redux/thunks/webservice/fetchUserRightsThunk.html @@ -0,0 +1,13 @@ + +

🔐 fetchUserRightsThunk.js

+

Lädt Rechte des angemeldeten Nutzers vom Webservice.

+

Verwendung

+
dispatch(fetchUserRightsThunk());
+

Intern

+
    +
  • Ruft fetchUserRightsService() auf
  • +
  • Fehlerbehandlung per +rejectWithValue(error.message)
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/README.html new file mode 100644 index 000000000..9f12f2546 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/README.html @@ -0,0 +1,14 @@ +

📄 Übersicht: +docs/services/database

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/area/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/area/README.html new file mode 100644 index 000000000..f3b61c614 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/area/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: +docs/services/database/area

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/area/updateAreaService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/area/updateAreaService.html new file mode 100644 index 000000000..f7aee75f9 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/area/updateAreaService.html @@ -0,0 +1,27 @@ + +

🗺️ updateAreaService.js

+

Service zur Aktualisierung der Koordinaten eines Bereichs (Area) in +der Datenbank.

+

Verwendung

+
await updateAreaService({
+  idLocation: 4,
+  idMap: 1,
+  newCoords: { x: 53.219, y: 8.435 },
+});
+

API-Route

+
PUT /api/talas_v5_DB/area/updateArea
+

Payload

+
{
+  "idLocation": 4,
+  "idMap": 1,
+  "x": 53.219,
+  "y": 8.435
+}
+

Rückgabe

+
    +
  • Erfolgreich: JSON mit Erfolgsmeldung
  • +
  • Fehler: throw new Error(...) bei nicht OK
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/fetchDeviceNameByIdService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/fetchDeviceNameByIdService.html new file mode 100644 index 000000000..aee3663f0 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/fetchDeviceNameByIdService.html @@ -0,0 +1,16 @@ + +

🆔 +fetchDeviceNameByIdService.js

+

Lädt den Gerätenamen (name) anhand der ID +(idLD) von der API.

+

Verwendung

+
const name = await fetchDeviceNameById(idLD);
+

API-Route

+
/api/talas_v5_DB/locationDevice/locationDeviceNameById?idLD=...
+

Rückgabe

+
    +
  • Erfolgreich: Gerätebezeichnung als string
  • +
  • Fehler: "Unbekannt"
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/fetchLocationDevicesService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/fetchLocationDevicesService.html new file mode 100644 index 000000000..4dbc9532b --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/fetchLocationDevicesService.html @@ -0,0 +1,15 @@ + +

🧰 +fetchLocationDevicesService.js

+

Service zum Abrufen aller Einträge aus der +location_device Tabelle.

+

Verwendung

+
const result = await fetchLocationDevicesService();
+

API-Route

+
/api/talas_v5_DB/locationDevice/locationDevices
+

Rückgabe

+
    +
  • JSON-Array aller Geräte
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/fetchPriorityConfigService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/fetchPriorityConfigService.html new file mode 100644 index 000000000..59d56af1f --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/fetchPriorityConfigService.html @@ -0,0 +1,11 @@ + +

🎯 +fetchPriorityConfigService.js

+

Service zum Abrufen der Prioritätskonfiguration für POIs oder +Marker.

+

Verwendung

+
const result = await fetchPriorityConfigService();
+

API-Route

+
/api/talas_v5_DB/priorityConfig
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/getDeviceIdByNameService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/getDeviceIdByNameService.html new file mode 100644 index 000000000..9ff0e4334 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/getDeviceIdByNameService.html @@ -0,0 +1,15 @@ + +

🆔 getDeviceIdByNameService.js

+

Service zur Ermittlung der Geräte-ID (idLD) anhand eines +Gerätenamens.

+

Verwendung

+
const id = await getDeviceIdByNameService("CPL-V4");
+

API-Route

+
/api/talas_v5_DB/locationDevice/getDeviceId?deviceName=...
+

Rückgabe

+
    +
  • Erfolgreich: idLD (number)
  • +
  • Fehler: Exception
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/locationDevice/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/locationDevice/README.html new file mode 100644 index 000000000..73ff18330 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/locationDevice/README.html @@ -0,0 +1,6 @@ +

📄 Übersicht: +docs/services/database/locationDevice

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/locationDevice/fetchLocationDevicesService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/locationDevice/fetchLocationDevicesService.html new file mode 100644 index 000000000..c2330113d --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/locationDevice/fetchLocationDevicesService.html @@ -0,0 +1,15 @@ + +

🧰 +fetchLocationDevicesService.js

+

Service zum Abrufen aller Einträge aus der +location_device Tabelle.

+

Verwendung

+
const result = await fetchLocationDevicesService();
+

API-Route

+
/api/talas_v5_DB/locationDevice/locationDevices
+

Rückgabe

+
    +
  • JSON-Array aller Geräte
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/README.html new file mode 100644 index 000000000..89921cd65 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/README.html @@ -0,0 +1,14 @@ +

📄 Übersicht: +docs/services/database/pois

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/addPoiService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/addPoiService.html new file mode 100644 index 000000000..468eadcea --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/addPoiService.html @@ -0,0 +1,18 @@ + +

➕ addPoiService.js

+

Service zum Hinzufügen eines neuen POIs in der Datenbank.

+

Verwendung

+
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"
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/deletePoiService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/deletePoiService.html new file mode 100644 index 000000000..5ccb75bd2 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/deletePoiService.html @@ -0,0 +1,12 @@ + +

❌ deletePoiService.js

+

Service zum Löschen eines POIs aus der Datenbank per ID.

+

Verwendung

+
await deletePoiService(id);
+

API

+
    +
  • Endpoint: +DELETE /api/talas_v5_DB/pois/deletePoi?id=ID
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiDataByIdService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiDataByIdService.html new file mode 100644 index 000000000..a0e134ad9 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiDataByIdService.html @@ -0,0 +1,12 @@ + +

🔍 fetchPoiDataByIdService.js

+

Service zum Abrufen der POI-Daten anhand einer POI-ID.

+

Verwendung

+
const poi = await fetchPoiDataService(idPoi);
+

API

+
    +
  • Endpoint: +GET /api/talas_v5_DB/pois/getPoiById?idPoi=ID
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiDataService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiDataService.html new file mode 100644 index 000000000..5544274de --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiDataService.html @@ -0,0 +1,12 @@ + +

📄 fetchPoiDataService.js

+

Lädt POI-Icons (alias poiData) aus dem +Serververzeichnis.

+

Verwendung

+
const data = await fetchPoiDataService();
+

API

+
    +
  • Endpoint: GET /api/talas_v5_DB/pois/poi-icons
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiIconsDataService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiIconsDataService.html new file mode 100644 index 000000000..f2c5b4064 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiIconsDataService.html @@ -0,0 +1,11 @@ + +

🖼️ fetchPoiIconsDataService.js

+

Service zum Abrufen der POI-Icon-Metadaten.

+

Verwendung

+
const icons = await fetchPoiIconsDataService();
+

API

+
    +
  • Endpoint: GET /api/talas_v5_DB/pois/poi-icons
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiMarkersService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiMarkersService.html new file mode 100644 index 000000000..f7752ae26 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiMarkersService.html @@ -0,0 +1,11 @@ + +

📍 fetchPoiMarkersService.js

+

Service zum Abrufen aller gespeicherten POI-Marker (Positionen).

+

Verwendung

+
const pois = await fetchPoiMarkersService();
+

API

+
    +
  • Endpoint: GET /api/talas_v5_DB/pois/readAllPOIs
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiTypService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiTypService.html new file mode 100644 index 000000000..11d33fd4e --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/fetchPoiTypService.html @@ -0,0 +1,12 @@ + +

🗂️ fetchPoiTypService.js

+

Service zum Abrufen aller verfügbaren POI-Typen aus der +Datenbank.

+

Verwendung

+
const types = await fetchPoiTypService();
+

API

+
    +
  • Endpoint: GET /api/talas_v5_DB/poiTyp/readPoiTyp
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/updatePoiService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/updatePoiService.html new file mode 100644 index 000000000..1f9aa9bed --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/pois/updatePoiService.html @@ -0,0 +1,17 @@ + +

📝 updatePoiService.js

+

Service zur Aktualisierung eines POIs mit neuen Informationen.

+

Verwendung

+
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
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/polylines/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/polylines/README.html new file mode 100644 index 000000000..6d2007e06 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/polylines/README.html @@ -0,0 +1,7 @@ +

📄 Übersicht: +docs/services/database/polylines

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/polylines/fetchGisLinesService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/polylines/fetchGisLinesService.html new file mode 100644 index 000000000..824c9fc5b --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/polylines/fetchGisLinesService.html @@ -0,0 +1,17 @@ + +

📡 fetchGisLinesService.js

+

Service zum Abrufen aller Linien aus der +gisLines-Tabelle der Datenbank.

+

Verwendung

+
const lines = await fetchGisLinesService();
+

API

+
    +
  • Endpoint: +GET /api/talas_v5_DB/gisLines/readGisLines
  • +
+

Rückgabe

+
    +
  • JSON-Array mit allen Linien und ihren Koordinaten
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/polylines/updatePolylineCoordinatesService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/polylines/updatePolylineCoordinatesService.html new file mode 100644 index 000000000..68ca37ecc --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/polylines/updatePolylineCoordinatesService.html @@ -0,0 +1,27 @@ + +

🧭 +updatePolylineCoordinatesService.js

+

Service zum Aktualisieren der Koordinaten einer Linie in der +Datenbank.

+

Verwendung

+
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
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/updateLocationInDatabaseService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/updateLocationInDatabaseService.html new file mode 100644 index 000000000..1541d6311 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/database/updateLocationInDatabaseService.html @@ -0,0 +1,16 @@ + +

📍 +updateLocationInDatabaseService.js

+

Service zur Aktualisierung der Geokoordinaten eines POIs in der +Datenbank.

+

Verwendung

+
await updateLocationInDatabaseService(id, lat, lng);
+

API-Route

+
/api/talas_v5_DB/pois/updateLocation
+

Methode

+
    +
  • POST mit JSON-Body: +{ id, latitude, longitude }
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/utils/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/utils/README.html new file mode 100644 index 000000000..6fbf4a992 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/utils/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: +docs/services/utils

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/utils/fetchWithTimeout.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/utils/fetchWithTimeout.html new file mode 100644 index 000000000..72053a0c0 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/utils/fetchWithTimeout.html @@ -0,0 +1,31 @@ + +

⏱️ fetchWithTimeout.js

+

Hilfsfunktion zur Durchführung eines fetch-Requests mit +einem Timeout.

+
+

💡 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

+
fetchWithTimeout(url, options, timeout);
+
    +
  • url: Ziel-URL
  • +
  • options: Fetch-Optionen (Headers, Methode etc.)
  • +
  • timeout: Zeit in Millisekunden (Standard: 5000 ms)
  • +
+
+

Beispiel

+
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
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/README.html new file mode 100644 index 000000000..9dd6ef602 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/README.html @@ -0,0 +1,15 @@ +

📄 Übersicht: +docs/services/webservice

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisLinesStatusService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisLinesStatusService.html new file mode 100644 index 000000000..1fbfc09ad --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisLinesStatusService.html @@ -0,0 +1,103 @@ + +

fetchGisLinesStatusService

+

Lädt Linienstatus-Daten über den TALAS WebService.

+
+

📁 URL-Aufbau

+
/ClientData/WebServiceMap.asmx/GisLinesStatus?idMap={idMap}
+
    +
  • Die idMap wird automatisch aus der URL +(?m=...) gelesen.
  • +
  • Diese WebService-Antwort enthält ein Objekt mit dem Feld +Statis[].
  • +
+
+

✅ Rückgabe

+
{
+  "Name": "...",
+  "Statis": [ ... ]
+}
+
    +
  • Statis[] enthält Statusinformationen zu Linien (Farben, +Meldungen, Werte).
  • +
  • Diese Daten sind nicht identisch mit +gisLines.data aus der Datenbank.
  • +
+
+

❗ Unterschied +zu gisLinesSlice (aus der Datenbank)

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
EigenschaftgisLines (DB)gisLinesStatus (WebService)
Quelleapi/talas_v5_DB/gisLinesWebServiceMap.asmx/GisLinesStatus
DatenLiniengeometrien (points)Status, Meldungen, Farben, Werte
TypPolyLine-DatenStatusanzeige für Linien
NutzungLayer-RenderingFarbliche Darstellung / Tooltip
+
+

🧠 Verwendung im Frontend

+
    +
  • Die Daten werden über fetchGisLinesStatusThunk +geladen.
  • +
  • Sie landen im Redux Slice gisLinesStatusSlice.
  • +
  • Zugriff über: selectGisLinesStatus(state) → enthält +.data, .status, .error
  • +
+
+

📁 Zugehörige Dateien

+ + + + + + + + + + + + + + + + + + + + + + + + + +
DateiZweck
fetchGisLinesStatusService.jsWebService-Aufruf
fetchGisLinesStatusThunk.jsRedux Thunk
gisLinesStatusSlice.jsRedux Slice
store.jsIntegration des Slices
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisStationsMeasurementsService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisStationsMeasurementsService.html new file mode 100644 index 000000000..d611bef5d --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisStationsMeasurementsService.html @@ -0,0 +1,14 @@ + +

📈 +fetchGisStationsMeasurementsService.js

+

Lädt Schleifen- und Isolationswerte für Stationen.

+

Verwendung

+
const messwerte = await fetchGisStationsMeasurementsService();
+

API-Aufruf

+
    +
  • Endpoint: +/ClientData/WebServiceMap.asmx/GisStationsMeasurements?idMap=...&idUser=...
  • +
  • Rückgabe: Statis[]
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisStationsStaticDistrictService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisStationsStaticDistrictService.html new file mode 100644 index 000000000..b239f71d2 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisStationsStaticDistrictService.html @@ -0,0 +1,15 @@ + +

🧭 +fetchGisStationsStaticDistrictService.js

+

Lädt Koordinateninformationen (Points[]) aller Stationen +im aktuellen Bezirk.

+

Verwendung

+
const points = await fetchGisStationsStaticDistrictService();
+

API-Aufruf

+
    +
  • Endpoint: +/ClientData/WebServiceMap.asmx/GisStationsStaticDistrict?idMap=...&idUser=...
  • +
  • Rückgabe: Points[]
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisStationsStatusDistrictService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisStationsStatusDistrictService.html new file mode 100644 index 000000000..da5457c36 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisStationsStatusDistrictService.html @@ -0,0 +1,15 @@ + +

🚦 +fetchGisStationsStatusDistrictService.js

+

Service zum Abrufen des Status aller Stationen im aktuellen +Bezirk.

+

Verwendung

+
const result = await fetchGisStationsStatusDistrictService();
+

API-Aufruf

+
    +
  • Endpoint: +/ClientData/WebServiceMap.asmx/GisStationsStatusDistrict?idMap=...&idUser=...
  • +
  • Rückgabe: Statis[]
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisSystemStaticService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisSystemStaticService.html new file mode 100644 index 000000000..f2bcaa534 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchGisSystemStaticService.html @@ -0,0 +1,15 @@ + +

🧱 +fetchGisSystemStaticService.js

+

Service zur Abfrage von Systemdaten aller Module aus dem +Webservice.

+

Verwendung

+
const systems = await fetchGisSystemStaticService();
+

API-Aufruf

+
    +
  • Endpoint: +/ClientData/WebServiceMap.asmx/GisSystemStatic?idMap=...&idUser=...
  • +
  • Rückgabe: Systems[]
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchUserRightsService.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchUserRightsService.html new file mode 100644 index 000000000..6330b3157 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/services/webservice/fetchUserRightsService.html @@ -0,0 +1,13 @@ + +

🔐 fetchUserRightsService.js

+

Lädt die Benutzerrechte über den TALAS WebService.

+

Verwendung

+
const rights = await fetchUserRightsService();
+

API-Aufruf

+
    +
  • Endpoint: +/ClientData/WebServiceMap.asmx/GisSystemStatic?idMap=...&idUser=...
  • +
  • Rückgabe: Rights[] (Fallback: [])
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/standards/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/standards/README.html new file mode 100644 index 000000000..1bce1b3d7 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/standards/README.html @@ -0,0 +1,4 @@ +

📄 Übersicht: docs/standards

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/standards/versioning.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/standards/versioning.html new file mode 100644 index 000000000..5d9e0b52d --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/standards/versioning.html @@ -0,0 +1,80 @@ +

📦 Versionierung im Projekt

+

🎯 Ziel

+

Dieses Projekt verwendet eine automatisierte und konsistente +Versionsverwaltung, um Klarheit über die aktuelle App-Version zu +gewährleisten und manuelle Fehler zu vermeiden.

+
+

🗂️ Wo wird die Version +gespeichert?

+

Die App-Version ist in vier Dateien synchron +enthalten:

+ + + + + + + + + + + + + + + + + + + + + + + + + +
DateiZweck
package.jsonHauptquelle für Version (npm, Git)
package-lock.jsonTechnischer Zustand des Builds
.env.developmentAnzeige in der UI zur Entwicklungszeit
.env.productionAnzeige in der UI auf Produktionssystemen
+

Beispiel-Eintrag in .env.*:

+
NEXT_PUBLIC_APP_VERSION=1.1.265
+
+

⚙️ Wie wird die Version +erhöht?

+

Die Version wird automatisch durch folgendes Skript erhöht:

+
node scripts/bumpVersion.js
+

Dieses Skript erledigt:

+
    +
  • Erhöhung der Patch-Version (z. B. 1.1.265 → +1.1.266)
  • +
  • Aktualisierung von package.json
  • +
  • Erstellung eines synchronen package-lock.json
  • +
  • Aktualisierung der .env.development und +.env.production mit neuer Version
  • +
+

Das Skript wird zusätzlich automatisch beim Git-Commit über Husky +(.husky/pre-commit) ausgeführt.

+
+

🧠 Warum ist das hilfreich?

+
    +
  • Die UI zeigt immer die aktuelle App-Version, über +process.env.NEXT_PUBLIC_APP_VERSION
  • +
  • Git-History, Deployments und ZIP-Versionen sind nachvollziehbar
  • +
  • Keine Inkonsistenzen durch manuelle Pflege
  • +
  • Reproduzierbare Builds dank package-lock.json
  • +
+
+

🧑‍💻 Hinweis für neue Entwickler

+
    +
  • ❌ Niemals die Versionsnummer manuell in nur einer Datei +ändern!
  • +
  • ✅ Immer das Skript nutzen oder den Commit-Hook wirken lassen.
  • +
  • 🔁 Nach Konflikten: Stelle sicher, dass +package-lock.json und .env.* konsistent +sind.
  • +
+
+

📘 Pfad diese Datei:
+/docs/standards/versioning.md

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/troubleshooting/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/troubleshooting/README.html new file mode 100644 index 000000000..a3b746986 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/troubleshooting/README.html @@ -0,0 +1,6 @@ +

📄 Übersicht: +docs/troubleshooting

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/troubleshooting/missing-which-module.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/troubleshooting/missing-which-module.html new file mode 100644 index 000000000..fe9ee23ff --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/troubleshooting/missing-which-module.html @@ -0,0 +1,28 @@ +

❌ Fehler: Cannot find module +‘which’

+

🧭 Kontext

+

Beim Starten der App mit nodeMapService(Windows Dienst) oder “npm +start” nach dem ohne package-lock.json-Datei trat folgender +Fehler auf: alt text

+
Error: Cannot find module 'which'
+

Dies bedeutet, dass die Bibliothek which im +node_modules-Verzeichnis fehlt, obwohl sie möglicherweise +früher vorhanden war.

+
+

🛠️ Lösung

+

Da which nicht mehr im aktuellen +node_modules verzeichnis vorhanden war:

+
    +
  1. Altes funktionierendes Projekt geöffnet
    +→ Dort war die Bibliothek im node_modules-Verzeichnis noch +vorhanden.

  2. +
  3. Verzeichnis node_modules/which +gezippt
    +→ als which.zip gespeichert.

  4. +
  5. ZIP-Datei auf den Zielserver übertragen
    +→ Manuell entpackt in das entsprechende +node_modules/which-Verzeichnis.

  6. +
  7. App gestartet → Funktioniert wieder.

  8. +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/troubleshooting/npm-ci-vs-install.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/troubleshooting/npm-ci-vs-install.html new file mode 100644 index 000000000..6c26a4a41 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/troubleshooting/npm-ci-vs-install.html @@ -0,0 +1,52 @@ +

📦 Problem mit +Abhängigkeiten und npm-Fehlern

+

Datum: 17.06.2025

+

❓ Problem

+

Nach einem Update oder manuellem Eingriff traten folgende Probleme +auf:

+
    +
  • npm run dev funktionierte nicht mehr.
  • +
  • Fehlermeldungen wie Cannot find module 'which, +tailwindcss, oder 500er Fehler beim Start.
  • +
  • Konflikte in package-lock.json, z. B. bei +@mui/material.
  • +
+
+

🛠️ Lösungsschritte

+

1. ❌ Komplett zurücksetzen

+

Lösche folgende Ordner und Dateien:

+
node_modules, package-lock.json, package.json, .next
+

2. 🧱 Alte +funktionierende package-lock.json verwenden

+

Füge die gesicherte Version wieder ein.

+

3. 📦 Neu installieren

+
npm ci
+
+

Wichtig: npm ci verwendet exakt die Versionen aus der +package-lock.json.

+
+

4. 📝 Alte +package.json zurückholen

+

Falls nötig, auch die alte package.json ersetzen.

+

5. 🚀 Projekt starten

+
npm run dev
+
+

✅ Empfehlung für die Zukunft

+
    +
  • Immer package.json und +package-lock.json sichern, wenn eine Version +stabil funktioniert.
  • +
  • Husky-Hook verwenden, um Version bei jedem Commit +automatisch zu erhöhen.
  • +
  • Zusätzlich kannst du node_modules-v1.1.xxx.zip +archivieren.
  • +
+
+

🗂️ Dateiablage

+

Diese Datei wurde erstellt für zukünftige Referenz und liegt in +/docs/troubleshooting/npm-ci-vs-install.md.

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/README.html new file mode 100644 index 000000000..f64b98b1f --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/README.html @@ -0,0 +1,16 @@ +

📄 Übersicht: docs/utils

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/addContextMenuToMarker.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/addContextMenuToMarker.html new file mode 100644 index 000000000..182c1ad56 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/addContextMenuToMarker.html @@ -0,0 +1,27 @@ + +

🧭 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

+
addContextMenuToMarker(marker, idLD, name);
+

Parameter

+
    +
  • marker: Leaflet-Marker
  • +
  • idLD: Geräte-ID
  • +
  • name: Anzeigename
  • +
+

Kontext

+
    +
  • Wird z. B. in createAndSetDevices.js verwendet
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/contextMenuUtils.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/contextMenuUtils.html new file mode 100644 index 000000000..d2a32811f --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/contextMenuUtils.html @@ -0,0 +1,36 @@ + +

📋 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
  • +
+

📌 Kontextmenü für +Geräte-Marker (Leaflet)

+

Ab Version 1.1.20 verfügen alle Geräte-Marker über ein +kontextbasiertes Leaflet-Menü.

+

Inhalte

+
    +
  • “Station öffnen (Tab)” → Öffnet Geräte-URL in neuem Tab
  • +
  • Koordinaten anzeigen
  • +
  • Zoom-Optionen
  • +
  • Zentrieren auf Marker
  • +
+

Technische Umsetzung

+
    +
  • Datei: contextMenuUtils.js
  • +
  • Marker müssen options.idDevice und +options.link gesetzt haben
  • +
  • Registrierung erfolgt über +addContextMenuToMarker(marker)
  • +
  • Redux selectedDevice wird nicht mehr benötigt
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/devices/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/devices/README.html new file mode 100644 index 000000000..975d139fe --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/devices/README.html @@ -0,0 +1,5 @@ +

📄 Übersicht: +docs/utils/devices

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/devices/createAndSetDevices.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/devices/createAndSetDevices.html new file mode 100644 index 000000000..61e68f70d --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/devices/createAndSetDevices.html @@ -0,0 +1,95 @@ + +

🧭 +createAndSetDevices.js – Geräte setzen und verwalten

+

Zweck

+

Diese Datei erstellt Leaflet-Marker für aktive Geräte basierend auf +Webservice-Daten
+und konfiguriert Kontexteinträge für Interaktionen wie:

+
    +
  • Geräte-Popup anzeigen
  • +
  • Station/Gerät per Klick in neue Tab öffnen -> Kontextmenü +->Item “Station öffnen (Tab)”
  • +
  • Statusinformationen einblenden
  • +
  • Redux-Aktionen für ausgewähltes Gerät auslösen
  • +
+

Die erzeugten Marker werden über +setMarkersFunction(markersData) an die aufrufende +Komponente übergeben.

+
+

Datenquellen

+

Die Daten stammen aus:

+
    +
  • GisStationsStaticDistrict (statische +Stationsinfos)
  • +
  • GisStationsStatusDistrict (Statusinformationen)
  • +
+

Sie werden entweder über echte Webservices oder Mock-Daten +geladen.

+
+

Besonderheiten

+
    +
  • Marker werden mit Prioritätsicons gerendert
  • +
  • Redux-Slices: +
      +
    • selectedDeviceSlice wird bei Hover gesetzt
    • +
    • lineVisibilitySlice aktualisiert Linienstatus
    • +
  • +
  • Leaflet-Kontextmenü (nur Marker) mit Menüeintrag:
    +„Station öffnen (Tab)“
  • +
+
+

Dynamische URL mit +Port-Logik

+

Die Station-Links im Kontextmenü nutzen keine feste URL mehr.
+Stattdessen wird dynamisch unterschieden:

+
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
+
+const baseUrl =
+  mode === "dev"
+    ? `${window.location.protocol}//${window.location.hostname}:80/talas5/`
+    : `${window.location.origin}/talas5/`;
+

➡ Dadurch wird verhindert, dass bei jeder Server-IP +.env.development oder ein Build nötig ist.

+
+

Kontextmenüaktion

+
window.open(`${baseUrl}cpl.aspx?ver=35&kue=24&id=${station.IdLD}`, "_blank");
+
+

Schutz vor doppelten +Kontextmenüs

+

Ein contextMenuCreated-Flag stellt sicher, dass pro +Marker nur ein Kontextmenü erzeugt wird:

+
if (!contextMenuCreated) {
+  contextMenuCreated = true;
+  marker.bindContextMenu({ ... });
+}
+

➡ Verhindert Duplikate bei wiederholten Rechtsklicks

+
+

Weitere Funktionen

+
    +
  • Popup-HTML enthält Statusanzeigen (Name, Farbe, Meldung)
  • +
  • Marker werden auf Klick animiert (bounce-Effekt)
  • +
  • Kontextmenüeinträge werden sauber entfernt bei Klick außerhalb
  • +
+
+

Tests

+
    +
  • Marker wird bei gültigen Daten erzeugt
  • +
  • Kontextmenü enthält nur einen Eintrag „Station +öffnen“
  • +
  • Popup zeigt korrekte Statusinformationen (Farben, Texte)
  • +
  • Redux setSelectedDevice(...) wird korrekt +aufgerufen
  • +
+
+

Siehe auch

+
    +
  • setupPolylines.js
  • +
  • redux/slices/selectedDeviceSlice.js
  • +
  • Webservices: fetchGisStationsStaticDistrict.js, +fetchGisStationsStatusDistrict.js
  • +
+
+

📄 Pfad: +/docs/frontend/utils/devices/createAndSetDevices.md

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/geometryUtils.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/geometryUtils.html new file mode 100644 index 000000000..c4b00de25 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/geometryUtils.html @@ -0,0 +1,15 @@ + +

📐 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.
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/initializeMap.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/initializeMap.html new file mode 100644 index 000000000..29ba50115 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/initializeMap.html @@ -0,0 +1,16 @@ + +

🗺️ 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
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/mapUtils.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/mapUtils.html new file mode 100644 index 000000000..361e218a2 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/mapUtils.html @@ -0,0 +1,11 @@ + +

🧰 mapUtils.js

+

Allgemeine Hilfsfunktionen für Leaflet (z. B. Zoom, Marker-Checks, +Layer-Findung).

+

Funktionen

+
    +
  • zoomToBounds(layerGroup)
  • +
  • findLayerById(map, id)
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/markerUtils.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/markerUtils.html new file mode 100644 index 000000000..4e613ac38 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/markerUtils.html @@ -0,0 +1,16 @@ + +

📍 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
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/mysqlPool.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/mysqlPool.html new file mode 100644 index 000000000..25de6d985 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/mysqlPool.html @@ -0,0 +1,13 @@ + +

💾 mysqlPool.js

+

MySQL-Verbindungspool für effiziente Datenbankabfragen (z. B. mit +promise-mysql).

+

Verwendung

+
const connection = await pool.getConnection();
+

Zweck

+
    +
  • Reuse von Verbindungen
  • +
  • Fehlervermeidung bei vielen gleichzeitigen Abfragen
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/openInNewTab.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/openInNewTab.html new file mode 100644 index 000000000..9cd0231c3 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/openInNewTab.html @@ -0,0 +1,13 @@ + +

🪟 openInNewTab.js

+

Öffnet eine URL in einem neuen Tab und schützt vor +Referrer-Leaks.

+

Verwendung

+
openInNewTab(url);
+

Intern

+
    +
  • nutzt window.open mit +noopener,noreferrer
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/openInSameWindow.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/openInSameWindow.html new file mode 100644 index 000000000..4c2a3c73b --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/openInSameWindow.html @@ -0,0 +1,11 @@ + +

🚪 openInSameWindow.js

+

Öffnet eine URL im aktuellen Tab.

+

Verwendung

+
openInSameWindow("/target");
+

Verhalten

+
    +
  • window.location.href = url
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/poiUtils.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/poiUtils.html new file mode 100644 index 000000000..59249a211 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/poiUtils.html @@ -0,0 +1,15 @@ + +

🧭 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
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/README.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/README.html new file mode 100644 index 000000000..e34c26c4b --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/README.html @@ -0,0 +1,10 @@ +

📄 Übersicht: +docs/utils/polylines

+ diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/contextMenu.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/contextMenu.html new file mode 100644 index 000000000..be9640252 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/contextMenu.html @@ -0,0 +1,14 @@ + +

📋 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
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/eventHandlers.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/eventHandlers.html new file mode 100644 index 000000000..76d9ee137 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/eventHandlers.html @@ -0,0 +1,10 @@ + +

🖱️ eventHandlers.js

+

Bindet Maus-Events an Polylinien (z. B. Hover-Effekte).

+

exportierte Funktionen

+
    +
  • enablePolylineEvents(polylines, lineColors)
  • +
  • disablePolylineEvents(polylines)
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/monitorContextMenu.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/monitorContextMenu.html new file mode 100644 index 000000000..197df844d --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/monitorContextMenu.html @@ -0,0 +1,12 @@ + +

🔄 monitorContextMenu.js

+

Erweiterte Überwachung des Kontextmenüs über +localStorage.

+

Funktion

+
    +
  • Importiert closePolylineSelectionAndContextMenu
  • +
  • Ruft regelmäßig setTimeout auf, um +contextMenuExpired zu prüfen
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/polylineSubscription.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/polylineSubscription.html new file mode 100644 index 000000000..86e56cc4d --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/polylineSubscription.html @@ -0,0 +1,12 @@ + +

🧭 polylineSubscription.js

+

Abonnement auf den Redux-Store, um auf forceClose im +Kontextmenü zu reagieren.

+

Verhalten

+
    +
  • Erkennt polylineContextMenu.forceClose
  • +
  • Ruft contextmenu.hide() auf und resetet +Redux-Status
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/redrawPolyline.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/redrawPolyline.html new file mode 100644 index 000000000..b770f35be --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/redrawPolyline.html @@ -0,0 +1,11 @@ + +

🔁 redrawPolyline.js

+

Zeichnet eine Polyline mit neuen Koordinaten und Tooltip neu.

+

Funktion

+
redrawPolyline(lineData, lineColors, tooltipContents, map);
+
    +
  • Entfernt vorherige Polyline
  • +
  • Erstellt neue mit Tooltip und Hover-Effekten
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/setupPolylines.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/setupPolylines.html new file mode 100644 index 000000000..5a6d9c2c6 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/polylines/setupPolylines.html @@ -0,0 +1,79 @@ + +

🧭 +setupPolylines.js – Polylinien zeichnen und verwalten

+

Zweck

+

Diese Datei enthält die zentrale Funktion +setupPolylines, die in der Kartenkomponente (Leaflet) +Polylinien sowie Marker basierend auf Gerätekonfigurationen zeichnet und +verwaltet.

+

Sie wird verwendet, um:

+
    +
  • Polylinien basierend auf Koordinaten zu zeichnen
  • +
  • Stützpunkte visuell als Marker anzuzeigen
  • +
  • Marker kontextsensitiv mit Optionen (z. B. „Stützpunkt entfernen“, +„Koordinaten anzeigen“) auszustatten
  • +
  • Linien zu aktualisieren und neue Koordinaten in die Datenbank zu +schreiben
  • +
  • Kontextmenü-Interaktionen zu ermöglichen
  • +
+
+

Besonderheiten

+
    +
  • Marker mit speziellen Icons (Start, Ende, Zwischenpunkt)
  • +
  • Interaktivität abhängig vom Bearbeitungsmodus (editMode +aus localStorage)
  • +
  • Kontextmenü pro Marker und Linie individuell steuerbar
  • +
  • API-Aufrufe zur Koordinaten-Aktualisierung:
    +POST /api/talas_v5_DB/gisLines/updateLineCoordinates
  • +
+
+

Dynamische URL mit +Port-Steuerung

+

Die Datei verwendet keine feste API-Basis-URL mehr +aus .env.development oder +.env.production.
+Stattdessen wird NEXT_PUBLIC_API_PORT_MODE verwendet, um +zwischen Entwicklungs- und Produktionsumgebung zu unterscheiden:

+
NEXT_PUBLIC_API_PORT_MODE=dev
+

Beispiel im Code:

+
const mode = process.env.NEXT_PUBLIC_API_PORT_MODE;
+
+const baseUrl =
+  mode === "dev"
+    ? `${window.location.protocol}//${window.location.hostname}:80/talas5/`
+    : `${window.location.origin}/talas5/`;
+
+

Kontextmenüaktionen

+
    +
  • Station öffnen (neuer Tab)
  • +
  • Koordinaten anzeigen
  • +
  • Zoom in/out
  • +
  • Karte zentrieren
  • +
  • Stützpunkt hinzufügen/entfernen (wenn editMode)
  • +
+
+

Speicherorte

+
    +
  • Polylinien und LineColors werden unter window.polylines +und window.lineColors global gespeichert
  • +
  • Aktive Redux-Slices: +
      +
    • polylineContextMenuSlice
    • +
    • addPoiOnPolylineSlice
    • +
    • polylineLayerVisibleSlice
    • +
  • +
+
+

Siehe auch

+
    +
  • API-Aufruf: +/api/talas_v5_DB/gisLines/updateLineCoordinates
  • +
  • utils/geometryUtils.js, poiUtils.js, +eventHandlers.js
  • +
  • redux/slices/polylineContextMenuSlice.js
  • +
+
+

📄 Pfad: +/docs/frontend/utils/polylines/setupPolylines.md

+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/setupDevices.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/setupDevices.html new file mode 100644 index 000000000..f2aa29d59 --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/setupDevices.html @@ -0,0 +1,15 @@ + +

🔌 setupDevices.js

+

Fügt alle Geräte (Devices) zur Karte hinzu.

+

Funktionen

+
    +
  • setupDevices(map, deviceList)
  • +
+

Verhalten

+
    +
  • Marker-Erstellung
  • +
  • Eventbindung
  • +
  • Layer-Zuweisung
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/setupPOIs.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/setupPOIs.html new file mode 100644 index 000000000..8946c66ee --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/setupPOIs.html @@ -0,0 +1,56 @@ + +

🧭 setupPOIs.js

+

Zweck

+

Zeichnet alle POI-Marker auf die Leaflet-Karte basierend auf +Datenbankeinträgen. Bindet Popup, Kontextmenü, Drag’n’Drop und +Redux-Zustand ein.

+

Parameter

+ ++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameBeschreibung
mapLeaflet-Instanz
poisArray mit POI-Objekten aus der Datenbank
poiDataArray mit Iconpfaden: { idPoi, path }
poiTypMapMap-Objekt: idPoiTyp → Name
poiLayerVisibleGibt an, ob Layer überhaupt gezeichnet werden sollen
+

Besonderheiten

+
    +
  • Icon wird über iconMap.get(idPoi) bezogen
  • +
  • Fallback bei unbekanntem Icon (default-icon.png)
  • +
  • Rechteprüfung für Drag & Kontextmenü +(userRights.some(...))
  • +
  • Marker können bearbeitet, verschoben, gelöscht werden
  • +
  • Bei mouseover → Redux: +setSelectedPoi(poi)
  • +
+

Beispiel für Testdaten

+
const poi = { idPoi: 7, idPoiTyp: 2, position: "POINT(8.5 53.1)", description: "Mast", idLD: 123 };
+const poiData = [{ idPoi: 7, path: "poi-marker-icon-2.png" }];
+
+

Zurück zur Übersicht

diff --git a/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/zoomAndCenterUtils.html b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/zoomAndCenterUtils.html new file mode 100644 index 000000000..aea04351c --- /dev/null +++ b/scripts/html-seiten/s/isa.LTW/Desktop/19.09.2025/NodeMap/19.09.2025 NodeMap V1.1.350/docs/utils/zoomAndCenterUtils.html @@ -0,0 +1,10 @@ + +

🔍 zoomAndCenterUtils.js

+

Hilfsfunktionen zum Zoomen auf Marker oder Linien.

+

Funktionen

+
    +
  • zoomToMarker(map, marker)
  • +
  • centerOnCoordinates(map, coords)
  • +
+
+

Zurück zur Übersicht

diff --git a/scripts/md2html-seiten.ps1 b/scripts/md2html-seiten.ps1 new file mode 100644 index 000000000..f495a9257 --- /dev/null +++ b/scripts/md2html-seiten.ps1 @@ -0,0 +1,15 @@ +# Im Projekt-Root ausführen! +$source = "..\docs" +$target = ".\html-seiten" + +# Zielordner anlegen +if (!(Test-Path $target)) { New-Item -ItemType Directory -Path $target } + +# Alle .md-Dateien rekursiv durchgehen +Get-ChildItem -Path $source -Filter *.md -Recurse | ForEach-Object { + $relPath = $_.FullName.Substring($source.Length) + $outPath = Join-Path $target ($relPath -replace ".md$", ".html") + $outDir = Split-Path $outPath + if (!(Test-Path $outDir)) { New-Item -ItemType Directory -Path $outDir -Force } + pandoc $_.FullName -o $outPath +} \ No newline at end of file