Vorteile:
Statische Typisierung: Verhindert viele Fehler zur Entwicklungszeit.
Bessere IDE-Unterstützung: IntelliSense, Autovervollständigung und Fehlerhinweise.
Klarere Codebasis: Explizite Typen verbessern die Lesbarkeit und Wartbarkeit.
Erkennung von Bugs: Findet Fehler bereits vor der Ausführung.
Unterstützt moderne Features: Bietet frühzeitig neue JavaScript-Funktionen.
Große Projekte: Bessere Skalierbarkeit und Teamarbeit.
Erweiterbarkeit: Ermöglicht eigene Typen und Interfaces.
Kompatibilität: Läuft als transpiliertes JavaScript in jedem Browser.
Bessere Refaktorierung: Sichereres Umstrukturieren von Code.
Community und Ökosystem: Viele Tools und Bibliotheken bieten Typunterstützung.
- Hinzugefügt: Flexibles Layout der Tabelle mit `w-full` und `h-full`, um sich an den verfügbaren Platz anzupassen.
- Verbesserungen: Overflow-Handling für den Tabelleninhalt mit `overflow-auto` und flexibler Größenanpassung durch `flex-grow`.
- Refaktorierung: Layout- und Styling-Optimierungen für eine bessere Darstellung und Benutzerfreundlichkeit.
- Layout angepasst, um Scrollbalken und Leerbereich nach dem Footer zu vermeiden.
- `h-screen` und `overflow-hidden` für die Hauptcontainer verwendet.
- Sicherstellung, dass die Seite genau die Bildschirmhöhe ausfüllt.
- Cleanup in CSS und JSX zur Verbesserung der Benutzeroberfläche.
- Header und Footer mit festen Höhen (13vh und 8vh) versehen.
- Inhaltsbereich dynamisch skaliert mit calc(100vh - Header - Footer).
- Navigation für volle Höhe des Inhalts angepasst.
- Alle Elemente ohne Scrollen auf Laptop-Auflösung sichtbar gemacht.
- Separate Modale für digitale Eingänge und Ausgänge implementiert.
- Modale enthalten spezifische Details wie Status, Beschreibung und Invertierung (für Eingänge) sowie Schaltzustand und Bezeichnung (für Ausgänge).
- Modale werden über ein Zahnrad-Symbol geöffnet und sind zentriert dargestellt.
- Funktionen zum Öffnen und Schließen der Modale (`openInputModal`, `closeInputModal`, `openOutputModal`, `closeOutputModal`) hinzugefügt.
- State-Management für ausgewählte Einträge (`selectedInput`, `selectedOutput`) implementiert.
- Responsives Design und einheitliches Styling für Modale mit z-index und Overlays sichergestellt.
- Added a new breakpoint "laptop" with a width of 1348px to the Tailwind configuration.
- This breakpoint accommodates the dimensions of 1348px width for responsive designs.
- 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.
- 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.
- 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.
Navigiere zu den System-Einstellungen.
Klicke auf den Button "Admin anmelden".
Verwende die folgenden Anmeldedaten:
Benutzername: admin
Passwort: Littwin
- 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.
- 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.
- Slot-Formatierung angepasst, um führende Nullen aus dem Slot-Parameter zu entfernen, falls der Slot kleiner als 10 ist.
- Verwendet `parseInt` zur Bereinigung des Slot-Formats vor dem Senden der Schleifenmessungsanforderung.
- 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.
- 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.
- 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.
- Bedingte Weiterleitung in login.js hinzugefügt, um je nach Umgebung auf unterschiedliche Seiten zu leiten.
- In der Entwicklungsumgebung erfolgt die Weiterleitung zu "/kabelueberwachung".
- In der Produktionsumgebung erfolgt die Weiterleitung zu "/kabelueberwachung.html".
- Stellt sicher, dass die richtige Seite basierend auf der Umgebung geladen wird.