Commit Graph

423 Commits

Author SHA1 Message Date
Ismail Ali
3547177107 WIP: Brush funktioniert in Chart, aber soll Datum in Brush angezeigt 2025-03-12 21:36:04 +01:00
Ismail Ali
a4793594d2 test 2025-03-12 17:36:26 +01:00
Ismail Ali
bb098a4ccb WIP: analoge Eingänge von Slice bekommen 2025-02-25 22:21:08 +01:00
Ismail Ali
3162b7a9e1 Header überall gleich in pages erster div 2025-02-25 20:53:34 +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
327a101386 Optimierung nach Kai, Einheit entfernt in Chart und DIA0 bis DIA2 von Dropdown entfernt 2025-02-25 15:54:33 +01:00
ISA
9bbf5cd570 feat: LoopMeasurementChart mit X- und Y-Achsen-Pan/Zoom ergänzt, DIA0, DIA1 und DIA2 Linien hinzugefügt
- Pan- und Zoom-Funktion für X- und Y-Achse aktiviert
- Datenreihen für DIA0 (Messwert Aktuell), DIA1 und DIA2 (Messwert Durchschnitt) ergänzt
- Tooltip-Formatierungen verbessert
- Dynamische Skalierung der X-Achse basierend auf dem gewählten Zeitraum implementiert
- Styling-Anpassungen für bessere Lesbarkeit der Linien vorgenommen
2025-02-25 15:09:07 +01:00
ISA
8775e167ad Messkurve für Schleifen etwas optimiert 2025-02-25 13:59:29 +01:00
ISA
ba3b4fcf02 Drei Linien werden angezeigt 2025-02-25 13:14:45 +01:00
ISA
c93afc35fd Zoom und Pan funktionieren in beide Richtungen (xy). 2025-02-25 13:10:22 +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
cddb5e7a7f fix: Build-Fehler behoben durch Entfernen unnötiger Prop-Weitergabe
- `isFullScreen` wurde in `ChartSwitcher.tsx` nicht mehr als Prop übergeben
- `LoopMeasurementChart.tsx` und `TDRChart.tsx` nutzen Redux-Store direkt
- Build erfolgreich nach Anpassung
2025-02-25 10:11:02 +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
ISA
47120c4dea Messkurve für Schleife und TDR auf 90% maximieren 2025-02-25 09:40:15 +01:00
ISA
9a9614ffd8 feat: Fullscreen-Toggle für Chart-Modal hinzugefügt
- Neuer Fullscreen-Button oben rechts hinzugefügt
- State `isFullScreen` eingeführt zur Steuerung der Modal-Größe
- Dynamische Anpassung der Modal-Stile für Vollbildmodus
- Smooth-Transition für ein weiches Umschalten zwischen Normal- und Fullscreen-Modus
2025-02-25 07:46:50 +01:00
Ismail Ali
6da44ac1c5 fix: Endlosschleife in useAlarmStatus.ts behoben & Redux-Selektoren optimiert
- useMemo für Redux-Selektoren in Kue705FO.tsx hinzugefügt, um unnötige Re-Renders zu vermeiden.
- State-Update in useAlarmStatus.ts optimiert, sodass setState nur noch aufgerufen wird, wenn sich der Wert wirklich ändert.
- Performance verbessert und maximale Update-Tiefe-Fehler ("Maximum update depth exceeded") behoben.
- Code-Struktur verbessert, um stabilere Redux-Integration zu gewährleisten.
2025-02-24 20:11:47 +01:00
Ismail Ali
47e5088e1b refactor: Code-Struktur verbessert, Handler und Logik modularisiert
- Alle Event-Handler in eigene Dateien ausgelagert:
  - `handleOpenModal.ts`, `handleCloseModal.ts`
  - `handleOpenChartModal.ts`, `handleCloseChartModal.ts`
  - `handleRefreshClick.ts`, `handleSave.ts`
- Neue Hooks zur Verwaltung von Redux-Selektoren und UI-Zuständen erstellt
- `Kue705FO.tsx` gesäubert, jetzt schlanker und übersichtlicher
- Verbesserte Wartbarkeit und Wiederverwendbarkeit der Code-Basis
2025-02-24 19:28:46 +01:00
ISA
bd8e114a54 Modularisierung verbessert: useEffect für createTDRChart ist jetzt in useTDRChart.ts ausgelagert.
 Bessere Wiederverwendbarkeit: Falls du das gleiche Verhalten in einer anderen Komponente brauchst, kannst du einfach useTDRChart importieren.
 Kue705FO.tsx ist schlanker: Alle Hooks sind nun ausgelagert! 🎯

🚀 Jetzt ist dein Code perfekt optimiert! 🎉
2025-02-24 15:19:08 +01:00
ISA
f8e76b52a6 fix: Typfehler in useLoopDisplay und Kue705FO behoben, Build erfolgreich
- useLoopDisplay.ts angepasst: useState nun explizit als `number` deklariert
- Typensicherheit in Kue705FO.tsx verbessert:
  - `schleifenwiderstand` wird immer als `number` konvertiert
  - `setLoopDisplayValue` akzeptiert nur `number`
