🎉 Improved documentation and logs structure in Backend 🖥️📊

This commit is contained in:
Till Tomczak 2025-06-04 01:00:16 +02:00
parent dc007a9172
commit 6b473afe43
31 changed files with 2446 additions and 66 deletions

View File

@ -10,7 +10,8 @@
"Bash(npm run build:css:*)",
"Bash(python:*)",
"Bash(cp:*)",
"Bash(rm:*)"
"Bash(rm:*)",
"Bash(terser:*)"
],
"deny": []
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -141,3 +141,7 @@
2025-06-04 00:35:56 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-04 00:36:23 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-04 00:36:31 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-04 00:49:47 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-04 00:50:42 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-04 00:56:10 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert
2025-06-04 00:56:22 - [analytics] analytics - [INFO] INFO - 📈 Analytics Engine initialisiert

View File

@ -3708,3 +3708,139 @@ WHERE jobs.status = ?) AS anon_1]
2025-06-04 00:36:32 - [app] app - [INFO] INFO - Job-Scheduler gestartet
2025-06-04 00:36:32 - [app] app - [INFO] INFO - 🔧 Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
2025-06-04 00:36:32 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
2025-06-04 00:49:44 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-04 00:49:46 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-04 00:49:48 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-04 00:49:48 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
2025-06-04 00:49:48 - [app] app - [INFO] INFO - 📋 Standard-Konfiguration verwendet
2025-06-04 00:49:48 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
2025-06-04 00:49:48 - [app] app - [INFO] INFO - ✅ Error-Recovery-Monitoring gestartet
2025-06-04 00:49:48 - [app] app - [INFO] INFO - ✅ System-Control-Manager initialisiert
2025-06-04 00:49:48 - [app] app - [WARNING] WARNING - ⚠️ Kiosk-Service nicht gefunden - Kiosk-Funktionen eventuell eingeschränkt
2025-06-04 00:49:48 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-04 00:49:48 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
2025-06-04 00:49:48 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-04 00:49:48 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
2025-06-04 00:49:48 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
2025-06-04 00:49:48 - [app] app - [INFO] INFO - 📋 Standard-Konfiguration aktiv (keine Optimierungen)
2025-06-04 00:49:48 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
2025-06-04 00:49:48 - [app] app - [INFO] INFO - Keine Drucker zur Initialisierung gefunden
2025-06-04 00:49:48 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
2025-06-04 00:49:48 - [app] app - [INFO] INFO - Job-Scheduler gestartet
2025-06-04 00:49:48 - [app] app - [INFO] INFO - 🔧 Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
2025-06-04 00:49:48 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
2025-06-04 00:50:42 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-04 00:50:43 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-04 00:50:43 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
2025-06-04 00:50:43 - [app] app - [INFO] INFO - 📋 Standard-Konfiguration verwendet
2025-06-04 00:50:43 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
2025-06-04 00:50:43 - [app] app - [INFO] INFO - ✅ Error-Recovery-Monitoring gestartet
2025-06-04 00:50:43 - [app] app - [INFO] INFO - ✅ System-Control-Manager initialisiert
2025-06-04 00:50:43 - [app] app - [WARNING] WARNING - ⚠️ Kiosk-Service nicht gefunden - Kiosk-Funktionen eventuell eingeschränkt
2025-06-04 00:50:43 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-04 00:50:43 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
2025-06-04 00:50:43 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-04 00:50:43 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
2025-06-04 00:50:43 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
2025-06-04 00:50:43 - [app] app - [INFO] INFO - 📋 Standard-Konfiguration aktiv (keine Optimierungen)
2025-06-04 00:50:43 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
2025-06-04 00:50:43 - [app] app - [INFO] INFO - Keine Drucker zur Initialisierung gefunden
2025-06-04 00:50:43 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
2025-06-04 00:50:43 - [app] app - [INFO] INFO - Job-Scheduler gestartet
2025-06-04 00:50:43 - [app] app - [INFO] INFO - 🔧 Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
2025-06-04 00:50:43 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
2025-06-04 00:52:36 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_plug_schedules: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:52:36 - [app] app - [INFO] INFO - Admin Administrator (ID: 1) öffnet Steckdosenschaltzeiten
2025-06-04 00:52:36 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: name 'func' is not defined
2025-06-04 00:52:36 - [app] app - [ERROR] ERROR - Fehler beim Erstellen der Steckdosen-Statistiken: name 'func' is not defined
2025-06-04 00:52:37 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_plug_schedules_calendar: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:52:37 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_plug_schedules_statistics: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:52:37 - [app] app - [ERROR] ERROR - Datenbank-Transaktion fehlgeschlagen: name 'func' is not defined
2025-06-04 00:52:37 - [app] app - [ERROR] ERROR - Fehler beim Erstellen der Steckdosen-Statistiken: name 'func' is not defined
2025-06-04 00:53:22 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:53:23 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:53:26 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_status_extended: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:53:29 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_advanced_settings: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:53:29 - [app] app - [INFO] INFO - 🔧 Erweiterte Einstellungen aufgerufen von Admin admin
2025-06-04 00:53:41 - [app] app - [INFO] INFO - Optimierungs-Einstellungen für Benutzer 1 aktualisiert
2025-06-04 00:53:55 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:53:55 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:03 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:03 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:03 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_logs: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:04 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_logs: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:04 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_logs: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:05 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_guest_requests: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:05 - [app] app - [INFO] INFO - Admin-Gastanfragen Seite aufgerufen von User 1
2025-06-04 00:54:05 - [app] app - [INFO] INFO - Admin-Check für Funktion get_admin_guest_requests: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:05 - [app] app - [INFO] INFO - API-Aufruf /api/admin/guest-requests von User 1
2025-06-04 00:54:05 - [app] app - [INFO] INFO - Admin-Gastaufträge geladen: 1 von 1 (Status: all)
2025-06-04 00:54:17 - [app] app - [INFO] INFO - Admin-Check für Funktion reject_guest_request: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:17 - [app] app - [INFO] INFO - Ablehnungs-E-Mail würde an till.tmk@gmail.com gesendet (Grund: 2)
2025-06-04 00:54:17 - [app] app - [INFO] INFO - Gastauftrag 1 von Admin 1 abgelehnt (Grund: 2)
2025-06-04 00:54:17 - [app] app - [INFO] INFO - Admin-Check für Funktion get_admin_guest_requests: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:17 - [app] app - [INFO] INFO - API-Aufruf /api/admin/guest-requests von User 1
2025-06-04 00:54:17 - [app] app - [INFO] INFO - Admin-Gastaufträge geladen: 1 von 1 (Status: all)
2025-06-04 00:54:35 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:35 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:54:37 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_status_extended: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:55:05 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_error_recovery_status: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:55:05 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:55:35 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:55:55 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_error_recovery_status: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:56:05 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:56:09 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-04 00:56:10 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-04 00:56:10 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
2025-06-04 00:56:10 - [app] app - [INFO] INFO - 📋 Standard-Konfiguration verwendet
2025-06-04 00:56:11 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
2025-06-04 00:56:11 - [app] app - [INFO] INFO - ✅ Error-Recovery-Monitoring gestartet
2025-06-04 00:56:11 - [app] app - [INFO] INFO - ✅ System-Control-Manager initialisiert
2025-06-04 00:56:11 - [app] app - [WARNING] WARNING - ⚠️ Kiosk-Service nicht gefunden - Kiosk-Funktionen eventuell eingeschränkt
2025-06-04 00:56:11 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-04 00:56:11 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
2025-06-04 00:56:11 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-04 00:56:22 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend\database\myp.db
2025-06-04 00:56:23 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O)
2025-06-04 00:56:23 - [app] app - [INFO] INFO - ✅ Timeout Force-Quit Manager geladen
2025-06-04 00:56:23 - [app] app - [INFO] INFO - 📋 Standard-Konfiguration verwendet
2025-06-04 00:56:23 - [app] app - [INFO] INFO - ✅ Zentraler Shutdown-Manager initialisiert
2025-06-04 00:56:23 - [app] app - [INFO] INFO - ✅ Error-Recovery-Monitoring gestartet
2025-06-04 00:56:23 - [app] app - [INFO] INFO - ✅ System-Control-Manager initialisiert
2025-06-04 00:56:23 - [app] app - [WARNING] WARNING - ⚠️ Kiosk-Service nicht gefunden - Kiosk-Funktionen eventuell eingeschränkt
2025-06-04 00:56:23 - [app] app - [INFO] INFO - 🔄 Starte Datenbank-Setup und Migrationen...
2025-06-04 00:56:23 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert
2025-06-04 00:56:23 - [app] app - [INFO] INFO - ✅ JobOrder-Tabelle bereits vorhanden
2025-06-04 00:56:24 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt.
2025-06-04 00:56:24 - [app] app - [INFO] INFO - ✅ Datenbank-Setup und Migrationen erfolgreich abgeschlossen
2025-06-04 00:56:24 - [app] app - [INFO] INFO - 📋 Standard-Konfiguration aktiv (keine Optimierungen)
2025-06-04 00:56:24 - [app] app - [INFO] INFO - 🖨️ Starte automatische Steckdosen-Initialisierung...
2025-06-04 00:56:24 - [app] app - [INFO] INFO - Keine Drucker zur Initialisierung gefunden
2025-06-04 00:56:24 - [app] app - [INFO] INFO - 🔄 Debug-Modus: Queue Manager deaktiviert für Entwicklung
2025-06-04 00:56:24 - [app] app - [INFO] INFO - Job-Scheduler gestartet
2025-06-04 00:56:24 - [app] app - [INFO] INFO - 🔧 Starte Debug-Server auf 0.0.0.0:5000 (HTTP)
2025-06-04 00:56:24 - [app] app - [INFO] INFO - Windows-Debug-Modus: Auto-Reload deaktiviert
2025-06-04 00:56:30 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:56:30 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:56:31 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:56:42 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:56:42 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:57:12 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_error_recovery_status: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:57:12 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:57:16 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:57:16 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:58:07 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-04 00:58:07 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-04 00:58:07 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}
2025-06-04 00:58:07 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 16, 'pending_jobs': None, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}
2025-06-04 00:59:26 - [app] app - [INFO] INFO - Dashboard-Refresh angefordert von User 1
2025-06-04 00:59:26 - [app] app - [INFO] INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 16, 'pending_jobs': 0, 'success_rate': 0.0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}
2025-06-04 00:59:47 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:59:48 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:59:54 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_guest_requests: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:59:54 - [app] app - [INFO] INFO - Admin-Gastanfragen Seite aufgerufen von User 1
2025-06-04 00:59:54 - [app] app - [INFO] INFO - Admin-Check für Funktion get_admin_guest_requests: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 00:59:54 - [app] app - [INFO] INFO - API-Aufruf /api/admin/guest-requests von User 1
2025-06-04 00:59:54 - [app] app - [INFO] INFO - Admin-Gastaufträge geladen: 1 von 1 (Status: all)
2025-06-04 01:00:01 - [app] app - [INFO] INFO - Admin-Check für Funktion admin_page: User authenticated: True, User ID: 1, Is Admin: True
2025-06-04 01:00:01 - [app] app - [INFO] INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True

