Commit Graph

570 Commits

Author SHA1 Message Date
Ismail Ali
58d0f1a8a7 fix: Seite nach POI-Hinzufügen automatisch neu laden
- Problem mit der Icon-Aktualisierung nach dem Hinzufügen eines POI behoben
- Temporäre Lösung: `window.location.reload()` nach `handleSubmit`
- Redux bleibt weiterhin für POI-Typen aktiv, spätere Optimierung ohne Reload geplant
2025-03-09 18:13:43 +01:00
Ismail Ali
06e468e560 fix: Korrektur der Datenquelle für Geräte-Dropdown
- API-Antwort direkt analysiert: `Points` liegt auf oberster Ebene, nicht unter `data`
- Anpassung der Zuweisung: `const locationDeviceData = gisStationsStatic?.Points ?? [];`
- Dropdown wird nun korrekt mit Gerätenamen befüllt
2025-03-09 13:23:02 +01:00
Ismail Ali
42217e09e6 Umbenennung von ShowAddStationPopup.js in AddPOIModal.js für bessere Verständlichkeit" 2025-03-09 09:45:32 +01:00
Ismail Ali
ffb76857c7 feat(context-menu): Fix POI hinzufügen Modal und State-Handling
- `useMapContextMenu.js`:
  - `openPoiModal` in `addItemsToMapContextMenu` integriert, um Zugriff auf `setShowCoordinatesModal` und `setShowPoiModal` zu ermöglichen.
  - `setShowCoordinatesModal` wird korrekt als Parameter übergeben und verwaltet.
  - `POI hinzufügen`-Eintrag im Kontextmenü wurde verbessert.

- `MapComponent.js`:
  - `setShowCoordinatesModal`, `setShowPoiModal` und `setPopupCoordinates` werden jetzt korrekt an `addItemsToMapContextMenu` übergeben.
  - `ShowAddStationPopup` Modal öffnet sich jetzt korrekt und überlagert die Seite.
  - UI-Verbesserungen für Modale und Fix für doppeltes Öffnen von Modalen.

Fixes: Problem, dass mehrere Modale gleichzeitig geöffnet wurden und `setShowCoordinatesModal` nicht definiert war.
2025-03-09 09:37:01 +01:00
Ismail Ali
e4bb12fe18 WIP: POI hinzufügen Modal 2025-03-09 00:52:34 +01:00
Ismail Ali
c227b57f9b POI hinzufügen in useMapContextMenu.js aber noch kein Logik 2025-03-08 22:33:20 +01:00
Ismail Ali
d6a95f8885 feat: Animiertes Zoomen mit dynamischer Dauer hinzugefügt
- Leaflet `flyTo` für sanfte Zoom-Animationen implementiert.
- Zoom-Stufen auf max. 15 und min. 6 begrenzt.
- Dauer der Animation dynamisch auf 0.5s pro Zoomstufe gesetzt.
- Verbesserte Benutzererfahrung durch flüssige Zoom-Bewegungen.
2025-03-08 13:26:24 +01:00
Ismail Ali
806347f0dd feat: Fix Redux-Datenstruktur für GisStationsStaticDistrict und Bereichs-Dropdown
- `GisStationsStaticDistrict` wird jetzt korrekt aus Redux gelesen und verwendet `Points` als Array.
- Fehler `find is not a function` behoben durch Zugriff auf `GisStationsStaticDistrict.Points`.
- Sicherstellung, dass `Points` existiert, bevor darauf zugegriffen wird.
- Konsole-Logs für Debugging hinzugefügt, um leere oder ungültige Daten zu erkennen.
- Bereichsauswahl im Dropdown funktioniert jetzt korrekt und fliegt zur gewählten Station auf der Karte.

 Tested: Dropdown zeigt jetzt die `Area_Name`-Werte und `map.flyTo()` funktioniert korrekt.
