- Dynamischer Import von chartjs-plugin-zoom im `useEffect` hinzugefügt, um Zugriff auf `window` im Server-Side-Build zu vermeiden.
- Zustandsvariable `zoomPluginLoaded` eingeführt, um sicherzustellen, dass das Plugin nur im Client geladen wird.
- Verwende `useRef` für Canvas-Referenz, um direkten Zugriff auf das Chart-Element zu ermöglichen.
- Optimierung der Chart-Erstellung, um Build-Fehler aufgrund fehlender `window`-Objekte zu verhindern.
- Chart.js um das Zoom-Plugin erweitert, um eine bessere Datenanalyse zu ermöglichen.
- Scrollen und Pinch-Zoom für Zoom- und Pan-Funktion aktiviert (x- und y-Achse).
- Nutzer können nun durch die Daten navigieren und gezielt Bereiche vergrößern, was die Übersichtlichkeit erhöht.
- loopDisplay zeigt nun den Schleifenwiderstand oder die TDR-Entfernung an, basierend auf dem aktiven Button ("Schleife" oder "TDR").
- Der Button "Schleife" setzt den Wert im loopDisplay auf den Schleifenwiderstand.
- Der Button "TDR" setzt den Wert im loopDisplay auf die Entfernung (tdrLocation).
- Zustand `sessionExpired` im `_app.js` hinzugefügt, um den Ablauf der Sitzung oder Verbindungsprobleme zu überwachen.
- Intervall in `loadWindowVariables` angepasst, um die Verbindung alle 10 Sekunden zu überprüfen.
- Warnmeldung angezeigt, wenn die Sitzung abgelaufen ist oder die Verbindung unterbrochen wurde.
- Benutzer wird informiert, wenn eine erneute Anmeldung oder ein Neuladen der Seite erforderlich ist.
- Beim Speichern werden die aktuellen Werte als neue Originalwerte gesetzt, um sicherzustellen, dass die geänderten Werte beim erneuten Öffnen des Modals angezeigt werden.
- Anpassung im `handleSave`-Handler vorgenommen, um die Originalwerte nach erfolgreichem Speichern zu aktualisieren.
- Verbesserung der Benutzerfreundlichkeit durch Vermeidung des Zurücksetzens der geänderten Werte.
Verhindern des automatischen Zurücksetzens von Eingabefeldern im Modal
- Werte aus Redux werden nur noch beim erstmaligen Öffnen des Modals in die State-Variablen übernommen.
- Änderungen in den Eingabefeldern bleiben bestehen, ohne durch automatische Updates überschrieben zu werden.
- Anpassung der useEffect-Abhängigkeiten, um eine stabilere Bearbeitung zu ermöglichen.
- Die Werte aus Redux werden nun nur beim Öffnen des Modals in die lokalen State-Variablen übernommen.
- Während der Bearbeitung bleibt der Zustand der Eingabefelder stabil, ohne alle 10 Sekunden zurückgesetzt zu werden.
- Dies ermöglicht eine bequemere Bearbeitung, ohne dass Änderungen automatisch überschrieben werden.
- Ersetzt `window`-Zugriff durch `IndexedDB` in der `Dashboard`-Komponente, um Produktionsprobleme zu lösen.
- Aktualisiert `KabelModulStatus`, um Alarm- und Fehlerstatus für jeden Slot über IndexedDB zu beziehen.
- Fügt zusätzliche States für Alarme (`kueAlarm1`, `kueAlarm2`) und Erdungsfehler (`kueGroundFault`) hinzu und lädt diese aus IndexedDB.
- Verbesserte Stabilität und Wartbarkeit durch den Einsatz asynchroner IndexedDB-Aufrufe statt globaler Variablen.
- Datenwerte wie deviceName, macAddress, IP usw. aus IndexedDB abgerufen und in den State geladen, um dynamische Aktualisierungen zu ermöglichen.
- Direktimplementierung von getFromIndexedDB im Component Code, um Produktionsimport-Probleme zu umgehen.
- Originalwerte beim ersten Laden gespeichert, um spätere Änderungen zu überprüfen und zu übertragen.
- Verbesserte Benutzerführung mit Zustandskontrollen und gezieltem Datenabruf bei Komponenten-Mount.
- Direkte Implementierung von `getFromIndexedDB` in Header.jsx hinzugefügt, um Importprobleme zu vermeiden
- Intervall auf 5 Sekunden funktioniert
Dies behebt das Problem, dass deviceName in der Produktion als "Unbekannt" angezeigt wurden, bedingt durch Timing-Unterschiede in IndexedDB.
- Added direct implementation of `getFromIndexedDB` in Header.jsx to avoid import issues
- Increased polling interval to 10 seconds to prevent timing issues in data fetching
- Added console logs to verify data loading process and debug potential undefined values
This resolves issues where deviceName and kueVersion were showing as "Unbekannt" in production due to IndexedDB timing differences.
- 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.
- Anzeige des Isolationswerts bei aktivem Alarm durch abwechselndes Blinken von Text und Icon ersetzt.
- Spezifische `useEffect`-Hooks hinzugefügt, um bei Alarmmeldungen den Wert auszublenden und stattdessen eine Alarmanzeige zu zeigen.
- Dynamische Anzeige für "Aderbruch", "Erdschluss", "Schleifenfehler" und "Isolationsfehler" integriert.
- SetInterval hinzugefügt, um `kueVersion` alle 10 Sekunden zu aktualisieren
- Bereinigung des Intervalls sichergestellt, um Speicherlecks zu vermeiden
- Implementiert Schleifenfehler-Anzeige, die den Text zwischen "Schleifenfehler" und einem Warn-Icon wechselt, wenn der Fehler auftritt (kueAlarm2[slotIndex] === 1).
- Isolationsfehler-Anzeige aktualisiert, die zwischen "Isolationsfehler" und einem Warn-Icon wechselt, wenn der Fehler auftritt (kueAlarm1[slotIndex] === 1).
- Priorisierte Anzeige mit rot hervorgehobenem Text für alle Fehlerzustände.
- Anzeige des "Isolationsfehler" für Werte über kueAlarm1-Array.
- Fehlerstatus in roter Schrift dargestellt, analog zu "Aderbruch" und "Erdschluss".
- Anzeige priorisiert Isolationsfehler vor Standard-Isolationswert.
- Zeigt "Aderbruch" bei aktivem kueCableBreak[slotIndex] an, wenn der Isolationswiderstand >200 MOhm beträgt
- Zeigt "Erdschluss" bei aktivem kueGroundFault[slotIndex] an, wenn der Widerstand <100 kΩ beträgt, falls kein Aderbruch vorliegt
- Abwechselnde Anzeige zwischen Alarmtext und Symbol bei Alarmauslösung
- Standardanzeige für Isolationswert bleibt bestehen, wenn kein Alarm aktiv ist
- Wechselnde Anzeige zwischen "Aderbruch" und Warnsymbol bei Kabelbruch implementiert
- Warnsymbol in der "Aderbruch"-Anzeige vergrößert (fontSize: 24px) für bessere Sichtbarkeit
- Code optimiert, um die Anzeige alle 2 Sekunden zu wechseln
- Korrigiert die Bedingung für `kueOnline`, sodass nur aktive Slots den Alarmstatus überprüfen.
- Entfernt Mehrfachreferenzen von `kueOnline`, die den Status ungewollt überschrieben haben.
- Setzt ein bedingtes Update für `kueCableBreak`, `kueAlarm1`, und `kueAlarm2`, um unnötige Aktualisierungen zu vermeiden.
- Stellt sicher, dass der erste Slot als "Leer" angezeigt wird, wenn `kueOnline` auf `0` gesetzt ist.
- Implemented conditional check before removing existing kueData.js script to avoid NotFoundError.
- Added dynamic script reloading to fetch the latest alarm status without browser refresh.
- Improved update mechanism for alarm status based on latest kueData.js values.
- Navigation und Weiterleitungen angepasst, um dynamisch `.html`-Endungen in Produktionsumgebung anzuhängen.
- Nutzung von `NEXT_PUBLIC_NODE_ENV` ermöglicht unterschiedliche URL-Strukturen in Entwicklungs- und Produktionsumgebung.
- `Navigation`-Komponente und `index.js` entsprechend konfiguriert, um `.html` in der Produktionsumgebung automatisch anzuhängen.
- Verbesserte Konsistenz und Funktionalität zwischen beiden Umgebungen, 404-Fehler in Produktion behoben.