View File

@ -1268,3 +1268,9 @@
2025-06-03 23:48:49 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
2025-06-03 23:48:49 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet
2025-06-03 23:48:51 - [auth] auth - [INFO] INFO - 🔐 Neue Session erstellt für Benutzer admin@mercedes-benz.com von IP 127.0.0.1
2025-06-04 00:50:52 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)
2025-06-04 00:50:53 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet
2025-06-04 00:50:54 - [auth] auth - [INFO] INFO - 🕒 Automatische Abmeldung: Benutzer admin@mercedes-benz.com war 73.2 Minuten inaktiv (Limit: 60min)
2025-06-04 00:52:08 - [auth] auth - [WARNING] WARNING - JSON-Parsing fehlgeschlagen: 400 Bad Request: Failed to decode JSON object: Expecting value: line 1 column 1 (char 0)
2025-06-04 00:52:09 - [auth] auth - [INFO] INFO - Benutzer admin@mercedes-benz.com hat sich erfolgreich angemeldet
2025-06-04 00:52:10 - [auth] auth - [INFO] INFO - 🔐 Neue Session erstellt für Benutzer admin@mercedes-benz.com von IP 127.0.0.1

View File

@ -146,3 +146,7 @@
2025-06-04 00:35:56 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-04 00:36:23 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-04 00:36:31 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-04 00:49:46 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-04 00:50:42 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-04 00:56:09 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)
2025-06-04 00:56:22 - [backup] backup - [INFO] INFO - BackupManager initialisiert (minimal implementation)

View File

@ -51,3 +51,7 @@
2025-06-03 23:37:22 - [calendar] calendar - [INFO] INFO - 📊 Verfügbarkeitsabfrage: 0/0 Drucker verfügbar
2025-06-03 23:37:22 - [calendar] calendar - [INFO] INFO - 📊 Verfügbarkeitsabfrage: 0/0 Drucker verfügbar
2025-06-03 23:37:35 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
2025-06-04 00:37:45 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
2025-06-04 00:49:34 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
2025-06-04 00:49:54 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
2025-06-04 00:49:56 - [calendar] calendar - [INFO] INFO - 📅 Kalender-Events abgerufen: 16 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00

View File

@ -598,3 +598,19 @@
2025-06-04 00:36:32 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 00:36:32 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-04 00:36:32 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-04 00:49:48 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 00:49:48 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 00:49:48 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-04 00:49:48 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-04 00:50:43 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 00:50:43 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 00:50:43 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-04 00:50:43 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-04 00:56:10 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 00:56:10 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 00:56:10 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-04 00:56:10 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)
2025-06-04 00:56:23 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 00:56:23 - [dashboard] dashboard - [INFO] INFO - Dashboard-Background-Worker gestartet
2025-06-04 00:56:23 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server wird mit threading initialisiert (eventlet-Fallback)
2025-06-04 00:56:23 - [dashboard] dashboard - [INFO] INFO - Dashboard WebSocket-Server initialisiert (async_mode: threading)

View File

@ -142,3 +142,7 @@
2025-06-04 00:35:56 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-04 00:36:23 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-04 00:36:31 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-04 00:49:46 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-04 00:50:42 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-04 00:56:09 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet
2025-06-04 00:56:22 - [database] database - [INFO] INFO - Datenbank-Wartungs-Scheduler gestartet

View File