2025-03-08 12:10:21 +01:00
Ismail Ali
28dbf80462 feat: API-URLs dynamisch aus .env.local statt config.js
- Alle API-URLs nutzen jetzt `process.env.NEXT_PUBLIC_API_BASE_URL`
- `fetchGisStationsMeasurements`, `fetchGisStationsStaticDistrict`, `fetchGisStationsStatusDistrict`, `fetchGisSystemStatic` angepasst
- `idMap` und `idUser` werden dynamisch aus URL oder `.env.local` bezogen
- Entfernte `config.js`-Abhängigkeit für API-URLs
- `.env.local` erlaubt jetzt flexible Server-IPs ohne Code-Anpassung
2025-03-08 08:06:07 +01:00
Ismail Ali
53ad8b3402 feat: GisSystemStatic in Redux integriert
- API-Response für GisSystemStatic in Redux Store gespeichert
- Server-IP aus `.env.local` geladen (`NEXT_PUBLIC_API_BASE_URL`)
- `idMap` und `idUser` aus URL-Parametern extrahiert
- fetchGisSystemStatic angepasst für dynamische Werte
- Redux Store aktualisiert und getestet
2025-03-07 23:50:42 +01:00
Ismail Ali
6636f841a2 feat: GisStationsMeasurements in Redux-Store integriert
- API-Loader für GisStationsMeasurements erstellt
- Redux-Slice für GisStationsMeasurements angelegt und im Store registriert
- Initialisierungs-Hook useInitGisStationsMeasurements hinzugefügt
- Daten werden jetzt beim Start automatisch geladen und zentral im Redux-Store gespeichert
- Vorbereitung für spätere Nutzung in UI-Komponenten
2025-03-07 22:33:47 +01:00
Ismail Ali
86d8e4924a feat: GisStationsStaticDistrict in Redux-Store integriert
- WebService-Endpoint für GisStationsStaticDistrict angebunden
- Daten beim Start der Anwendung automatisch geladen und in Redux gespeichert
- UI (DataSheet) verwendet die Daten direkt aus dem Redux-Store
- Fehlerhandling und Initialzustand in Redux-Slice verbessert
- Alte lokale Fetch-Logik entfernt, zentrale Datenhaltung über Redux
2025-03-07 22:20:21 +01:00
Ismail Ali
c57ae7717a feat: Geräte-Daten aus Redux-Store in POI-Bearbeiten-Modal integriert
- Geräte-Liste wird jetzt direkt aus dem Redux-Store (locationDevicesFromDB) verwendet.
- Dropdown-Menü zeigt alle verfügbaren Geräte aus der Datenbank.
- Beim Öffnen des Modals wird der vorher zugewiesene Gerätname automatisch ausgewählt (Pre-Selection).
- Cleanup und Optimierung: Keine separaten API-Calls mehr im Modal.
- Struktur verbessert durch Auslagerung der Lade-Logik in useInitLocationDevices Hook.
2025-03-07 20:52:00 +01:00
Ismail Ali
5a27bc5d75 WIP: POI->contextmenu ->POI bearbeiten ->Gerät: Dropdown 2025-03-07 18:13:09 +01:00
ISA
a9d8b9f632 MapComponent.js etwas gereinegt von ungenutzte URLs 2025-03-07 12:08:49 +01:00
ISA
da8112e43a fix: Clipboard-Kopierfunktion in CoordinatePopup.js mit Fallback abgesichert
- Clipboard-API Nutzung abgesichert gegen nicht unterstützte Umgebungen
- Fallback mit document.execCommand implementiert für ältere Browser
- Fehlerbehandlung und Benutzer-Feedback verbessert
2025-03-07 10:34:49 +01:00
ISA
c6269b75a3 git commit -m "feat: Mock-API über /api/mockData/webService erfolgreich implementiert 🚀
- JSON-Dateien aus /webServiceMockdata als echte API-Mocks verfügbar
- API-Endpunkte unter /api/mockData/webService/ hinzugefügt
- Fehlerhafte Platzhalter in den API-Handlern korrigiert
- Alle Mock-URLs in config.js auf die neuen API-Routen umgestellt
- Tests erfolgreich durchgeführt, Mock-API funktioniert einwandfrei"
2025-03-07 10:01:18 +01:00
ISA
aa218b1c96 GisLines Mock funktioniert 2025-03-07 08:38:34 +01:00
Ismail Ali
bed9ce7772 feat: Automatische Aktivierung von TALAS Meldestation bei Aktivierung der Kabelstrecken-Checkbox
- Wenn die Checkbox "Kabelstrecken" aktiviert wird, wird automatisch die Checkbox "TALAS Meldestation" ebenfalls aktiviert.
- Status-Synchronisierung erfolgt über Redux und localStorage.
- TALAS Meldestation kann weiterhin unabhängig deaktiviert werden.
- Wenn die TALAS-Checkbox aktiviert wird, beeinflusst das nicht die Kabelstrecken.
- Stellt sicher, dass bei aktivierten Kabelstrecken die zugehörigen TALAS-Stationen immer sichtbar sind.
2025-03-06 20:11:24 +01:00
Ismail Ali
a837291048 refactor: Polyline-Sichtbarkeit auf Redux umgestellt (ersetzt Recoil)
- Sichtbarkeitsstatus für Kabelstrecken/Polylines wird jetzt zentral im Redux-Store verwaltet.
- Initialer Zustand wird aus localStorage gelesen und direkt in Redux gesetzt.
- DataSheet-Checkbox steuert Redux-Status und synchronisiert mit localStorage.
- MapComponent.js verwendet Redux-State direkt zur Steuerung von setupPolylines.
- setupPolylines.js ist jetzt komplett "dumm" und bekommt den Sichtbarkeitsstatus nur noch als Parameter.
- Konsistente Lösung für Initial-Laden, Checkbox-Wechsel und Map-Neuladen umgesetzt.
2025-03-06 19:54:29 +01:00
ISA
915ffbd85e Marker aktualisieren alle 60 Sekunden, später in Redux lösen 2025-03-06 10:25:47 +01:00
Ismail Ali
fc13176471 Mock aus public Verzeichnis bekommen 2025-03-06 00:25:19 +01:00
ISA
82001a4beb mockApi erstellt, um die Eingabe zu simulieren, aber funktioniert nocht nicht ganz 2025-03-05 12:37:08 +01:00
ISA
3a21abd4bb Test Datei entfernt 2025-03-05 09:48:02 +01:00
ISA
e355fdc919 talas5 Verzeichnis gelöscht, weil ich bekomme alles von WebServices und in der Produktionsumgebung läuft Entwicklungsumgebung 2025-03-05 09:28:30 +01:00
ISA
7efbc4f6d8 LTE-Modem statt GSM-Modem, das sind das selbe gemeint 2025-03-04 13:48:29 +01:00
ISA
9ba3129ba6 LTE-Modem funktioniert 2025-03-04 13:35:08 +01:00
ISA
6f1df8db94 merge fix v1.0.8.1 Browser lädt ständig die Seite neu wenn keine Linien existieren 2025-02-12 14:51:17 +01:00
ISA
52e9939eb8 git commit -m "fix: Fehlerbehandlung für fehlende gis_lines-Tabelle und Verwendung des DB-Namens aus .env
- Verhindert Absturz der Anwendung, wenn die gis_lines-Tabelle fehlt
- Gibt stattdessen eine Warnung in der Konsole aus
- Stellt sicher, dass der Datenbankname dynamisch aus der .env-Datei geladen wird"
2025-02-05 13:29:54 +01:00
ISA
2e37545e55 Noch alte image für Geräte.
Bereiche und Standorte von Auswahlmenü auskommentiert,
2025-02-05 10:51:05 +01:00
ISA
f4210a4776 Merge branch 'v1.0.8.1' into fix/ohne-externe-babel 2025-02-05 10:27:36 +01:00
ISA
b467ff3835 feat: Linienanzeige abhängig vom Status der Stationen (CPLs)
- Polylinien werden nur angezeigt, wenn die zugehörigen Stationen (CPLs) aktiv sind
- Redux speichert den Status der Stationen (1 = aktiv, 0 = inaktiv)
- setupPolylines.js überprüft jetzt direkt in Redux, ob eine Linie gezeichnet werden soll
- Entfernt den unnötigen activeLines-Parameter in MapComponent.js für eine bessere Struktur
- Optimierte Performance: Linien ändern sich dynamisch ohne Seiten-Reload
2025-02-04 09:27:42 +01:00
ISA
3e92fda934 WIP: referesh polyline wennactive oder inaktive sind (GIS Lines) 2025-02-03 15:56:57 +01:00
ISA
1f9286a6cf CPL nicht anzeigen wenn nicht Aktive ist idLD und Active Spalte in location_device, Status wird in Redux gespeichert für die ensprechende Linie(WIP) 2025-02-03 14:51:14 +01:00
ISA
e03dff4814 Redux: alle Active 1 und 0 speichern 2025-02-03 13:15:59 +01:00
Ismail Ali
5b2cb762cc fix: Behebt Endlosschleife und doppelte Recoil-Atom-Registrierung
- `index.js` als Client-Komponente deklariert (`"use client"`) zur Vermeidung von SSR-Problemen.
- `useEffect` optimiert, um unendliche API-Requests durch `isMounted`-Check zu verhindern.
- `loadData()` angepasst, um API-Fehler korrekt abzufangen und erneute Ladeversuche zu vermeiden.
- Doppelte Registrierung von `poiReadFromDbTriggerAtom` durch HMR verhindert.
- Ungültige MySQL-Option `acquireTimeout` entfernt, um Verbindungsfehler zu beheben.

