Files
CPLv4.0/components/main/kabelueberwachung/kue705FO/Charts/IsoMeasurementChart
ISA e86de5cefe feat: implement modal chart system with conditional UI and message filtering
- 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
2025-07-31 16:02:04 +02:00
..
2025-07-31 15:57:50 +02:00

🧭 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 (über DateRangePicker), 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 setzt chartUpdatePaused, 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
}