@ -82,3 +82,15 @@
2025-06-04 00:36:32 - [database_cleanup] database_cleanup - [INFO] INFO - 🧹 Starte umfassendes Datenbank-Cleanup...
2025-06-04 00:36:32 - [database_cleanup] database_cleanup - [INFO] INFO - 📝 Schritt 1: Schließe alle Datenbankverbindungen...
2025-06-04 00:36:32 - [database_cleanup] database_cleanup - [INFO] INFO - 🔄 Schließe alle aktiven Datenbankverbindungen...
2025-06-04 00:49:48 - [database_cleanup] database_cleanup - [INFO] INFO - 🧹 Starte umfassendes Datenbank-Cleanup...
2025-06-04 00:49:48 - [database_cleanup] database_cleanup - [INFO] INFO - 📝 Schritt 1: Schließe alle Datenbankverbindungen...
2025-06-04 00:49:48 - [database_cleanup] database_cleanup - [INFO] INFO - 🔄 Schließe alle aktiven Datenbankverbindungen...
2025-06-04 00:50:43 - [database_cleanup] database_cleanup - [INFO] INFO - 🧹 Starte umfassendes Datenbank-Cleanup...
2025-06-04 00:50:43 - [database_cleanup] database_cleanup - [INFO] INFO - 📝 Schritt 1: Schließe alle Datenbankverbindungen...
2025-06-04 00:50:43 - [database_cleanup] database_cleanup - [INFO] INFO - 🔄 Schließe alle aktiven Datenbankverbindungen...
2025-06-04 00:56:11 - [database_cleanup] database_cleanup - [INFO] INFO - 🧹 Starte umfassendes Datenbank-Cleanup...
2025-06-04 00:56:11 - [database_cleanup] database_cleanup - [INFO] INFO - 📝 Schritt 1: Schließe alle Datenbankverbindungen...
2025-06-04 00:56:11 - [database_cleanup] database_cleanup - [INFO] INFO - 🔄 Schließe alle aktiven Datenbankverbindungen...
2025-06-04 00:56:23 - [database_cleanup] database_cleanup - [INFO] INFO - 🧹 Starte umfassendes Datenbank-Cleanup...
2025-06-04 00:56:23 - [database_cleanup] database_cleanup - [INFO] INFO - 📝 Schritt 1: Schließe alle Datenbankverbindungen...
2025-06-04 00:56:23 - [database_cleanup] database_cleanup - [INFO] INFO - 🔄 Schließe alle aktiven Datenbankverbindungen...

View File

@ -138,3 +138,7 @@
2025-06-04 00:35:56 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-04 00:36:24 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-04 00:36:31 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-04 00:49:48 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-04 00:50:43 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-04 00:56:10 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)
2025-06-04 00:56:23 - [email_notification] email_notification - [INFO] INFO - 📧 Offline-E-Mail-Benachrichtigung initialisiert (kein echter E-Mail-Versand)

View File

@ -91,3 +91,19 @@
2025-06-04 00:36:32 - [error_recovery] error_recovery - [INFO] INFO - 🔍 Error-Monitoring gestartet
2025-06-04 00:36:32 - [error_recovery] error_recovery - [WARNING] WARNING - 🚨 Fehler erkannt: database_lock - 2025-06-01 00:29:13 - myp.app - ERROR - ❌ Fehler beim Datenbank-Cleanup: (sqlite3.OperationalError) database is locked
2025-06-04 00:36:32 - [error_recovery] error_recovery - [INFO] INFO - 🔧 Führe Recovery-Aktion aus: reset_database
2025-06-04 00:49:48 - [error_recovery] error_recovery - [INFO] INFO - 🛡️ Error-Recovery-Manager initialisiert
2025-06-04 00:49:48 - [error_recovery] error_recovery - [INFO] INFO - 🔍 Error-Monitoring gestartet
2025-06-04 00:49:48 - [error_recovery] error_recovery - [WARNING] WARNING - 🚨 Fehler erkannt: database_lock - 2025-06-01 00:29:13 - myp.app - ERROR - ❌ Fehler beim Datenbank-Cleanup: (sqlite3.OperationalError) database is locked
2025-06-04 00:49:48 - [error_recovery] error_recovery - [INFO] INFO - 🔧 Führe Recovery-Aktion aus: reset_database
2025-06-04 00:50:43 - [error_recovery] error_recovery - [INFO] INFO - 🛡️ Error-Recovery-Manager initialisiert
2025-06-04 00:50:43 - [error_recovery] error_recovery - [INFO] INFO - 🔍 Error-Monitoring gestartet
2025-06-04 00:50:43 - [error_recovery] error_recovery - [WARNING] WARNING - 🚨 Fehler erkannt: database_lock - 2025-06-01 00:29:13 - myp.app - ERROR - ❌ Fehler beim Datenbank-Cleanup: (sqlite3.OperationalError) database is locked
2025-06-04 00:50:43 - [error_recovery] error_recovery - [INFO] INFO - 🔧 Führe Recovery-Aktion aus: reset_database
2025-06-04 00:56:11 - [error_recovery] error_recovery - [INFO] INFO - 🛡️ Error-Recovery-Manager initialisiert
2025-06-04 00:56:11 - [error_recovery] error_recovery - [INFO] INFO - 🔍 Error-Monitoring gestartet
2025-06-04 00:56:11 - [error_recovery] error_recovery - [WARNING] WARNING - 🚨 Fehler erkannt: database_lock - 2025-06-01 00:29:13 - myp.app - ERROR - ❌ Fehler beim Datenbank-Cleanup: (sqlite3.OperationalError) database is locked
2025-06-04 00:56:11 - [error_recovery] error_recovery - [INFO] INFO - 🔧 Führe Recovery-Aktion aus: reset_database
2025-06-04 00:56:23 - [error_recovery] error_recovery - [INFO] INFO - 🛡️ Error-Recovery-Manager initialisiert
2025-06-04 00:56:23 - [error_recovery] error_recovery - [INFO] INFO - 🔍 Error-Monitoring gestartet
2025-06-04 00:56:23 - [error_recovery] error_recovery - [WARNING] WARNING - 🚨 Fehler erkannt: database_lock - 2025-06-01 00:29:13 - myp.app - ERROR - ❌ Fehler beim Datenbank-Cleanup: (sqlite3.OperationalError) database is locked
2025-06-04 00:56:23 - [error_recovery] error_recovery - [INFO] INFO - 🔧 Führe Recovery-Aktion aus: reset_database

View File

@ -154,3 +154,4 @@ FROM jobs LEFT OUTER JOIN users AS users_1 ON users_1.id = jobs.user_id LEFT OUT
2025-06-03 23:34:14 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 16 von 16 (Seite 1)
2025-06-03 23:37:28 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 16 von 16 (Seite 1)
2025-06-03 23:49:42 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 16 von 16 (Seite 1)
2025-06-04 00:56:35 - [jobs] jobs - [INFO] INFO - Jobs abgerufen: 16 von 16 (Seite 1)

View File

@ -282,3 +282,11 @@
2025-06-04 00:36:24 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 00:36:31 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 00:36:32 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 00:49:48 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 00:49:48 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 00:50:43 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 00:50:43 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 00:56:10 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 00:56:10 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 00:56:23 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet
2025-06-04 00:56:23 - [maintenance] maintenance - [INFO] INFO - Wartungs-Scheduler gestartet

View File

@ -280,3 +280,11 @@
2025-06-04 00:36:24 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 00:36:31 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 00:36:32 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 00:49:48 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 00:49:48 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 00:50:43 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 00:50:43 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 00:56:10 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 00:56:10 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 00:56:23 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt
2025-06-04 00:56:23 - [multi_location] multi_location - [INFO] INFO - Standard-Standort erstellt

View File