Diese Änderungen verhindern unerwartete Reloads und verbessern die Stabilität der Anwendung.
2025-02-02 13:01:04 +01:00
Ismail Ali
47f1535883 Latidute und Longitude in Popuphinzugefügt 2025-01-17 22:37:47 +01:00
ismailali1553
486c1a903c Popup statt Modal ,um die Koordinaten zu kopieren 2025-01-17 22:16:12 +01:00
ismailali1553
e9abcacf1e Popup statt Modal für die Koordinaten kopieren 2025-01-17 20:20:53 +01:00
ismailali1553
f69f54dba9 Modal wird angezeigt, aber muss noch angepasst werden 2025-01-17 19:13:29 +01:00
ismailali1553
d8ab5bd0a5 Eingabefeld für Koordinaten 2025-01-17 14:32:03 +01:00
ISA
d7978790e1 feat: Proxy-APIs und Integrationstests für WebServices hinzugefügt
- Vier Proxy-Endpunkte implementiert:
  1. gisStationsStatusDistrict
  2. gisStationsStaticDistrict
  3. gisStationsMeasurements
  4. gisSystemStatic

- API-Integrationstests mit Jest für alle Endpunkte erstellt:
  - Tests verwenden echte API-Responses statt Mock-Daten.
  - Erfolgreiche Anfragen mit gültigen Parametern getestet.
  - Fehlende Parameter und ungültige Parameter getestet.

