- Add automatic data loading on IsoChartView modal open with timeout to prevent infinite loops - Implement conditional UI visibility in IsoChartActionBar using CSS visibility property - Create stable layout where controls reserve space when hidden (DatePicker, DIA dropdown, "Daten laden" button) - Add Report.tsx component with precise CableLine filtering using exact string matching - Enhance message filtering with debug logging and fallback identifier support - Integrate chartTitle state management for seamless switching between "Messkurve" and "Meldungen" - Add useIsoDataLoader hook for automatic chart data loading without user interaction - Implement enhanced filtering logic to prevent false matches (CableLine1 vs CableLine16) - Style Report component with consistent table layout matching MeldungenView design - Add visual filter indicators and improved error messaging for better UX Technical improvements: - Replace conditional rendering with visibility control to maintain layout stability - Add comprehensive logging for debugging message source filtering - Implement proper cleanup for timeouts to prevent memory leaks - Use exact string matching and prefix validation for precise slot identification
🧭 Zoom-Verhalten beim Schleifen-/Isolationsdiagramm
In dieser Komponente wird das automatische Nachladen der Messwerte temporär deaktiviert, wenn der Benutzer per Maus in das Diagramm zoomt oder pannt. Nach 30 Sekunden ohne Zoom/Pan-Aktion wird die automatische Aktualisierung wieder aktiviert. Dieses Verhalten dient dazu, den Zoom-Zustand nicht durch neue Daten zu verlieren.
📁 Enthaltene Komponenten
-
LoopChartActionBar.tsx
→ Auswahlleiste für Slot-Nummer, Zeitraum (überDateRangePicker), Messmodus (DIA0,DIA1,DIA2) und Slot-Typ (Schleife/Isolation).
→ Ruft alle 10 Sekunden neue Messdaten ab – außer der Zoom-Modus pausiert das. -
LoopMeasurementChart.tsx
→ Das eigentliche Liniendiagramm mit Chart.js + Zoom-Plugin.
→ Erkennt Zoom/Pan und setztchartUpdatePaused, bis 30 Sekunden Inaktivität vergangen sind. -
DateRangePicker.tsx
→ Zeigt zwei Felder für Von-/Bis-Datum. Nutzt Redux, um globale Zeitfenster zu setzen. -
CustomTooltip.tsx
→ Zeigt beim Hover über die Kurve kontextbezogene Werte wie Messwert, Min, Max und Durchschnitt (DIA0/1/2).
🟢 UML-Aktivitätsdiagramm (Zoom → Pause → Timer → Auto-Update)
flowchart TD
Start([Start])
ZoomEvent[[Zoom oder Pan erkannt]]
SetPause[Setze chartUpdatePaused = true]
StartTimer[Starte 30s Timer]
Check[Timer abgelaufen?]
SetResume[Setze chartUpdatePaused = false]
FetchData[[Datenabruf wieder erlaubt]]
End([Ende])
Start --> ZoomEvent --> SetPause --> StartTimer --> Check
Check -- Nein --> StartTimer
Check -- Ja --> SetResume --> FetchData --> End
stateDiagram-v2 [*] --> AktualisierungAktiv
AktualisierungAktiv --> ZoomPause : Zoom/Pan erkannt
ZoomPause --> AktualisierungAktiv : 30 Sekunden Inaktivität
state AktualisierungAktiv {
[*] --> Normalbetrieb
}
state ZoomPause {
[*] --> CountdownLäuft
}