@ -140,3 +140,7 @@
2025-06-04 00:35:57 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-04 00:36:24 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-04 00:36:32 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-04 00:49:48 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-04 00:50:43 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-04 00:56:10 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert
2025-06-04 00:56:23 - [permissions] permissions - [INFO] INFO - 🔐 Permission Template Helpers registriert

View File

@ -3762,3 +3762,150 @@
2025-06-04 00:36:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
2025-06-04 00:37:03 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
2025-06-04 00:37:09 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.0s
2025-06-04 00:49:46 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-04 00:49:46 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-04 00:49:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
2025-06-04 00:49:48 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
2025-06-04 00:49:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
2025-06-04 00:49:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
2025-06-04 00:49:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
2025-06-04 00:49:54 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
2025-06-04 00:50:00 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
2025-06-04 00:50:06 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
2025-06-04 00:50:12 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
2025-06-04 00:50:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-04 00:50:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-04 00:50:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
2025-06-04 00:50:43 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
2025-06-04 00:50:44 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
2025-06-04 00:50:44 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
2025-06-04 00:50:44 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
2025-06-04 00:50:50 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
2025-06-04 00:50:56 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
2025-06-04 00:51:02 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
2025-06-04 00:51:08 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
2025-06-04 00:51:14 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
2025-06-04 00:51:20 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.2s
2025-06-04 00:52:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:52:29 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:52:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:52:29 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:52:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:52:37 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:52:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:52:37 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:53:07 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:53:07 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:53:07 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:53:07 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:53:22 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:53:22 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:53:22 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:53:22 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:53:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:53:29 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:53:29 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:53:29 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:53:55 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:53:55 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:53:55 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:53:55 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:54:03 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:54:03 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:54:03 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:54:03 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:54:05 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:54:05 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:54:05 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:54:05 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:54:32 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:54:32 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:54:32 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:54:32 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:54:35 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:54:35 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:54:35 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:54:35 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:55:05 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:55:05 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:55:05 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:55:05 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:56:09 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-04 00:56:09 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-04 00:56:22 - [printer_monitor] printer_monitor - [INFO] INFO - 🖨️ Drucker-Monitor initialisiert
2025-06-04 00:56:22 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Automatische Tapo-Erkennung in separatem Thread gestartet
2025-06-04 00:56:24 - [printer_monitor] printer_monitor - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Programmstart...
2025-06-04 00:56:24 - [printer_monitor] printer_monitor - [WARNING] WARNING - ⚠️ Keine aktiven Drucker zur Initialisierung gefunden
2025-06-04 00:56:24 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Starte automatische Tapo-Steckdosenerkennung...
2025-06-04 00:56:24 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Teste 6 Standard-IPs aus der Konfiguration
2025-06-04 00:56:24 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 1/6: 192.168.0.103
2025-06-04 00:56:30 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 2/6: 192.168.0.104
2025-06-04 00:56:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:56:31 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:56:31 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:56:31 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:56:33 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:56:33 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:56:33 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:56:33 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:56:34 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:56:34 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:56:34 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:56:34 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:56:36 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 3/6: 192.168.0.100
2025-06-04 00:56:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:56:42 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:56:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:56:42 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:56:42 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 4/6: 192.168.0.101
2025-06-04 00:56:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 5/6: 192.168.0.102
2025-06-04 00:56:54 - [printer_monitor] printer_monitor - [INFO] INFO - 🔍 Teste IP 6/6: 192.168.0.105
2025-06-04 00:57:00 - [printer_monitor] printer_monitor - [INFO] INFO - ✅ Steckdosen-Erkennung abgeschlossen: 0/6 Steckdosen gefunden in 36.2s
2025-06-04 00:57:12 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:57:12 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:57:12 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:57:12 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:57:16 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:57:16 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:57:16 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:57:16 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:57:32 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:57:32 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:57:32 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:57:32 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:57:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:57:37 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:57:37 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:57:37 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:58:07 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:58:07 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:58:07 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:58:07 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:58:09 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:58:09 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:58:09 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:58:09 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:58:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:58:57 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:58:57 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:58:57 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:59:27 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:59:27 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:59:27 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:59:27 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:59:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:59:43 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:59:43 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:59:43 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:59:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:59:48 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:59:48 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:59:48 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:59:54 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:59:54 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 00:59:54 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 00:59:54 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 01:00:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 01:00:01 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden
2025-06-04 01:00:01 - [printer_monitor] printer_monitor - [INFO] INFO - 🔄 Aktualisiere Live-Druckerstatus...
2025-06-04 01:00:01 - [printer_monitor] printer_monitor - [INFO] INFO - Keine aktiven Drucker gefunden

View File

@ -7003,3 +7003,86 @@
2025-06-03 23:50:23 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-03 23:50:23 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-03 23:50:23 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 4.22ms
2025-06-04 00:52:29 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:52:29 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:52:29 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.58ms
2025-06-04 00:52:37 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:52:37 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:52:37 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 11.56ms
2025-06-04 00:53:07 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:53:07 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:53:07 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.58ms
2025-06-04 00:53:22 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:53:22 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:53:22 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 16.25ms
2025-06-04 00:53:29 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:53:29 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:53:29 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.65ms
2025-06-04 00:53:55 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:53:55 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:53:55 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.10ms
2025-06-04 00:54:03 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:54:03 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:54:03 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.16ms
2025-06-04 00:54:05 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:54:05 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:54:05 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 11.41ms
2025-06-04 00:54:32 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:54:32 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:54:32 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.64ms
2025-06-04 00:54:35 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:54:35 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:54:35 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.85ms
2025-06-04 00:55:05 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:55:05 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:55:05 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 4.16ms
2025-06-04 00:56:31 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:56:31 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:56:31 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 14.69ms
2025-06-04 00:56:33 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:56:33 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:56:33 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.23ms
2025-06-04 00:56:34 - [printers] printers - [INFO] INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
2025-06-04 00:56:34 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:56:34 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:56:34 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 5.67ms
2025-06-04 00:56:35 - [printers] printers - [INFO] INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
2025-06-04 00:56:42 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:56:42 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:56:42 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.95ms
2025-06-04 00:57:12 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:57:12 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:57:12 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 3.73ms
2025-06-04 00:57:16 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:57:16 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:57:16 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.22ms
2025-06-04 00:57:32 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:57:32 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:57:32 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.94ms
2025-06-04 00:57:37 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:57:37 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:57:37 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 6.11ms
2025-06-04 00:58:07 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:58:07 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:58:07 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 8.24ms
2025-06-04 00:58:09 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:58:09 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:58:09 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 9.59ms
2025-06-04 00:58:57 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:58:57 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:58:57 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 1.54ms
2025-06-04 00:59:27 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:59:27 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:59:27 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.52ms
2025-06-04 00:59:43 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:59:43 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:59:43 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 7.23ms
2025-06-04 00:59:48 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:59:48 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:59:48 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 12.67ms
2025-06-04 00:59:54 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 00:59:54 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 00:59:54 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 12.77ms
2025-06-04 01:00:01 - [printers] printers - [INFO] INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
2025-06-04 01:00:01 - [printers] printers - [INFO] INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
2025-06-04 01:00:01 - [printers] printers - [INFO] INFO - ✅ API-Live-Drucker-Status-Abfrage 'get_live_printer_status' erfolgreich in 10.32ms

File diff suppressed because it is too large Load Diff

View File

@ -140,3 +140,7 @@
2025-06-04 00:35:57 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-04 00:36:24 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-04 00:36:32 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-04 00:49:48 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-04 00:50:43 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-04 00:56:10 - [security] security - [INFO] INFO - 🔒 Security System initialisiert
2025-06-04 00:56:23 - [security] security - [INFO] INFO - 🔒 Security System initialisiert