- Code enthält:
  - Dynamische URL-Generierung für Proxy-Weiterleitungen.
  - Prüfung von Headern, Statuscodes und JSON-Strukturen.
  - Unterstützung für CORS und OPTIONS-Anfragen.

- Ergebnis:
  - Alle Tests erfolgreich bestanden.
  - APIs bereit für produktive Nutzung und Erweiterungen.
2025-01-03 14:02:29 +01:00
ISA
20a2abd9b6 feat: API-Proxy für SOAP-Webservice implementiert
- API-Route hinzugefügt: /api/gisStationsStaticDistrict
- Dynamisches Lesen von URL-Parametern (idMap, idUser) aus Anfrage
- SOAP-Anfrage an ASP.NET-Webservice weitergeleitet
- XML-Antwort verarbeitet und zurückgegeben
- CORS-Header und OPTIONS-Preflight für Sicherheit konfiguriert
- Fehlerbehandlung und Debug-Logs integriert
2025-01-02 13:59:18 +01:00
ISA
e6dff1dcf8 test: Überprüfung der Kartenladung, Kontextmenü und Geräte-URL-Erreichbarkeit
- Stellt sicher, dass die Karte erfolgreich geladen wird und sichtbar ist.
- Simuliert Rechtsklick auf Marker und überprüft, ob das Kontextmenü erscheint.
- Validiert die Sichtbarkeit des Menüeintrags "Station öffnen (Tab)" im Kontextmenü.
- Testet, ob ein Klick auf den Menüeintrag "Station öffnen (Tab)" , dass das  Gerät in einem Tab öffnet.
- Überprüft, ob die URL des geöffneten Geräts den HTTP-Status 200 zurückgibt (erreichbar).
- Fügt Logs und Screenshots zur Fehlerbehebung hinzu.
2025-01-02 08:42:31 +01:00
ISA
65109cc953 Koordinaten kopieren 2024-12-30 12:19:30 +01:00
ISA
3fc5da6667 Koordinaten anzeigen 2024-12-30 12:12:23 +01:00
ISA
7ccec2bde4 Kommentar für Bereichsmarker 2024-12-30 09:25:57 +01:00
ISA
79111365a2 feat: Bereichsmarker dynamisch an Editiermodus gekoppelt
Bereichsmarker werden jetzt nur angezeigt, wenn der editMode aktiviert ist.
Marker werden bei deaktiviertem editMode aus der Karte entfernt.
Dynamische Überwachung von Änderungen im editMode über localStorage und Event Listener implementiert.
Dragging für Marker im editMode aktiviert und Z-Index angepasst.
2024-12-30 09:22:43 +01:00
ISA
ee69f85734 icons nur grün da und erstemal statische Farbe mit Level in createAndSetDevice.js 2024-12-28 11:47:47 +01:00
ISA
d2715466e3 APP_VERSION = "1.0.18.0"
feat: GeocoderFeature mit Feature Toggle und Anpassungen integriert

- GeocoderFeature als separates Modul implementiert und initialisiert.
- Feature Toggle für Geocoder in .env.local hinzugefügt (NEXT_PUBLIC_ENABLE_GEOCODER).
- Dynamische Aktivierung des Geocoders über MapComponent.js basierend auf Feature-Flag.
- Anpassungen zur Entfernung bzw. Anpassung der Fehlermeldung "Nothing found".
- Styling-Verbesserungen für das Suchfeld mit Tailwind CSS.
2024-12-27 09:18:20 +01:00