Commit Graph

86 Commits

Author SHA1 Message Date
Ismail Ali
4f809877ea feat: Projekt von JavaScript zu TypeScript migriert 2025-01-25 00:20:19 +01:00
ISA
53c9870034 Merge branch 'feature/session-storage' into develop 2025-01-20 12:20:32 +01:00
ISA
ed80aa38a8 fix: Echtzeit-Aktualisierung des Admin-Status implementiert
- Intervall-basierte Überprüfung von `localStorage` hinzugefügt, um Änderungen am Admin-Status (`isAdminLoggedIn`) sofort zu synchronisieren.
- Zustand `isAdminLoggedIn` wird nun direkt nach Login/Logout aktualisiert.
- Weiterleitung zu `/offline.html` nach Logout integriert.
- Problem behoben, dass "Admin-Modus aktiv" erst nach einem Neuladen angezeigt wurde.
2024-11-18 20:43:43 +01:00
ISA
15584e12fb Admi-Modus noch nicht fertig 2024-11-18 13:20:46 +01:00
ISA
ade87db2cf feat: Entfernen der Redux-Abhängigkeit für Admin-Login in der Header-Komponente
- Redux-State durch lokalen useState für `isAdminLoggedIn` ersetzt.
- Token-Validierung über sessionStorage mit useEffect hinzugefügt.
- Alle Redux-Selectoren entfernt und unnötige Importe bereinigt.
- Verbesserte Fehlerbehandlung bei der Token-Verarbeitung, um Abstürze zu vermeiden.
- Logout-Funktionalität vereinfacht, indem sessionStorage direkt geleert wird.
2024-11-18 07:58:55 +01:00
ISA
92d1310bca feat: Token in SessionStorage gespeichert und Passwort gehasht
- Admin-Token wird nun in SessionStorage anstelle von LocalStorage gespeichert.
- Passwort für Admin-Benutzer ist jetzt mit bcrypt gehasht.
- Verbesserte Sicherheit durch die Verwendung von SessionStorage (Daten werden beim Schließen des Tabs gelöscht).
- Anpassung von Funktionen zur Token-Verwaltung für SessionStorage.
2024-11-17 13:46:09 +01:00
ISA
5fbf14f3ae Webserverversion: 1.0.5 2024-11-15 13:07:53 +01:00
ISA
ffc5b56b37 feat: Admin-Login, Token-Handling und Passwort-Hashing optimiert
- Passwort-Hashing und Salt-Erzeugung mit bcrypt implementiert, um sensible Daten wie Passwörter sicher zu speichern.
- Token-Generierung und -Validierung eingeführt, um den Admin-Status zu überprüfen und temporäre Zugriffsrechte zu verwalten.
- Benutzername-Vergleich case-insensitive gestaltet, um Benutzerfreundlichkeit zu verbessern.
- Token wird in localStorage gespeichert und die Ablaufzeit überprüft, um Sicherheit und konsistente Sitzungen zu gewährleisten.
- Fehlerbehebungen und Code-Refactor durchgeführt, um Lesbarkeit und Wartbarkeit zu verbessern.

