Commit Graph

73 Commits

Author SHA1 Message Date
ISA
3aac69954a Version 1.6.200 2025-04-02 08:14:17 +02:00
ISA
76f4b92fb5 feat: Charttitel in ChartSwitcher dynamisch an Slot-Typ angepasst via loopChartTypeSlice
- Neues Redux Slice erstellt zur Verwaltung des Titels
- Dropdown-Auswahl in LoopChartActionBar aktualisiert Redux-Wert
- ChartSwitcher verwendet dynamischen Titel statt statischem Text
2025-04-02 07:38:48 +02:00
ISA
20e20dec30 feat(redux): Rename all Redux slices and store keys to match file names for clarity
- Renamed all slice names (createSlice `name` attribute) to match their file names (e.g. loopChartSlice, authSlice, kueDataSlice etc.)
- Updated `store.ts` to register each reducer with consistent key names (e.g. state.loopChartSlice instead of state.loopChart)
- Adjusted all `useSelector` and Redux state accesses across the codebase
- Improves maintainability, searchability and consistency across files and Redux DevTools
2025-04-01 12:26:41 +02:00
Ismail Ali
826977c9c7 feat: lokale Speicherung der Referenzkurve per localStorage implementiert
- Aktuelle Messkurve wird bei Klick auf „Als Referenzkurve setzen“ in localStorage gespeichert
- fetchTDRReferenceCurve lädt zuerst aus localStorage, dann aus Datei/Produktion
- Ermöglicht Setzen und Testen von Referenzkurven in der Entwicklungsumgebung ohne Backend
2025-03-30 20:22:48 +02:00
Ismail Ali
cb2deecf17 feat: Referenzkurve pro Slot dynamisch per Redux Slice laden und anzeigen
- Neuen Slice `tdrReferenceChartDataBySlot` eingeführt
- Thunk `fetchReferenceCurveBySlotThunk` erstellt
- Referenzdaten pro Slot in Redux gespeichert
- Zugriff im TDRChart angepasst auf neue Struktur
2025-03-30 13:32:32 +02:00
ISA
776f59a389 TDMChartEntry d Type 2025-03-28 14:47:34 +01:00
ISA
37af5702fa Letzte TDR-Messung anzeigen für ausgewählte Slot 2025-03-28 12:26:43 +01:00
ISA
e2d8bb0f05 Alle TDM und TDR in Mock speichern 2025-03-28 10:42:54 +01:00
ISA
35c9c1e486 refactor: lade TDM-Liste nur im TDR-Modus über TDRChartActionBar
- fetchTDMDataBySlotThunk aus ChartSwitcher entfernt
- TDM-Daten werden jetzt gezielt im TDR-Kontext geladen
- Vermeidet Konflikte mit Schleifenmodus und spart Ressourcen
2025-03-28 08:32:32 +01:00
ISA
4e459a7f36 refactor: TDR-Daten in neuen tdrSingleChartSlice ausgelagert und nur pro Slot geladen
- Globalen fetchAllTDRChartData entfernt
- Neuen Slice und Thunk pro Slot erstellt
- TDRChart liest initiale Daten aus neuem Slice
2025-03-27 14:55:06 +01:00
Ismail Ali
c5e978e221 fix: nach variablesslice gelöscht, war noch paar Abhängigkeite 2025-03-26 21:33:00 +01:00
Ismail Ali
99d727a925 selectedChartData slice erstellt 2025-03-26 21:08:17 +01:00
Ismail Ali
626322b079 feat: fetchKueData über Service & Redux integriert, Zugriff aus loadWindowVariables entfernt
- Alle KÜE-Daten (z. B. kueAlarm1, kueCableBreak, kuePSTmMinus96V etc.) über fetchKueData.ts geladen
- Redux Slice `kueDataSlice.ts` überarbeitet, um alle Werte aus kueData.js korrekt zu speichern
- Komponenten wie `Kue705FO`, `KabelModulStatus` und `Baugruppentraeger` auf Redux umgestellt
- Fehler bei undefined-Variablen durch korrekte Zuweisung aus Redux behoben
- loadWindowVariables.ts wird nicht mehr für KÜE-Daten verwendet
2025-03-26 20:18:20 +01:00
ISA
d305a07f89 kueData service nutzen statt globale loadWindowVariables, um Netzwerklast zu reduzieren und mehr Performance zu erreichen 2025-03-26 16:11:48 +01:00
ISA
c8619f96de feat: fetchKueData mit vollständiger Extraktion aus kueData.js ersetzt loadWindowVariables
- Dynamisches Laden von kueData.js nur bei Bedarf
- Alle benötigten Variablen wie kueAlarm1, kueCableBreak etc. extrahiert
- Fehleranzeige in KabelModulStatus funktioniert wieder korrekt
- loadWindowVariables.ts für KUE vollständig ersetzt
2025-03-26 15:37:11 +01:00
ISA
9e282c9ae5 refactor: Lade alle window-basierten .js-Dateien dynamisch und umgebungsabhängig
- 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
2025-03-26 14:13:18 +01:00
ISA
db67ba0709 refactor: digitale Ausgänge über eigenen Service und Redux Thunk laden
- 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
2025-03-26 12:11:59 +01:00
ISA
fa94d2c2f7 refactor: Systemdaten über eigenen Redux Thunk und Service laden
- 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
2025-03-26 11:28:13 +01:00
ISA
7b85ebc730 refactor: lade OPC UA Daten direkt in NetworkInfo-Komponente statt global in _app.tsx
- 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
2025-03-26 10:45:00 +01:00
Ismail Ali
d98af6483e feat: Redux Slice für last20Messages ausgelagert und strukturiert umbenannt
- dashboardSlice in last20MessagesSlice umbenannt
- Redux Store Key von 'dashboard' auf 'last20Messages' geändert
- fetchLast20MessagesThunk angepasst: neuer Action-Name 'last20Messages/fetchLast20Messages'
- Komponente Last20MessagesTable aktualisiert: useSelector verweist jetzt auf state.last20Messages
- Struktur für zukünftige Erweiterung vorbereitet
2025-03-25 20:18:17 +01:00
ISA
289b9a8f77 TDR Distance auf Display anzeigen 2025-03-25 15:10:45 +01:00
ISA
b536d31e48 git commit -m "refactor: last20Messages aus _app.tsx entfernt und über Thunk in dashboard.tsx geladen" 2025-03-25 09:34:19 +01:00
ISA
6730ba92be Letzten TDR-Messungen anzeigen in Dropdown-Menü 2025-03-25 07:57:17 +01:00
ISA
68614df0cd TDR Chart von Dropdown Menü Auwahl zeichnen 2025-03-24 15:00:20 +01:00
ISA
69bcbf519d Mock Dateien für TDM erstellt:
Eine Liste mit den
letzten 100 TDR Messungen des Slots
2025-03-24 10:44:12 +01:00
Ismail Ali
44db20a871 feat: Redux-Struktur für LoopChart vereinheitlicht (DIA0–2 + Typ 3/4)
- Alle Schleifen- und Isolationswiderstandsdaten werden zentral in loopChart.data gespeichert
- Redux State unterstützt nun strukturierte Speicherung nach mode (DIA0–DIA2) und type (3/4)
- Bestehender Thunk fetchLoopChartDataThunk wurde angepasst zur Wiederverwendung
- Zugriff aus Komponente via loopData["DIAx"][type] möglich
2025-03-23 18:07:00 +01:00
Ismail Ali
8e482813f8 fix: Dynamische Initialisierung von "vonDatum" und "bisDatum" im Redux-Store
- vonDatum auf „heute minus 30 Tage“ gesetzt (statt festem Datum).
- bisDatum auf heutiges Datum gesetzt.
- Behebt Initialisierungsproblem im DateRangePicker.
2025-03-23 11:14:38 +01:00
ISA
93136d0a38 feat: Referenzkurve für TDR-Chart integriert
- Neues Verzeichnis `tdr-reference-curves` für JSON-Referenzdaten hinzugefügt
- Redux Slice `tdrReferenceChartSlice` erstellt
- Thunk `fetchAllTDRReferenceChartThunk` zum Laden aller Referenzdaten integriert
- Service `fetchAllTDRReferenceChartData` mit Umgebungsunterscheidung (dev/prod)
- Anzeige der Referenzkurve im TDR-Chart mit Tooltip und gestrichelter Linie
- Referenzdaten werden automatisch beim Laden der Seite in Redux geladen
2025-03-21 13:28:43 +01:00
ISA
33e66269c2 feat: TDR-Chart mit Tooltip und Pegel-Darstellung hinzugefügt 2025-03-21 10:42:54 +01:00
ISA
75529f030e feat: TDR-Chart aktualisiert sich jetzt automatisch bei Datenänderung
- `fetchAllTDRChartThunk.ts`: Vergleich der aktuellen und neuen Daten mit `lodash.isEqual`, um unnötige Redux-Updates zu vermeiden.
- `TDRChart.tsx`: Nutzt `selectedSlot` aus `kueChartModeSlice.ts`, um nur den relevanten Slot im Chart anzuzeigen.
- `ChartSwitcher.tsx`: Ruft alle 10 Sekunden `fetchAllTDRChartData` auf, um Änderungen zu prüfen.
- `tdrChartSlice.ts`: Speichert nur neue Daten, wenn sie sich von den vorherigen unterscheiden.
- Fix: `activeMode` aus `kueChartModeSlice.ts` wird für die Auswahl zwischen TDR- und Schleifenmessung verwendet.
- Code Cleanup und Logging für bessere Debugging-Unterstützung.

