- `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.
- `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!
- `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!
- CustomTooltip in `CustomTooltip.tsx` ausgelagert für bessere Code-Struktur
- `LoopMeasurementChart.tsx` angepasst und `CustomTooltip` importiert
- Verbesserung der Wiederverwendbarkeit und Lesbarkeit des Codes
- OPC-UA Zustand wird jetzt als "Server betriebsbereit" oder "Server außer Betrieb" ausgegeben
- Unbekannte Werte werden explizit als "Unbekannt" angezeigt
- Code-Struktur optimiert für bessere Lesbarkeit
- Brush-Start- und Endindex werden jetzt automatisch an die neuen Daten angepasst.
- Verhindert, dass der Brush außerhalb des sichtbaren Bereichs liegt.
- `useEffect` in `LoopMeasurementChart.tsx` sorgt für eine dynamische Anpassung nach Mode-Wechsel.
- 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.
- `console.log`-Ausgaben für `vonDatum`, `bisDatum` und `formatierteDaten` hinzugefügt
- Fehleranalyse für `startIndex` und `endIndex` in `LoopMeasurementChart.tsx`
- Falls `startIndex` oder `endIndex` nicht gefunden wird, wird die gesamte Datenreihe geloggt
- Vorbereitung für Fallback-Lösung, falls Datum nicht exakt gefunden wird
- 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.
- 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!"
- 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!"
- `isFullScreen` wurde in `ChartSwitcher.tsx` nicht mehr als Prop übergeben
- `LoopMeasurementChart.tsx` und `TDRChart.tsx` nutzen Redux-Store direkt
- Build erfolgreich nach Anpassung
- 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
- 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 🚀
- `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
✔ cryptoUtils.ts → Enthält generateKeyAndIV und generateTokencryptoUtils
✔ useAdminAuth.ts → Enthält decryptToken, useEffect für Login-Status und logoutAdminuseAdminAuth
✔ useSystemSettings.ts → Verwaltet Redux-Daten und setzt formValuesuseSystemSettings
✔ handleAdminLogin.ts → Enthält handleAdminLogin, um die Login-Logik auszulagernhandleAdminLogin
✔ handleClearDatabase.ts → Handhabt das Löschen der DatenbankhandleClearDatabase
✔ handleReboot.ts → Handhabt den Reboot des CPLhandleReboot
✔ handleSetDateTime.ts → Setzt Datum und Uhrzeit für das SystemhandleSetDateTime
✔ handleSubmit.ts → Verarbeitet Änderungen und sendet sie an den ServerhandleSubmit
✔ users.ts → Enthält die USERS-Konfiguration für den Adminusers
🚀 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.
- 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.
- 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
- 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! 🚀🔥
- 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! 🚀
- 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.
- 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