- Fehlerhafte Typzuweisung in `handleButtonClick` korrigiert
- `npm run build` läuft nun ohne Fehler

 Code nun sauber typisiert, keine TypeScript-Fehler mehr 🚀
2025-02-24 14:52:51 +01:00
ISA
91103b28ec feat: useEffect-Hooks ausgelagert in separate Hook-Dateien
- useEffect-Logik aus Kue705FO.tsx in eigene Hooks ausgelagert:
  - useKueVersion.ts für die KUE-Version
  - useAlarmStatus.ts für den Alarmstatus
  - useIsoDisplay.ts für die Anzeige der Isolationswerte
  - useLoopDisplay.ts für den Schleifenwiderstand
  - useChartPlugin.ts für Chart.js Plugin-Handling
  - useChartData.ts für Redux-Chart-Datenverwaltung
  - useModulName.ts für den Modulnamen mit Setter-Funktion

- Code in Kue705FO.tsx optimiert und modularisiert
- Fehler mit `setCurrentModulName` behoben durch Rückgabe der Setter-Funktion in useModulName.ts
2025-02-24 14:13:53 +01:00
ISA
a51edab6bc fix: Typkonvertierung für Redux-Variablen korrigiert
- `kueCableBreak`, `kueGroundFault`, `kueAlarm1`, `kueAlarm2` und `kueOverflow` in `number[]` umgewandelt
- `.map(Number)` verwendet, um fehlerhafte `string[]`-Werte zu vermeiden
- `?? []` hinzugefügt, um `null` oder `undefined` zu verhindern
- Fehler beim Next.js Build behoben
2025-02-24 12:17:56 +01:00
ISA
cb7346b56b Analoge Eingänge für Laptop Auflösug angepasst 2025-02-24 11:58:33 +01:00
ISA
37e9dcb492 OPC-UA Buttons in littwin-blue 2025-02-24 11:51:30 +01:00
ISA
b5213e334a In Dashboard Netzwerk-Informationen von neue Redux Slice holen systemSettings und opcuaSettings Slices 2025-02-24 11:48:28 +01:00
ISA
62f0305e3a littwin-blue in digitale Ausgänge Schalter 2025-02-24 11:25:59 +01:00
ISA
6be431469c Header SettingsModal Responsive 2025-02-24 11:10:33 +01:00
ISA
35eecfdbae SettingsModal etwas responsive mit tailwindcss 2025-02-24 10:55:20 +01:00
ISA
f544ef3c60 🛠 1️⃣ Was wurde erfolgreich ausgelagert?
✔ cryptoUtils.ts → Enthält generateKeyAndIV und generateToken​cryptoUtils
✔ useAdminAuth.ts → Enthält decryptToken, useEffect für Login-Status und logoutAdmin​useAdminAuth
✔ useSystemSettings.ts → Verwaltet Redux-Daten und setzt formValues​useSystemSettings
✔ handleAdminLogin.ts → Enthält handleAdminLogin, um die Login-Logik auszulagern​handleAdminLogin
✔ handleClearDatabase.ts → Handhabt das Löschen der Datenbank​handleClearDatabase
✔ handleReboot.ts → Handhabt den Reboot des CPL​handleReboot
✔ handleSetDateTime.ts → Setzt Datum und Uhrzeit für das System​handleSetDateTime
✔ handleSubmit.ts → Verarbeitet Änderungen und sendet sie an den Server​handleSubmit
✔ users.ts → Enthält die USERS-Konfiguration für den Admin​users

🚀 Das bedeutet:

SettingsModal.tsx ist jetzt nur noch für die UI zuständig.
Alle Geschäftslogik (State, API-Aufrufe, Funktionen) wurde sauber in separate Dateien ausgelagert.
Der Code ist jetzt wartungsfreundlicher und wiederverwendbarer.
2025-02-24 08:52:12 +01:00
ISA
d901289c8d utils von SettingsModal ausgelagert 2025-02-24 08:34:38 +01:00
ISA
69b825bd30 feat: UI-Komponente responsiver gestaltet und angepasst OPCUA-Komponente
- Containergröße reduziert (`max-w-lg` statt `max-w-3xl`), um besser auf die Seite zu passen.
- Padding (`p-4` → `p-2`) und Schriftgrößen (`text-lg` → `text-base`, `text-sm` für Labels) optimiert.
- Buttons kompakter gemacht (`px-3 py-1` statt `px-4 py-2`), um Platz zu sparen.
- Flex-Layout verbessert (`flex-wrap`, `gap-2`), um die Darstellung auf kleineren Bildschirmen zu optimieren.
2025-02-24 07:16:55 +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
Ismail Ali
b85c8c67e2 feat: systemSettingsSlice hinzugefügt und Header sowie Einstellungen angepasst
- 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.
2025-02-23 09:09:47 +01:00
Ismail Ali
262e8b1527 refactor: last20Messages vollständig aus variablesSlice entfernt
- last20Messages aus variablesSlice entfernt und ausschließlich in dashboardSlice gespeichert
- _app.tsx angepasst: last20Messages wird nicht mehr in setVariables gesetzt
- loadWindowVariables.ts aktualisiert: last20Messages wird nicht mehr in variables gespeichert
- Redux DevTools überprüft, um sicherzustellen, dass last20Messages nicht mehr im falschen Slice erscheint
2025-02-23 07:18:00 +01:00
Ismail Ali
80c9d12c6b refactor: last20Messages in dashboardSlice ausgelagert und Redux-Handling optimiert
- last20Messages aus variablesSlice entfernt und in dashboardSlice verschoben
- Redux wird nun mit window.win_last20Messages aktualisiert
- setInterval hinzugefügt, um späte Ladezeiten von window-Daten abzufangen
- API-Aufruf entfernt, da keine /api/last20Messages existiert
- Redux DevTools überprüft, Daten werden jetzt korrekt geladen und angezeigt
2025-02-22 22:57:55 +01:00
Ismail Ali
f1e30405a2 fix: korrigierter Redux-State für activeMode im ChartSwitcher
- useSelector-Aufruf in ChartSwitcher.tsx angepasst, um den korrekten Redux-Slice (kueChartMode) zu verwenden.
- Fehler behoben: TypeError: Cannot read properties of undefined (reading 'activeMode').
2025-02-22 21:55:34 +01:00
Ismail Ali
9b5a502ab6 tdrChartData und loopMeasurementCurveChartData in einem Redux Slice kabelueberwachung für bessere Struktur 2025-02-22 16:57:40 +01:00
Ismail Ali
c0101b35ab refactor: Umbenennung von 'chartData' in Redux kabelueberwachung Slice zu 'loopMeasurementCurveChartData' für bessere Klarheit
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.
2025-02-22 16:32:40 +01:00
Ismail Ali
44c5ea32b3 tdrData in tdrChartData ändern und die Datei tdrDataSlice.ts in tdrChartDataSlice.ts umbenennen für bessere Übersicht 2025-02-22 14:18:22 +01:00
Ismail Ali
b408bcd95b TDR Chart wie erwartet wird dargestellt 2025-02-22 11:49:31 +01:00
Ismail Ali
9b93771047 TDR Chart Implementierung der Zoom- und Pan-Funktionalität 2025-02-22 11:40:57 +01:00
Ismail Ali
e6bac2d4ba TDR Chart bekommt von Redux Daten, aber die Darstellung ist noch zu optimieren 2025-02-22 10:59:40 +01:00
Ismail Ali
da3fe59817 TDR-Chart findet die dateien, aber zeichnet die Chart noch nicht 2025-02-22 10:02:51 +01:00
ISA
0ea34a9f7b fix: API-URL-Format & dynamische Base-URL für Produktion korrigiert 2025-02-21 15:22:12 +01:00
ISA
4a24cb1518 feat: API-URL für Produktionsumgebung korrigiert und Debug-Logs hinzugefügt
- `getApiUrl` angepasst, um in der Produktionsumgebung die richtige URL  zu verwenden.
- Verbesserte Fehlerbehandlung in `handleFetchData` mit zusätzlichen `console.log`-Ausgaben.
- Setzt `isChartOpen` explizit auf `true`, wenn das Chart geladen wird.
- Dadurch funktioniert das Laden der Daten jetzt auch in der Produktionsumgebung.
2025-02-21 14:33:21 +01:00
ISA
ea2a412593 feat: isChartOpen wird beim Öffnen des Chart-Modals gesetzt
- `setChartOpen(true)` in `handleOpenChartModal` hinzugefügt.
- Redux-Import von `setChartOpen` in `Kue705FO.tsx` sichergestellt.
- Dadurch bleibt `isChartOpen` nicht mehr `false`, wenn das Modal geöffnet wird.
- Status wird nun korrekt aktualisiert, wenn `Messkurve` geklickt wird.
2025-02-21 13:55:39 +01:00
ISA
66e08cf6c3 feat: isChartOpen-Status beim Öffnen des Chart-Modals gesetzt
- Beim Öffnen des Chart-Modals (`ChartSwitcher.tsx`) wird nun `setChartOpen(true)` gesetzt.
- Dadurch bleibt `isChartOpen` nicht mehr fälschlicherweise `false`, wenn das Modal geöffnet wird.
- `useEffect` hinzugefügt, um den Redux-Status beim Öffnen zu aktualisieren.
- `handleClose` setzt weiterhin den Status auf `false`, wenn das Modal geschlossen wird.
2025-02-21 13:45:41 +01:00