🔥 Jetzt aktualisiert sich der TDR-Chart automatisch, wenn sich die Daten ändern, ohne dass ein Neuladen der Seite erforderlich ist.
2025-03-20 14:58:52 +01:00
ISA
0bdf5b29ea feat: Verbesserung der Slot-Auswahl und Chart-Steuerung
- `selectedSlot` in `kueChartModeSlice.ts` hinzugefügt, um den aktiven Slot zu speichern.
- `handleButtonClick.ts` aktualisiert, damit `selectedSlot` in Redux gesetzt wird.
- `handleOpenChartModal.ts` angepasst, sodass `selectedSlot` beim Öffnen des Modals gesetzt wird.
- `Kue705FO.tsx` nutzt jetzt Redux für die Slot- und Modus-Steuerung (`selectedSlot`, `activeMode`).
- Redux-Logik optimiert: `selectedSlot` wird nun konsistent zwischen `TDRChart.tsx` und `ChartSwitcher.tsx` genutzt.
- Verbesserung der Benutzererfahrung: Nur `onClick` verwendet, `onMouseOver` wegen Performance-Problemen vermieden.

 Jetzt wird der richtige Slot in Redux gespeichert, wenn ein Button oder das Chart-Modal geöffnet wird.
 `TDRChart.tsx` zeigt nur das gewählte Modul an, kein unnötiges Neuladen von Daten.
 Stabile und optimierte Chart-Steuerung ohne ungewollte Änderungen durch Mausbewegungen.