**Warum:**
- Passwort-Hashing und Salt schützen Passwörter vor direkten Angriffen (z. B. Brute-Force oder Datenlecks).
- Token-Handling ermöglicht eine sichere und flexible Verwaltung von Sitzungsinformationen.
- Verbesserungen erhöhen die Sicherheit und Benutzerfreundlichkeit des Admin-Bereichs.
2024-11-15 11:48:52 +01:00
ISA
f619d7b796 Error: decodeToken is not defined in Header.jsx 2024-11-15 11:16:02 +01:00
ISA
140444d046 feat: Toggle "Admin anmelden" to "Admin abmelden" based on admin login status
- Implemented dynamic button label in SettingsModal to display "Admin anmelden" or "Admin abmelden" based on Redux state `isAdminLoggedIn`.
- Added `handleAdminLogout` function to clear token from localStorage and update Redux state when admin logs out.
- Refactored button click handling to toggle login/logout functionality seamlessly.
2024-11-14 15:22:38 +01:00
ISA
885cb19e9c feat: Redux zur Verwaltung des Admin-Status hinzugefügt
- Neuen Redux-Slice 'authSlice' erstellt, um den Admin-Login-Status zu verwalten.
- Token-Verwaltung im SettingsModal angepasst, um Redux-Status zu aktualisieren.
- Admin-Warnhinweis im Header zeigt jetzt den Redux-Status an und aktualisiert sich automatisch.
- Abmeldefunktion verbessert, um Token aus dem Redux-Store zu entfernen und Seite zu aktualisieren.
2024-11-14 14:29:47 +01:00
ISA
c0ffbbcf38 feat: JWT-Authentifizierung in SettingModal implementiert und Modal-Stabilität verbessert
- JWT-Token-Erstellung und -Speicherung für sichere Admin-Authentifizierung in SettingModal hinzugefügt.
- Stabilitätsprobleme des Modals behoben.
- Funktionalität des Modals und des Tokens überprüft, um eine reibungslose Benutzererfahrung sicherzustellen.
2024-11-14 13:48:04 +01:00
ISA
172134a16f feat: Hinzufügen eines 30-Sekunden-Fortschrittsbalkens für CPL-Neustart
- Fortschrittsbalken integriert, der den Benutzer über den laufenden Neustartvorgang informiert.
- CSS-basierten Fortschrittsbalken erstellt, der sich schrittweise über 30 Sekunden füllt.
- Aktualisierung des Wartebildschirms mit der Nachricht "Bitte warten, CPL wird neu gestartet...".
- Optimierung der Funktion zur korrekten Darstellung und Animation des Fortschrittsbalkens.
2024-11-14 09:32:56 +01:00
ISA
81076559a6 fix: Initial-Bezeichnung für KÜ "---" entfernt 2024-11-14 07:14:26 +01:00
ISA
8412d0b9c2 feat: JWT-basierte Token-Generierung und -Validierung für rollenbasierte UI-Zugriffe hinzugefügt
- `generateToken`-Funktion implementiert, um Tokens mit Benutzerrollen zu erstellen
- `decodeToken` in `KueModal` hinzugefügt, um das Token zu dekodieren und den "Firmware Update"-Button für Admin-Rolle bedingt anzuzeigen
- Fehlerbehandlung für ungültige Tokens in localStorage verbessert
- Sicherstellung der Token-Dekodierung für Admin-Zugriffskontrolle in Entwicklungs- und Produktionsumgebung
2024-11-13 11:55:48 +01:00
ISA
dec20099f8 feat: dynamische Weiterleitung zur neuen IP-Adresse nach CPL-Neustart implementiert
- handleSubmit aktualisiert, um geänderte IP-Adresse an handleReboot zu übergeben
- handleReboot angepasst, um nach Neustart dynamisch zur neuen IP-Adresse weiterzuleiten
- Weiterleitung abhängig von Umgebung: in Produktion zu "/dashboard.html" und in Entwicklung zu "/dashboard"
- 33 Sekunden Wartezeit hinzugefügt, um CPL-Verfügbarkeit nach Neustart sicherzustellen
2024-11-12 14:13:37 +01:00
ISA
12ada92755 feat: bedingte Weiterleitung nach 35 Sekunden CPL-Neustart basierend auf der Umgebung implementiert
- Zeigt Warte-Seite für 5 Sekunden an, bevor zur Dashboard-Seite weitergeleitet wird
- Weiterleitung in der Produktion zu "/dashboard.html" und in der Entwicklung zu "/dashboard"
- handleReboot angepasst, um nach 35 Sekunden CPL-Neustart die Verfügbarkeit sicherzustellen und Weiterleitung basierend auf NODE_ENV zu steuern
2024-11-12 13:46:20 +01:00
ISA
c9742fd0d9 fix: handleSubmit für SettimgsModal 2024-11-12 09:57:37 +01:00
ISA
a8e2763d3e Merge branch 'kue-modal-gesamt' into develop test sds 2024-11-11 14:22:55 +01:00
ISA
ee24ab75e5 feat: Neustart erforderlich für Änderungen an Netzwerkeinstellungen oder CPL-Namen in Systemeinstellungen Modal 2024-11-11 12:18:54 +01:00
ISA
7a4d4f7416 Fehler ignorieren weil die Befehle werden ganz normal ausgeführt 2024-11-11 07:29:24 +01:00
ISA
21c68a9832 import Funktionen ohne geschweifte Klammern ({}) 2024-11-11 06:53:52 +01:00
ISA
589c8a0e9e feat: Modularize KueModal component by extracting handler functions
- Moved `handleSave`, `handleChange`, `handleDisplayEinschalten`, `handleSetDateTime`, `handleClearDatabase`, and `handleReboot` to separate handler files for better modularity and code organization.
- Updated imports in `KueModal.jsx` and `SettingsModal.jsx` to use new handler files.
- Improved code readability and maintainability by organizing functions into dedicated handler modules.
2024-11-09 19:29:33 +01:00
ISA
c4e89d690c feat: handleSave Funktion ausgelagert und KueModal strukturiert
- handleSave in separate Datei handle-save.js ausgelagert, um KueModal-Komponente modularer und wartbarer zu gestalten
- handleSaveWrapper in KueModal hinzugefügt, um Parameter an handleSave zu übergeben
- KueModal umgestaltet, um Funktionen und Redux-Dispatch klarer zu organisieren
- Konsistente Verwendung von Parametern und State-Updates für sauberen Codefluss
2024-11-09 19:11:55 +01:00
ISA
0f938953db feat: Modularisierung und Optimierung der SettingsModal-Komponente
- Handler-Funktionen (handleClearDatabase, handleReboot, handleSetDateTime, handleSubmit) in separate Dateien ausgelagert, um die Übersichtlichkeit zu verbessern und Wartbarkeit zu erleichtern
- `use client`-Anweisung am Anfang von SettingsModal.jsx hinzugefügt, um clientseitige Funktionen wie `window`-basierte Aufrufe korrekt zu verwenden
- Redux- und lokale State-Werte optimiert und an handleSubmit als Parameter übergeben
- Konsolen-Logs für URL-Bildung und Debugging-Zwecke in den Handlern hinzugefügt
2024-11-09 16:23:56 +01:00
ISA
44e8323e3c handleReboot, handleSetDateTime und handleClearDatabase in separate Datei einfügen 2024-11-09 15:26:05 +01:00
ISA
675843b3b3 handleSubmit vollständige URL mit Host und dem aktuellen Pfad (pathname) 2024-11-09 12:23:12 +01:00
ISA
c329ab90fc handleClearDatabase anpassung mit volle URL-Adresse 2024-11-09 12:20:09 +01:00
ISA
7ca9656e60 handleReboot fetch vollständigen Host und dem aktuellen Pfad in SettingsModal.jsx 2024-11-09 12:07:46 +01:00
ISA
0acf3602b1 Aktualisiere systemUhr, wenn sich datetime_Redux ändert 2024-11-08 15:13:48 +01:00
ISA
de1c94a6a2 fix: URLs für Datum und Uhrzeit angepasst bei Systemzeit übernehmen Button, führende Nullen entfernt
- Die Funktion `handleSetDateTime` wurde angepasst, um das URL-Format den Anforderungen entsprechend zu gestalten.
- Monat, Tag, Stunden, Minuten und Sekunden werden jetzt ohne führende Nullen dargestellt, um eine konsistentere Darstellung zu gewährleisten.
- Die URL wird nun korrekt formatiert, z.B. `https://10.10.0.118/CPL?/dashboard.html&CLK00=24-11-8&CLK01=14-3-5` statt `https://10.10.0.118/CPL?/dashboard.html&CLK00=24-11-08&CLK01=14-03-05`.
- Implementierung mit `Number()` zur Umwandlung und Entfernung der führenden Nullen.

