- Der Schalter zum Aktivieren/Deaktivieren der TDR-Funktion ist nun nur für Admins sichtbar.
- Umsetzung über `useAdminAuth` analog zum Firmware-Update-Button.
- CHANGELOG.md und README.md entsprechend aktualisiert.
- NEXT_PUBLIC_USE_MOCK_BACKEND_LOOP_START in .env.development hinzugefügt
- goLoop.ts aktualisiert, um im Mock-Modus die Dummy-API (/api/cpl/loopMessungStartenMockHandler) aufzurufen
- Neuer Mock-Handler loopMessungStartenMockHandler.ts erstellt, der eine simulierte Antwort zurückgibt
Damit können Entwickler die Schleifenmessung lokal testen, ohne echte Hardware.
- .env.development mit NEXT_PUBLIC_USE_MOCK_BACKEND_TDR_START ergänzt
- goTDR.ts überarbeitet: Mock-API oder echtes CGI-Interface je nach Modus
- Verbesserte Flexibilität für Entwicklung ohne reale Hardware
- Scripts in Dev-Umgebung werden jetzt über /api/cpl/* geladen
- Production lädt weiterhin Embedded-System JavaScript Dateien
- Einheitliches Handling für system.js, de.js, ae.js, kueData.js, opcua.js usw.
- Flexibles Konzept für zukünftige Erweiterungen
- Recharts entfernt und Chart.js direkt über canvas eingebunden
- Zoom- und Pan-Funktionalität wie bei TDRChart umgesetzt
- Chart wird nicht mehr bei jeder Redux-Aktualisierung neu gezeichnet
- Zoom-Stufe bleibt beim Benutzer erhalten
- Alle fetch-Services (TDM, TDR, analoge/digitale Eingänge/Ausgänge, SystemSettings usw.) angepasst,
um `NEXT_PUBLIC_NODE_ENV` zu verwenden.
- Entwicklungsumgebung lädt Daten aus /CPLmockData/...
- Produktionsumgebung verwendet echte Endpunkte mit /CPL?/CPL/...
- .env.production und .env.development korrekt berücksichtigt
- loadWindowVariables, WindowVariablesInitializer und verwandte Dateien bereinigt
- Mockdaten erscheinen nicht mehr versehentlich in Produktionsumgebung
- Alle Services (ae.js, de.js, da.js, kueData.js, Start.js, System.js, opcua.js) laden ihre Scripte abhängig von der Umgebung
- Vermeidet unnötige globale Script-Ladung über loadWindowVariables.ts
- Reduziert Netzwerklast und verbessert Modularität und Performance
- neue Datei fetchDigitalOutputs.ts liest win_da_state und win_da_bezeichnung aus window
- fetchDigitalOutputsThunk.ts verwendet den Service und befüllt Redux Slice
- entfernt alte Logik aus loadWindowVariables.ts
- verbessert Performance und Struktur, lädt Ausgänge nur bei Bedarf
- Systeminformationen (IP, Subnetz, Gateway, NTP, etc.) werden nun über fetchSystemSettingsThunk geladen
- loadWindowVariables.ts von systemSettings-Logik bereinigt
- Aufruf erfolgt lokal in NetworkInfo.tsx statt global in _app.tsx
- Verbesserte Struktur, reduzierte Netzwerklast, klarere Trennung der Zuständigkeiten
- Thunk `fetchOpcUaSettingsThunk` wird jetzt nur bei Anzeige von NetworkInfo ausgeführt
- Reduzierte Netzwerklast und bessere Trennung von Zuständigkeiten
- Entfernt globalen OPC UA-Aufruf aus _app.tsx
- TDR-Daten werden jetzt beim Laden der Kabelüberwachungsseite automatisch abgerufen.
- Fehler im Thunk behoben: Initial leere `tdrChart.data` wird nun korrekt aktualisiert.
- Überprüfung, ob neue Daten vorhanden sind, verbessert (keine unnötige Ablehnung bei Erstabruf).
- Korrekte JSON-Datei-Pfade (`slot0.json` bis `slot31.json`) in Fetch-Requests implementiert.
- Redux-Error-Handling optimiert: Falls keine gültigen Daten geladen werden, wird eine Meldung angezeigt.
- Logging für geladene Daten hinzugefügt, um die Debugging-Möglichkeiten zu verbessern.
- `fetchAllTDRChartData.ts` als überflüssige Datei entfernt (Thunks übernehmen jetzt den Abruf).
- `kabelueberwachung.tsx` so angepasst, dass der Chart sofort mit geladenen Daten arbeitet.
- `fetchAnalogeEingaengeThunk` in `AnalogeEingaengeTable.tsx` verwendet, um API-Daten in Redux zu speichern.
- `useFetchAnalogeEingaenge` entfernt, um doppelte API-Aufrufe zu vermeiden.
- Sicherstellung, dass Redux-Thunk nur im Client (`useEffect`) ausgeführt wird.
- Automatische Aktualisierung der API-Daten alle 10 Sekunden über Redux-Thunk.
- Code-Optimierungen für eine stabilere Client-Side-Architektur mit Next.js.
✅ Jetzt läuft Redux-Thunk stabil & effizient in der Next.js-Anwendung!
- DigitalOutputs.tsx auf Redux umgestellt, um Werte direkt aus dem Store zu lesen
- toggleSwitch-Funktion angepasst, um den Status von digitalen Ausgängen in Redux zu aktualisieren
- useDigitalOutputsData.ts nutzt nun Redux zum Speichern der `win_da_state` und `win_da_bezeichnung` Werte
- Entfernen von Prop `digitalOutputs` in `DigitalOutputs.tsx`, da Redux nun als Datenquelle dient
- Weboberfläche zeigt nun digitale Ausgänge korrekt an und Status kann geändert werden
- OPC-UA bezogene Variablen aus `variablesSlice` entfernt und in `opcuaSettingsSlice` ausgelagert
- Neue Redux Actions für:
- `setOpcUaZustand` (OPC-UA Zustand setzen)
- `setOpcUaEncryption` (Verschlüsselung setzen)
- `setOpcUaActiveClientCount` (Anzahl aktiver Clients setzen)
- `setOpcUaNodesetName` (Nodeset-Name setzen)
- `addOpcUaUser` & `removeOpcUaUser` (Benutzerverwaltung)
- `loadWindowVariables.ts` angepasst, um OPC-UA-Daten in `opcuaSettingsSlice` zu speichern
- Benutzerverwaltung optimiert:
- Manuell hinzugefügte Benutzer bleiben erhalten
- Benutzer werden nur aktualisiert, wenn sich `window.win_opcUaUsers` ändert
- Keine automatische Statusumschaltung mehr beim OPC-UA-Server-Button
Jetzt ist die OPC-UA Verwaltung sauber getrennt und stabil! 🚀
- Neuen Redux Slice `systemSettingsSlice` erstellt, um Systemdaten zentral zu verwalten.
- Header-Icon für Systemeinstellungen holt jetzt Daten aus `systemSettingsSlice` statt `variablesSlice`.
- Die Einstellungen-Seite (`Allgemeine Einstellungen`) wurde umgestellt und liest nun ebenfalls aus `systemSettingsSlice`.
- UI-Optimierungen für die Einstellungen-Seite, um alle Eingabefelder kompakter darzustellen.
Die Variable 'chartData' wurde in 'loopMeasurementCurveChartData' umbenannt, um den Inhalt und Zweck der Daten klarer zu definieren. Diese Änderung verbessert die Lesbarkeit und Wartbarkeit des Codes, indem sie die Bedeutung der Variablen präziser beschreibt.
- `loadTDRChartData.ts` in `utils` für die TDR-Datenverarbeitung erstellt
- `loadLoopChartData.ts` in `utils` für die Schleifenmesskurvendaten erstellt
- `Kue705FO.tsx` angepasst, um die Funktionen auszulagern und Code sauberer zu halten
- createLoopChart und createTDRChart aus Kue705FO.tsx in eine separate Datei chartUtils.ts verschoben
- Verbesserte Code-Struktur und Wiederverwendbarkeit der Chart-Funktionen
- Import der ausgelagerten Funktionen in Kue705FO.tsx angepasst
- Passwort-Hashing und Salt-Erzeugung mit bcrypt implementiert, um sensible Daten wie Passwörter sicher zu speichern.
- Token-Generierung und -Validierung eingeführt, um den Admin-Status zu überprüfen und temporäre Zugriffsrechte zu verwalten.
- Benutzername-Vergleich case-insensitive gestaltet, um Benutzerfreundlichkeit zu verbessern.
- Token wird in localStorage gespeichert und die Ablaufzeit überprüft, um Sicherheit und konsistente Sitzungen zu gewährleisten.
- Fehlerbehebungen und Code-Refactor durchgeführt, um Lesbarkeit und Wartbarkeit zu verbessern.
**Warum:**
- Passwort-Hashing und Salt schützen Passwörter vor direkten Angriffen (z. B. Brute-Force oder Datenlecks).
- Token-Handling ermöglicht eine sichere und flexible Verwaltung von Sitzungsinformationen.
- Verbesserungen erhöhen die Sicherheit und Benutzerfreundlichkeit des Admin-Bereichs.
- Added blinking icon functionality to "PST-M prüfen" alarm status for consistency with other alarm statuses.
- Refactored display logic to prioritize "PST-M prüfen" with icon blink effect in the interval.
- Ensured proper interval clearing for consistent display across alarm updates.
- Anpassung in loadWindowVariables.js: %20-Zeichen in kueID-Werten werden beim Kopieren aus dem window-Objekt automatisch durch tatsächliche Leerzeichen ersetzt.
- Sicherstellung, dass die Werte im Redux-Store korrekt und leserlich gespeichert werden, ohne URL-kodierte Leerzeichen.
- Added parallel saving of required variables to both IndexedDB and localStorage using Promise.all for improved performance.
- Implemented a recursive check for missing variables with a retry mechanism for reliable loading.
- Enhanced error handling for script loading and storage processes.
- Streamlined loading scripts sequentially and storing in IndexedDB and localStorage upon successful loading.
- Implementiert PST-M Ausfall als höchste Priorität in der Alarmanzeige.
- Hinzugefügt: "PST-M prüfen" wird rot angezeigt, wie bei Aderbruch, Erdschluss, Isolationsfehler und Schleifenfehler.
- Einheit "ISO MOhm" wird nur angezeigt, wenn kein Alarm aktiv ist.
- ">200 MOhm" wird nun als neutraler Wert angezeigt und nicht in Rot, da es auf eine gute Kabelisolation hinweist.
- Rote Textfarbe bleibt auf Fehlerbeschränkungen wie Aderbruch, Erdschluss, Isolations- und Schleifenfehler begrenzt.
- Code-Bedingungen für die Prioritätsanzeige optimiert, um korrekte Farbzuordnung und Alarmauslösung sicherzustellen.