2025-03-20 11:50:14 +01:00
ISA
735fc92b96 feat: Redux-Integration für TDR-Daten verbessert
- 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.
2025-03-20 10:13:41 +01:00
ISA
f9c2dc7bc9 feat: Redux-Thunk für digitale Eingänge integriert & UI mit zwei Tabellen umgesetzt
- `fetchDigitaleEingaengeThunk.ts` erstellt, um digitale Eingänge in Redux zu speichern.
- `fetchDigitaleEingaenge.ts` erstellt, um API-Daten aus `de.js` zu laden.
- `digitalInputsSlice.ts` hinzugefügt, um digitale Eingänge in Redux zu verwalten.
- `DigitalInputs.tsx` überarbeitet: Zwei Tabellen für digitale Eingänge hinzugefügt.
- Sicherstellung, dass Redux-Thunk nur im Client (`useEffect`) ausgeführt wird.
- API-Calls werden nun alle 10 Sekunden aktualisiert.

 Jetzt läuft Redux-Thunk stabil & effizient für digitale Eingänge!
2025-03-19 15:33:23 +01:00
ISA
25b63e3a31 feat: Redux-Thunk für analoge Eingänge integriert & useFetchAnalogeEingaenge entfernt
- `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!
2025-03-19 14:48:19 +01:00
ISA
49e7d6c6c4 WIP:DatePicker in Messkurven 2025-03-19 07:20:46 +01:00
Ismail Ali
ea0e21892a TDRChart 2025-03-16 12:01:42 +01:00
Ismail Ali
da28d64f8c feat(chart): X-Achsen-Labels optimiert für bessere Lesbarkeit
- Jahreszahl aus der X-Achse entfernt, um die Darstellung kompakter zu machen.
- Datumsformat von `TT.MM.YYYY` auf `TT.MM` geändert.
- Achsenbeschriftung um 25° gedreht (`angle: -25`) für bessere Übersicht.
- `dy: 5` hinzugefügt, um die Abstände der Labels anzupassen.
2025-03-15 11:42:17 +01:00
Ismail Ali
e0379c24a6 feat(ui): Slot-Nummer nach links verschoben und Datumsauswahl horizontal ausgerichtet
- Slot-Nr.-Anzeige nach links im ActionBar verschoben.
- Datum-Labels („Von“ & „Bis“) und Eingabefelder horizontal ausgerichtet.
- Verbesserte UI/UX der Chart-Steuerungskomponenten.
2025-03-14 21:30:21 +01:00
ISA
8c638acfc7 feat: Dynamische Einheit in Redux für Schleifen- und Isolationswiderstand hinzugefügt
- Redux-Slice erweitert um `unit`-State (kOhm/MOhm)
- `setSelectedSlotType` aktualisiert die Einheit basierend auf der Auswahl
- Dropdown in `LoopChartActionBar.tsx` angepasst, um Einheit zu setzen
- Y-Achse und Tooltip in `LoopMeasurementChart.tsx` zeigen dynamisch die Einheit aus Redux
- Initialwert von `bisDatum` auf das heutige Datum gesetzt
2025-03-14 08:49:28 +01:00
ISA
8ca3318181 feat: Brush-Achsenbeschriftung auf Datumsformat umgestellt
- TickFormatter für Brush angepasst, sodass anstelle von Unix-Timestamps jetzt das formatierte Datum (TT.MM.JJJJ) angezeigt wird.
- Redux-Brush-Slice um `startDate` und `endDate` erweitert, um die Auswahlbereiche mit Datum statt Indizes zu speichern.
- Brush-Event-Handler (`handleBrushChange`) aktualisiert, sodass Start- und Enddatum beim Verschieben im Redux-Store gespeichert werden.
2025-03-13 07:03:40 +01:00
Ismail Ali
3547177107 WIP: Brush funktioniert in Chart, aber soll Datum in Brush angezeigt 2025-03-12 21:36:04 +01:00
Ismail Ali
bb098a4ccb WIP: analoge Eingänge von Slice bekommen 2025-02-25 22:21:08 +01:00
Ismail Ali
a641d3d100 git commit -m "fix: Redux TypeScript Fehler behoben & automatische Mock-Daten Aktualisierung
- useAppDispatch in store.ts hinzugefügt, um AsyncThunkActions korrekt zu dispatchen
- TypeScript-Fehler in useFetchAnalogeEingaenge.ts behoben
- loadFromWindow wird jetzt regelmäßig neu geladen, um Änderungen in Mock-Daten zu übernehmen
- UI aktualisiert sich automatisch, wenn sich Werte in ae.js ändern
- Code-Struktur verbessert & Redux-Integration optimiert

Test erfolgreich: Änderungen in ae.js werden nun direkt in der UI sichtbar!"
2025-02-25 20:09:24 +01:00
Ismail Ali
8c01dd3fc3 git commit -m "feat: UI-Optimierung für analoge Eingänge & Diagramm
- Layout verbessert: Tabelle und Diagramm jetzt nebeneinander (grid-responsive)
- Responsivität optimiert: Kein unnötiges horizontales Scrollen mehr
- Diagramm verbessert:
  - Höhere Lesbarkeit mit stärkeren Linien und Abstand für Achsenbeschriftungen
  - Anpassung der Höhe und Breite für mobile & große Bildschirme
- Tabelle optimiert:
  - Bessere Lesbarkeit mit größeren Abständen
  - Hover-Effekte für Zeilen
  - Dynamisches Spaltenlayout für kleine & große Bildschirme
- Code aufgeräumt und verbessert

Test auf verschiedenen Bildschirmgrößen erfolgreich!"
2025-02-25 19:46:52 +01:00
ISA
9424a6cc43 feat: Redux-Integration für Datumsauswahl und Chart-Zoom verbessert
- `DateRangePicker.tsx` angepasst, um `vonDatum` und `bisDatum` direkt in Redux zu aktualisieren
- `LoopMeasurementChart.tsx` verbessert, sodass `vonDatum` und `bisDatum` beim Zoomen mit Mausrad automatisch in Redux gespeichert werden
- Chart.js `onZoom` korrekt implementiert, um Änderungen in der X-Achse sofort zu übernehmen
- Redux-Updates optimiert, um unnötige `dispatch`-Aufrufe zu vermeiden
2025-02-25 11:55:37 +01:00
ISA
4c55e9e9fa feat: Fullscreen-Zustand mit Redux verwaltet
- `isFullScreen` zum Redux-Slice hinzugefügt
- `ChartSwitcher.tsx` angepasst, um Redux zu nutzen
- `LoopMeasurementChart.tsx` & `TDRChart.tsx` auf Redux umgestellt
- Fullscreen-Zustand bleibt jetzt persistent
2025-02-25 10:00:24 +01:00
Ismail Ali
65cfb033a5 feat: Digitale Ausgänge aus Redux-Store in UI integriert
- 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
2025-02-23 22:31:06 +01:00
Ismail Ali
1449dd458d degigitale Eingänge on Redux Slice variables entfernt, weil die sind ausgelagert in digitalInputsSlice 2025-02-23 12:23:06 +01:00
Ismail Ali
19b661fc70 refactor: OPC-UA Variablen aus variablesSlice entfernt und in opcuaSettingsSlice integriert
- OPC-UA Variablen (`opcUaZustand`, `opcUaActiveClientCount`, `opcUaNodesetName`) aus `variablesSlice` entfernt
- `_app.tsx` angepasst, um OPC-UA Daten direkt in `opcuaSettingsSlice` zu speichern
- `loadWindowVariables.ts` aktualisiert:
  - OPC-UA Status, Verschlüsselung, aktive Clients und Nodeset werden nun in `opcuaSettingsSlice` gespeichert
  - `variablesSlice` speichert keine OPC-UA Daten mehr
- Redux-Store aufgeräumt: DevTools zeigt keine OPC-UA Variablen mehr in `variablesSlice`

Jetzt ist die Trennung zwischen `variablesSlice` und `opcuaSettingsSlice` vollständig! 🚀🔥
2025-02-23 11:59:40 +01:00
Ismail Ali
772ef50af5 feat: OPC-UA Einstellungen in eigenen Redux Slice ausgelagert
- 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! 🚀
2025-02-23 11:06:15 +01:00