Diese Änderung verbessert die Lesbarkeit und die Kompatibilität des URL-Formats mit dem Zielsystem.
2024-11-08 14:56:20 +01:00
ISA
aa9ff6ea24 Systemzeit debug 2024-11-08 13:58:33 +01:00
ISA
000cd74ea1 Datenbank leeren 2024-11-08 11:49:42 +01:00
ISA
2d0b1f6693 kueDetail link umbenannt 2024-11-07 14:35:07 +01:00
ISA
662f74011f /CPL?/CPL/Service/kueDetail.HTM in /CPL?/kabelueberwachung.html umbenannt 2024-11-07 14:29:26 +01:00
ISA
c49b16dd83 MAC Adresse 2 entfernen, weil ist nicht relavant zu sehen 2024-11-07 10:10:59 +01:00
ISA
6890e35f53 feat: Dynamische Anpassung der Menüpfade für Produktionsumgebung
- `.html`-Endungen werden nun automatisch für Menüeinträge hinzugefügt, wenn die App in der Produktionsumgebung läuft.
- Verwendung von `process.env.NODE_ENV`, um die Umgebung zu prüfen und die Pfade entsprechend anzupassen.
- Verbesserung der Kompatibilität mit statischen Dateien nach dem Build.
2024-11-07 09:56:43 +01:00
ISA
e21b960b38 Systemeinstellung Modal bei Übernehmen button geht immer zu CP?{currentPath} URL 2024-11-07 08:28:16 +01:00
ISA
a3bc86258c datetime zu cplInternalTimestamp für bessere Klarheit 2024-11-07 07:40:45 +01:00
ISA
35afba0ebb KUEdetail.HTML von settingsModal.jsx entfernt und durch index.html ersetzt 2024-11-07 07:25:38 +01:00
ISA
442b553aa7 feat: Benachrichtigung hinzugefügt, wenn Sitzung abgelaufen ist oder Verbindung unterbrochen wurde
- Zustand `sessionExpired` im `_app.js` hinzugefügt, um den Ablauf der Sitzung oder Verbindungsprobleme zu überwachen.
- Intervall in `loadWindowVariables` angepasst, um die Verbindung alle 10 Sekunden zu überprüfen.
- Warnmeldung angezeigt, wenn die Sitzung abgelaufen ist oder die Verbindung unterbrochen wurde.
- Benutzer wird informiert, wenn eine erneute Anmeldung oder ein Neuladen der Seite erforderlich ist.
2024-11-05 12:20:08 +01:00
ISA
7d2c6ef55e fix: Speichern der geänderten Werte im Modal verbessert
- Beim Speichern werden die aktuellen Werte als neue Originalwerte gesetzt, um sicherzustellen, dass die geänderten Werte beim erneuten Öffnen des Modals angezeigt werden.
- Anpassung im `handleSave`-Handler vorgenommen, um die Originalwerte nach erfolgreichem Speichern zu aktualisieren.
- Verbesserung der Benutzerfreundlichkeit durch Vermeidung des Zurücksetzens der geänderten Werte.
2024-11-05 10:48:41 +01:00
ISA
346b602b60 fix: KueModal.jsx
Verhindern des automatischen Zurücksetzens von Eingabefeldern im Modal