View File

@ -241,3 +241,7 @@
2025-06-04 00:35:57 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-04 00:36:24 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-04 00:36:31 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-04 00:49:48 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-04 00:50:43 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-04 00:56:10 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert
2025-06-04 00:56:23 - [shutdown_manager] shutdown_manager - [INFO] INFO - 🔧 Shutdown-Manager initialisiert

View File

@ -1258,3 +1258,39 @@
2025-06-04 00:36:31 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-04 00:36:31 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-04 00:36:31 - [startup] startup - [INFO] INFO - ==================================================
2025-06-04 00:49:48 - [startup] startup - [INFO] INFO - ==================================================
2025-06-04 00:49:48 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
2025-06-04 00:49:48 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
2025-06-04 00:49:48 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-04 00:49:48 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
2025-06-04 00:49:48 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-04T00:49:48.337851
2025-06-04 00:49:48 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-04 00:49:48 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-04 00:49:48 - [startup] startup - [INFO] INFO - ==================================================
2025-06-04 00:50:43 - [startup] startup - [INFO] INFO - ==================================================
2025-06-04 00:50:43 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
2025-06-04 00:50:43 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
2025-06-04 00:50:43 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-04 00:50:43 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
2025-06-04 00:50:43 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-04T00:50:43.247448
2025-06-04 00:50:43 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-04 00:50:43 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-04 00:50:43 - [startup] startup - [INFO] INFO - ==================================================
2025-06-04 00:56:10 - [startup] startup - [INFO] INFO - ==================================================
2025-06-04 00:56:10 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
2025-06-04 00:56:10 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
2025-06-04 00:56:10 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-04 00:56:10 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
2025-06-04 00:56:10 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-04T00:56:10.820836
2025-06-04 00:56:10 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-04 00:56:10 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-04 00:56:10 - [startup] startup - [INFO] INFO - ==================================================
2025-06-04 00:56:23 - [startup] startup - [INFO] INFO - ==================================================
2025-06-04 00:56:23 - [startup] startup - [INFO] INFO - 🚀 MYP Platform Backend wird gestartet...
2025-06-04 00:56:23 - [startup] startup - [INFO] INFO - 🐍 Python Version: 3.13.3 (tags/v3.13.3:6280bb5, Apr 8 2025, 14:47:33) [MSC v.1943 64 bit (AMD64)]
2025-06-04 00:56:23 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32)
2025-06-04 00:56:23 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend
2025-06-04 00:56:23 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-04T00:56:23.519054
2025-06-04 00:56:23 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert
2025-06-04 00:56:23 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert
2025-06-04 00:56:23 - [startup] startup - [INFO] INFO - ==================================================

View File

@ -21,3 +21,7 @@
2025-06-03 23:45:54 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert
2025-06-04 00:35:57 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert
2025-06-04 00:36:32 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert
2025-06-04 00:49:48 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert
2025-06-04 00:50:43 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert
2025-06-04 00:56:11 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert
2025-06-04 00:56:23 - [system_control] system_control - [INFO] INFO - 🔧 System-Control-Manager initialisiert

View File

@ -575,3 +575,19 @@
2025-06-04 00:36:30 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-04 00:36:30 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-04 00:36:30 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-04 00:49:46 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-04 00:49:46 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-04 00:49:46 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-04 00:49:46 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-04 00:50:42 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-04 00:50:42 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-04 00:50:42 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-04 00:50:42 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-04 00:56:09 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-04 00:56:09 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-04 00:56:09 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-04 00:56:09 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet
2025-06-04 00:56:22 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an...
2025-06-04 00:56:22 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Subprocess automatisch gepatcht für UTF-8 Encoding (run + Popen)
2025-06-04 00:56:22 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Globaler subprocess-Patch angewendet
2025-06-04 00:56:22 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet

View File

@ -12,6 +12,8 @@
cursor: pointer;
transition: background-color 0.3s ease;
overflow: hidden;
flex-shrink: 0;
z-index: 10;
}
.dark .dark-mode-toggle {

View File

@ -1 +1,300 @@
.dark-mode-toggle{position:relative;width:44px;height:24px;padding:0;background:#e2e8f0;border:none;border-radius:12px;cursor:pointer;transition:background-color 0.3s ease;overflow:hidden;}.dark .dark-mode-toggle{background:#1e293b;}.dark-mode-toggle:hover{background:#cbd5e1;}.dark .dark-mode-toggle:hover{background:#334155;}.dark-mode-toggle-slider{position:absolute;top:2px;left:2px;width:20px;height:20px;background:white;border-radius:50%;transition:transform 0.3s cubic-bezier(0.4,0,0.2,1);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px rgba(0,0,0,0.1);}.dark .dark-mode-toggle-slider{transform:translateX(20px);background:#475569;}.dark-mode-toggle-icon{font-size:12px;color:#f59e0b;transition:opacity 0.2s ease;}.dark .dark-mode-toggle-icon.sun{opacity:0;}.dark .dark-mode-toggle-icon.moon{opacity:1;color:#60a5fa;}.notification-simple{background:white;border:1px solid #e5e7eb;border-radius:8px;padding:12px 16px;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;box-shadow:0 1px 3px rgba(0,0,0,0.1);transition:opacity 0.2s ease,transform 0.2s ease;}.dark .notification-simple{background:#1f2937;border-color:#374151;}.notification-simple.notification-enter{opacity:0;transform:translateX(100%);}.notification-simple.notification-enter-active{opacity:1;transform:translateX(0);}.notification-simple.notification-exit{opacity:0;transform:translateX(100%);}.notification-content{display:flex;align-items:center;gap:12px;flex:1;}.notification-icon{font-size:18px;width:20px;text-align:center;}.notification-icon.success{color:#10b981;}.notification-icon.error{color:#ef4444;}.notification-icon.warning{color:#f59e0b;}.notification-icon.info{color:#3b82f6;}.notification-message{font-size:14px;color:#374151;}.dark .notification-message{color:#e5e7eb;}.notification-close{background:none;border:none;color:#9ca3af;cursor:pointer;font-size:20px;line-height:1;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color 0.2s ease;}.notification-close:hover{background-color:#f3f4f6;color:#6b7280;}.dark .notification-close:hover{background-color:#374151;color:#d1d5db;}.loading-spinner{display:inline-block;width:20px;height:20px;border:2px solid #e5e7eb;border-top-color:#3b82f6;border-radius:50%;animation:simple-spin 0.8s linear infinite;}@keyframes simple-spin{to{transform:rotate(360deg);}}.skeleton{background:#f3f4f6;background-image:linear-gradient(90deg,#f3f4f6 0%,#e5e7eb 50%,#f3f4f6 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:4px;}.dark .skeleton{background:#374151;background-image:linear-gradient(90deg,#374151 0%,#4b5563 50%,#374151 100%);}@keyframes skeleton-shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}.skeleton-text{height:16px;margin-bottom:8px;border-radius:4px;}.skeleton-title{height:24px;width:60%;margin-bottom:12px;border-radius:4px;}.skeleton-button{height:40px;width:120px;border-radius:6px;}.hover-lift{transition:transform 0.2s ease,box-shadow 0.2s ease;}.hover-lift:hover{transform:translateY(-2px);box-shadow:0 4px 6px rgba(0,0,0,0.1);}.hover-scale{transition:transform 0.2s ease;}.hover-scale:hover{transform:scale(1.02);}.fade-in{animation:fadeIn 0.3s ease-in;}@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}.btn-press{transition:transform 0.1s ease;}.btn-press:active{transform:scale(0.98);}.status-pulse{position:relative;}.status-pulse::before{content:'';position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;background:currentColor;opacity:0.3;transform:translate(-50%,-50%);animation:subtle-pulse 2s ease-in-out infinite;}@keyframes subtle-pulse{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:0.3;}50%{transform:translate(-50%,-50%) scale(1.2);opacity:0;}}.progress-bar{height:4px;background:#e5e7eb;border-radius:2px;overflow:hidden;}.progress-bar-fill{height:100%;background:#3b82f6;transition:width 0.3s ease;}.nav-item i{font-size:18px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;}.mobile-nav-item i{font-size:18px;width:20px;height:20px;display:inline-flex;align-items:center;justify-content:center;}
/* UI Refinements - Subtle animations and improved components */
/* ===== DARK MODE TOGGLE - REFINED ===== */
.dark-mode-toggle {
position: relative;
width: 44px;
height: 24px;
padding: 0;
background: #e2e8f0;
border: none;
border-radius: 12px;
cursor: pointer;
transition: background-color 0.3s ease;
overflow: hidden;
flex-shrink: 0;
z-index: 10;
}
.dark .dark-mode-toggle {
background: #1e293b;
}
.dark-mode-toggle:hover {
background: #cbd5e1;
}
.dark .dark-mode-toggle:hover {
background: #334155;
}
.dark-mode-toggle-slider {
position: absolute;
top: 2px;
left: 2px;
width: 20px;
height: 20px;
background: white;
border-radius: 50%;
transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}
.dark .dark-mode-toggle-slider {
transform: translateX(20px);
background: #475569;
}
.dark-mode-toggle-icon {
font-size: 12px;
color: #f59e0b;
transition: opacity 0.2s ease;
}
.dark .dark-mode-toggle-icon.sun {
opacity: 0;
}
.dark .dark-mode-toggle-icon.moon {
opacity: 1;
color: #60a5fa;
}
/* ===== SIMPLE NOTIFICATIONS ===== */
.notification-simple {
background: white;
border: 1px solid #e5e7eb;
border-radius: 8px;
padding: 12px 16px;
margin-bottom: 8px;
display: flex;
align-items: center;
justify-content: space-between;
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
transition: opacity 0.2s ease, transform 0.2s ease;
}
.dark .notification-simple {
background: #1f2937;
border-color: #374151;
}
.notification-simple.notification-enter {
opacity: 0;
transform: translateX(100%);
}
.notification-simple.notification-enter-active {
opacity: 1;
transform: translateX(0);
}
.notification-simple.notification-exit {
opacity: 0;
transform: translateX(100%);
}
.notification-content {
display: flex;
align-items: center;
gap: 12px;
flex: 1;
}
.notification-icon {
font-size: 18px;
width: 20px;
text-align: center;
}
.notification-icon.success { color: #10b981; }
.notification-icon.error { color: #ef4444; }
.notification-icon.warning { color: #f59e0b; }
.notification-icon.info { color: #3b82f6; }
.notification-message {
font-size: 14px;
color: #374151;
}
.dark .notification-message {
color: #e5e7eb;
}
.notification-close {
background: none;
border: none;
color: #9ca3af;
cursor: pointer;
font-size: 20px;
line-height: 1;
padding: 0;
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
border-radius: 4px;
transition: background-color 0.2s ease;
}
.notification-close:hover {
background-color: #f3f4f6;
color: #6b7280;
}
.dark .notification-close:hover {
background-color: #374151;
color: #d1d5db;
}
/* ===== SIMPLE LOADING SPINNER ===== */
.loading-spinner {
display: inline-block;
width: 20px;
height: 20px;
border: 2px solid #e5e7eb;
border-top-color: #3b82f6;
border-radius: 50%;
animation: simple-spin 0.8s linear infinite;
}
@keyframes simple-spin {
to { transform: rotate(360deg); }
}
/* ===== SKELETON LOADER ===== */
.skeleton {
background: #f3f4f6;
background-image: linear-gradient(90deg, #f3f4f6 0%, #e5e7eb 50%, #f3f4f6 100%);
background-size: 200% 100%;
animation: skeleton-shimmer 1.5s ease-in-out infinite;
border-radius: 4px;
}
.dark .skeleton {
background: #374151;
background-image: linear-gradient(90deg, #374151 0%, #4b5563 50%, #374151 100%);
}
@keyframes skeleton-shimmer {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}
.skeleton-text {
height: 16px;
margin-bottom: 8px;
border-radius: 4px;
}
.skeleton-title {
height: 24px;
width: 60%;
margin-bottom: 12px;
border-radius: 4px;
}
.skeleton-button {
height: 40px;
width: 120px;
border-radius: 6px;
}
/* ===== SUBTLE HOVER ANIMATIONS ===== */
.hover-lift {
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.hover-lift:hover {
transform: translateY(-2px);
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}
.hover-scale {
transition: transform 0.2s ease;
}
.hover-scale:hover {
transform: scale(1.02);
}
/* ===== FADE IN ANIMATION ===== */
.fade-in {
animation: fadeIn 0.3s ease-in;
}
@keyframes fadeIn {
from { opacity: 0; }
to { opacity: 1; }
}
/* ===== BUTTON PRESS EFFECT ===== */
.btn-press {
transition: transform 0.1s ease;
}
.btn-press:active {
transform: scale(0.98);
}
/* ===== SUBTLE PULSE FOR ACTIVE STATUS ===== */
.status-pulse {
position: relative;
}
.status-pulse::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 100%;
height: 100%;
border-radius: 50%;
background: currentColor;
opacity: 0.3;
transform: translate(-50%, -50%);
animation: subtle-pulse 2s ease-in-out infinite;
}
@keyframes subtle-pulse {
0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: 0.3; }
50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0; }
}
/* ===== SIMPLE PROGRESS BAR ===== */
.progress-bar {
height: 4px;
background: #e5e7eb;
border-radius: 2px;
overflow: hidden;
}
.progress-bar-fill {
height: 100%;
background: #3b82f6;
transition: width 0.3s ease;
}
/* ===== NAVBAR ICON ADJUSTMENTS ===== */
.nav-item i {
font-size: 18px;
width: 20px;
height: 20px;
display: inline-flex;
align-items: center;
justify-content: center;
}
/* Mobile Menu Icons */
.mobile-nav-item i {
font-size: 18px;
width: 20px;
height: 20px;
display: inline-flex;
align-items: center;
justify-content: center;
}

View File

@ -5,7 +5,7 @@
document.addEventListener('DOMContentLoaded', function() {
// Dark Mode Toggle Button (Premium Design)
const darkModeToggle = document.getElementById('darkModeToggle');
const darkModeToggles = document.querySelectorAll('.darkModeToggle');
const html = document.documentElement;
// Local Storage Key
@ -26,16 +26,17 @@ document.addEventListener('DOMContentLoaded', function() {
* Icons im Premium Toggle-Button aktualisieren
*/
function updateIcons(isDark) {
if (!darkModeToggle) return;
// Finde die Premium-Icons
const sunIcon = darkModeToggle.querySelector('.sun-icon');
const moonIcon = darkModeToggle.querySelector('.moon-icon');
if (!sunIcon || !moonIcon) {
console.warn('Premium Dark Mode Icons nicht gefunden');
return;
}
darkModeToggles.forEach(darkModeToggle => {
if (!darkModeToggle) return;
// Finde die Premium-Icons
const sunIcon = darkModeToggle.querySelector('.sun-icon');
const moonIcon = darkModeToggle.querySelector('.moon-icon');
if (!sunIcon || !moonIcon) {
console.warn('Premium Dark Mode Icons nicht gefunden');
return;
}
// Animation für Übergänge
if (isDark) {
@ -64,9 +65,10 @@ document.addEventListener('DOMContentLoaded', function() {
moonIcon.classList.remove('opacity-100', 'scale-100', 'rotate-0');
}
// Icon-Animationen hinzufügen
sunIcon.classList.toggle('icon-enter', !isDark);
moonIcon.classList.toggle('icon-enter', isDark);
// Icon-Animationen hinzufügen
sunIcon.classList.toggle('icon-enter', !isDark);
moonIcon.classList.toggle('icon-enter', isDark);
});
}
/**
@ -80,23 +82,23 @@ document.addEventListener('DOMContentLoaded', function() {
html.setAttribute('data-theme', 'dark');
html.style.colorScheme = 'dark';
if (darkModeToggle) {
darkModeToggle.setAttribute('aria-pressed', 'true');
darkModeToggle.setAttribute('title', 'Light Mode aktivieren');
// Premium Button-Icons aktualisieren
updateIcons(true);
}
darkModeToggles.forEach(toggle => {
toggle.setAttribute('aria-pressed', 'true');
toggle.setAttribute('title', 'Light Mode aktivieren');
});
// Premium Button-Icons aktualisieren
updateIcons(true);
} else {
html.classList.remove('dark');
html.setAttribute('data-theme', 'light');
html.style.colorScheme = 'light';
if (darkModeToggle) {
darkModeToggle.setAttribute('aria-pressed', 'false');
darkModeToggle.setAttribute('title', 'Dark Mode aktivieren');
// Premium Button-Icons aktualisieren
updateIcons(false);
}
darkModeToggles.forEach(toggle => {
toggle.setAttribute('aria-pressed', 'false');
toggle.setAttribute('title', 'Dark Mode aktivieren');
});
// Premium Button-Icons aktualisieren
updateIcons(false);
}
// Einstellung im Local Storage speichern
@ -118,47 +120,43 @@ document.addEventListener('DOMContentLoaded', function() {
}
// Toggle Dark Mode Funktion
function toggleDarkMode() {
function toggleDarkMode(event) {
const currentMode = isDarkMode();
setDarkMode(!currentMode);
// Premium-Animation beim Klick
if (darkModeToggle) {
const container = darkModeToggle.querySelector('div');
if (container) {
container.style.transform = 'scale(0.95)';
// Premium-Animation beim Klick für den geklickten Button
if (event && event.currentTarget) {
const clickedToggle = event.currentTarget;
const slider = clickedToggle.querySelector('.dark-mode-toggle-slider');
if (slider) {
slider.style.transform = 'scale(0.95)';
setTimeout(() => {
container.style.transform = '';
slider.style.transform = '';
}, 150);
}
}
}
// Event Listener für Premium Toggle Button
if (darkModeToggle) {
console.log('🎨 Premium Dark Mode Toggle Button gefunden - initialisiere...');
// Event Listener für Premium Toggle Buttons
if (darkModeToggles.length > 0) {
console.log(`🎨 ${darkModeToggles.length} Premium Dark Mode Toggle Button(s) gefunden - initialisiere...`);
// Entferne vorherige Event-Listener, um Duplikate zu vermeiden
const newDarkModeToggle = darkModeToggle.cloneNode(true);
darkModeToggle.parentNode.replaceChild(newDarkModeToggle, darkModeToggle);
// Neuen Event-Listener hinzufügen
newDarkModeToggle.addEventListener('click', function(e) {
e.preventDefault();
e.stopPropagation(); // Verhindere Bubbling
toggleDarkMode();
darkModeToggles.forEach((toggle, index) => {
// Event-Listener hinzufügen
toggle.addEventListener('click', function(e) {
e.preventDefault();
e.stopPropagation(); // Verhindere Bubbling
toggleDarkMode(e);
});
});
// Aktualisiere die Variable auf das neue Element
const updatedToggle = document.getElementById('darkModeToggle');
// Initialen Status setzen
const isDark = isDarkMode();
setDarkMode(isDark);
console.log('✨ Premium Dark Mode Toggle Button erfolgreich initialisiert');
console.log('✨ Premium Dark Mode Toggle Buttons erfolgreich initialisiert');
} else {
console.error('❌ Premium Dark Mode Toggle Button konnte nicht gefunden werden!');
console.error('❌ Keine Premium Dark Mode Toggle Buttons gefunden!');
}
// Tastaturkürzel: Strg+Shift+D für Dark Mode Toggle

View File

@ -1,11 +1 @@
document.addEventListener('DOMContentLoaded',function(){const darkModeToggle=document.getElementById('darkModeToggle');const html=document.documentElement;const STORAGE_KEY='myp-dark-mode';function isDarkMode(){const savedMode=localStorage.getItem(STORAGE_KEY);if(savedMode!==null){return savedMode==='true';}
return window.matchMedia('(prefers-color-scheme: dark)').matches;}
function updateIcons(isDark){if(!darkModeToggle)return;const sunIcon=darkModeToggle.querySelector('.sun-icon');const moonIcon=darkModeToggle.querySelector('.moon-icon');if(!sunIcon||!moonIcon){console.warn('Premium Dark Mode Icons nicht gefunden');return;}
if(isDark){sunIcon.style.opacity='0';sunIcon.style.transform='scale(0.75) rotate(90deg)';moonIcon.style.opacity='1';moonIcon.style.transform='scale(1) rotate(0deg)';sunIcon.classList.add('opacity-0','dark:opacity-0','scale-75','dark:scale-75','rotate-90','dark:rotate-90');sunIcon.classList.remove('opacity-100','scale-100','rotate-0');moonIcon.classList.add('opacity-100','dark:opacity-100','scale-100','dark:scale-100','rotate-0','dark:rotate-0');moonIcon.classList.remove('opacity-0','scale-75','rotate-90');}else{sunIcon.style.opacity='1';sunIcon.style.transform='scale(1) rotate(0deg)';moonIcon.style.opacity='0';moonIcon.style.transform='scale(0.75) rotate(-90deg)';sunIcon.classList.add('opacity-100','scale-100','rotate-0');sunIcon.classList.remove('opacity-0','dark:opacity-0','scale-75','dark:scale-75','rotate-90','dark:rotate-90');moonIcon.classList.add('opacity-0','dark:opacity-100','scale-75','dark:scale-100','rotate-90','dark:rotate-0');moonIcon.classList.remove('opacity-100','scale-100','rotate-0');}
sunIcon.classList.toggle('icon-enter',!isDark);moonIcon.classList.toggle('icon-enter',isDark);}
function setDarkMode(enable){console.log(`🎨 Setze Premium Dark Mode auf:${enable?'Aktiviert':'Deaktiviert'}`);if(enable){html.classList.add('dark');html.setAttribute('data-theme','dark');html.style.colorScheme='dark';if(darkModeToggle){darkModeToggle.setAttribute('aria-pressed','true');darkModeToggle.setAttribute('title','Light Mode aktivieren');updateIcons(true);}}else{html.classList.remove('dark');html.setAttribute('data-theme','light');html.style.colorScheme='light';if(darkModeToggle){darkModeToggle.setAttribute('aria-pressed','false');darkModeToggle.setAttribute('title','Dark Mode aktivieren');updateIcons(false);}}
localStorage.setItem(STORAGE_KEY,enable.toString());const metaThemeColor=document.getElementById('metaThemeColor');if(metaThemeColor){metaThemeColor.setAttribute('content',enable?'#000000':'#ffffff');}
window.dispatchEvent(new CustomEvent('darkModeChanged',{detail:{isDark:enable}}));console.log(`${enable?'🌙':'☀️'}Premium Design umgeschaltet auf:${enable?'Dark Mode':'Light Mode'}`);}
function toggleDarkMode(){const currentMode=isDarkMode();setDarkMode(!currentMode);if(darkModeToggle){const container=darkModeToggle.querySelector('div');if(container){container.style.transform='scale(0.95)';setTimeout(()=>{container.style.transform='';},150);}}}
if(darkModeToggle){console.log('🎨 Premium Dark Mode Toggle Button gefunden - initialisiere...');const newDarkModeToggle=darkModeToggle.cloneNode(true);darkModeToggle.parentNode.replaceChild(newDarkModeToggle,darkModeToggle);newDarkModeToggle.addEventListener('click',function(e){e.preventDefault();e.stopPropagation();toggleDarkMode();});const updatedToggle=document.getElementById('darkModeToggle');const isDark=isDarkMode();setDarkMode(isDark);console.log('✨ Premium Dark Mode Toggle Button erfolgreich initialisiert');}else{console.error('❌ Premium Dark Mode Toggle Button konnte nicht gefunden werden!');}
document.addEventListener('keydown',function(e){if(e.ctrlKey&&e.shiftKey&&e.key==='D'){toggleDarkMode();e.preventDefault();}});document.addEventListener('keydown',function(e){if(e.altKey&&e.key==='t'){toggleDarkMode();e.preventDefault();}});window.toggleDarkMode=toggleDarkMode;window.isDarkMode=isDarkMode;window.setDarkMode=setDarkMode;window.premiumDarkMode={toggle:toggleDarkMode,isDark:isDarkMode,setMode:setDarkMode,version:'3.0.0-premium'};console.log('🎨 Premium Dark Mode System geladen - Version 3.0.0');});
document.addEventListener("DOMContentLoaded",(function(){const e=document.querySelectorAll(".darkModeToggle"),t=document.documentElement,o="myp-dark-mode";function a(){const e=localStorage.getItem(o);return null!==e?"true"===e:window.matchMedia("(prefers-color-scheme: dark)").matches}function r(t){e.forEach((e=>{if(!e)return;const o=e.querySelector(".sun-icon"),a=e.querySelector(".moon-icon");o&&a?(t?(o.style.opacity="0",o.style.transform="scale(0.75) rotate(90deg)",a.style.opacity="1",a.style.transform="scale(1) rotate(0deg)",o.classList.add("opacity-0","dark:opacity-0","scale-75","dark:scale-75","rotate-90","dark:rotate-90"),o.classList.remove("opacity-100","scale-100","rotate-0"),a.classList.add("opacity-100","dark:opacity-100","scale-100","dark:scale-100","rotate-0","dark:rotate-0"),a.classList.remove("opacity-0","scale-75","rotate-90")):(o.style.opacity="1",o.style.transform="scale(1) rotate(0deg)",a.style.opacity="0",a.style.transform="scale(0.75) rotate(-90deg)",o.classList.add("opacity-100","scale-100","rotate-0"),o.classList.remove("opacity-0","dark:opacity-0","scale-75","dark:scale-75","rotate-90","dark:rotate-90"),a.classList.add("opacity-0","dark:opacity-100","scale-75","dark:scale-100","rotate-90","dark:rotate-0"),a.classList.remove("opacity-100","scale-100","rotate-0")),o.classList.toggle("icon-enter",!t),a.classList.toggle("icon-enter",t)):console.warn("Premium Dark Mode Icons nicht gefunden")}))}function s(a){console.log("🎨 Setze Premium Dark Mode auf: "+(a?"Aktiviert":"Deaktiviert")),a?(t.classList.add("dark"),t.setAttribute("data-theme","dark"),t.style.colorScheme="dark",e.forEach((e=>{e.setAttribute("aria-pressed","true"),e.setAttribute("title","Light Mode aktivieren")})),r(!0)):(t.classList.remove("dark"),t.setAttribute("data-theme","light"),t.style.colorScheme="light",e.forEach((e=>{e.setAttribute("aria-pressed","false"),e.setAttribute("title","Dark Mode aktivieren")})),r(!1)),localStorage.setItem(o,a.toString());const s=document.getElementById("metaThemeColor");s&&s.setAttribute("content",a?"#000000":"#ffffff"),window.dispatchEvent(new CustomEvent("darkModeChanged",{detail:{isDark:a}})),console.log(`${a?"🌙":"☀️"} Premium Design umgeschaltet auf: ${a?"Dark Mode":"Light Mode"}`)}function i(e){if(s(!a()),e&&e.currentTarget){const t=e.currentTarget.querySelector(".dark-mode-toggle-slider");t&&(t.style.transform="scale(0.95)",setTimeout((()=>{t.style.transform=""}),150))}}if(e.length>0){console.log(`🎨 ${e.length} Premium Dark Mode Toggle Button(s) gefunden - initialisiere...`),e.forEach(((e,t)=>{e.addEventListener("click",(function(e){e.preventDefault(),e.stopPropagation(),i(e)}))}));s(a()),console.log("✨ Premium Dark Mode Toggle Buttons erfolgreich initialisiert")}else console.error("❌ Keine Premium Dark Mode Toggle Buttons gefunden!");document.addEventListener("keydown",(function(e){e.ctrlKey&&e.shiftKey&&"D"===e.key&&(i(),e.preventDefault())})),document.addEventListener("keydown",(function(e){e.altKey&&"t"===e.key&&(i(),e.preventDefault())})),window.toggleDarkMode=i,window.isDarkMode=a,window.setDarkMode=s,window.premiumDarkMode={toggle:i,isDark:a,setMode:s,version:"3.0.0-premium"},console.log("🎨 Premium Dark Mode System geladen - Version 3.0.0")}));

View File

@ -34,6 +34,7 @@
<!-- Core Utilities CSS -->
<link href="{{ url_for('static', filename='css/core-utilities.min.css') }}" rel="stylesheet">
<link href="{{ url_for('static', filename='css/ui-refinements.min.css') }}" rel="stylesheet">
<!-- Preload critical resources -->
<link rel="preload" href="{{ url_for('static', filename='js/core-utilities.min.js') }}" as="script">
@ -80,7 +81,7 @@
// Diese Funktion wird nach dem DOM-Laden ausgeführt
document.addEventListener('DOMContentLoaded', function() {
// Dark Mode Toggle Button Icons aktualisieren
const darkModeToggle = document.getElementById('darkModeToggle');
const darkModeToggle = document.querySelector('.darkModeToggle');
if (darkModeToggle) {
const sunIcon = darkModeToggle.querySelector('.sun-icon');
const moonIcon = darkModeToggle.querySelector('.moon-icon');
@ -404,8 +405,7 @@
<!-- Dark Mode Toggle - Clean and Modern -->
<button
id="darkModeToggle"
class="dark-mode-toggle"
class="dark-mode-toggle darkModeToggle"
aria-label="Dark Mode umschalten"
title="Design wechseln"
>