- Werte aus Redux werden nur noch beim erstmaligen Öffnen des Modals in die State-Variablen übernommen.
- Änderungen in den Eingabefeldern bleiben bestehen, ohne durch automatische Updates überschrieben zu werden.
- Anpassung der useEffect-Abhängigkeiten, um eine stabilere Bearbeitung zu ermöglichen.
2024-11-05 10:25:06 +01:00
ISA
386595ae9b feat: Aktualisierung der Modal-Eingabewerte angepasst, um automatisches Zurücksetzen zu verhindern
- Die Werte aus Redux werden nun nur beim Öffnen des Modals in die lokalen State-Variablen übernommen.
- Während der Bearbeitung bleibt der Zustand der Eingabefelder stabil, ohne alle 10 Sekunden zurückgesetzt zu werden.
- Dies ermöglicht eine bequemere Bearbeitung, ohne dass Änderungen automatisch überschrieben werden.
2024-11-05 10:12:24 +01:00
ISA
157267b799 KueModal.jsx lesen von Redux store 2024-11-05 09:33:23 +01:00
ISA
228d8d7a1b Systemzeit übernehmen 2024-11-04 15:14:51 +01:00
ISA
93bc80a5e6 Systemeinstellung Redux 2024-11-04 15:06:26 +01:00
ISA
8a283b535d Navigation von Module Status von dashboard.js zu Kabelüberwachungs Racks 1-4 2024-11-04 13:02:41 +01:00
ISA
5b34428f0a settingsModal von redux lesen 2024-11-01 08:22:21 +01:00
ISA
babef0e86f feat: IndexedDB-Daten in SettingsModal integriert und initialisiert
- Datenwerte wie deviceName, macAddress, IP usw. aus IndexedDB abgerufen und in den State geladen, um dynamische Aktualisierungen zu ermöglichen.
- Direktimplementierung von getFromIndexedDB im Component Code, um Produktionsimport-Probleme zu umgehen.
- Originalwerte beim ersten Laden gespeichert, um spätere Änderungen zu überprüfen und zu übertragen.
- Verbesserte Benutzerführung mit Zustandskontrollen und gezieltem Datenabruf bei Komponenten-Mount.
2024-10-30 10:41:14 +01:00