diff --git a/backend/DOCS/MINIMAL_PERFORMANCE_CHANGES.md b/backend/DOCS/MINIMAL_PERFORMANCE_CHANGES.md new file mode 100644 index 000000000..0519ecba6 --- /dev/null +++ b/backend/DOCS/MINIMAL_PERFORMANCE_CHANGES.md @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/backend/database/myp.db b/backend/backend/database/myp.db index caeab6b2c..2c6c4e6e2 100644 Binary files a/backend/backend/database/myp.db and b/backend/backend/database/myp.db differ diff --git a/backend/logs/app/app.log b/backend/logs/app/app.log index 9f3ad7770..2813e4316 100644 --- a/backend/logs/app/app.log +++ b/backend/logs/app/app.log @@ -59336,3 +59336,82 @@ WHERE users.role = ?] 2025-06-20 08:34:40 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet 2025-06-20 08:34:40 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)... 2025-06-20 08:34:45 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 08:34:58 - [app] app - [WARNING] WARNING - [STARTUP] ⚠️ Keine der 6 Steckdosen konnte initialisiert werden +2025-06-20 08:34:58 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://: +2025-06-20 08:37:10 - [app] app - [INFO] INFO - [SHUTDOWN] 🧹 Cleanup wird ausgeführt... +2025-06-20 08:37:10 - [app] app - [INFO] INFO - [SHUTDOWN] ✅ Queue Manager gestoppt +2025-06-20 08:37:10 - [app] app - [ERROR] ERROR - [SHUTDOWN] ❌ Cleanup-Fehler: +2025-06-20 08:37:12 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Konfiguration aktiviert +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: +2025-06-20 08:37:13 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-20 08:37:13 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: erstellt, aktualisiert +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP -Umgebung +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] 🏢 +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-20 08:37:13 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-20 08:37:13 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-20 08:37:13 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-20 08:37:13 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-20 08:37:13 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-20 08:37:13 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-20 08:37:13 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)... +2025-06-20 08:37:31 - [app] app - [WARNING] WARNING - [STARTUP] ⚠️ Keine der 6 Steckdosen konnte initialisiert werden +2025-06-20 08:37:31 - [app] app - [INFO] INFO - [STARTUP] 🌐 Server startet auf http://: +2025-06-20 08:41:34 - [app] app - [INFO] INFO - Optimierte SQLite-Engine erstellt: backend/database/myp.db +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [CONFIG] Erkannte Umgebung: +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [CONFIG] Production-Modus: +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [CONFIG] Verwende Development-Konfiguration +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [DEVELOPMENT] Aktiviere Development-Konfiguration +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Konfiguration aktiviert +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Environment: +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ Debug Mode: +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [DEVELOPMENT] ✅ SQL Echo: +2025-06-20 08:41:36 - [app] app - [INFO] INFO - SQLite für Raspberry Pi optimiert (reduzierte Cache-Größe, SD-Karten I/O) +2025-06-20 08:41:36 - [app] app - [INFO] INFO - Admin-Berechtigungen beim Start korrigiert: erstellt, aktualisiert +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] 🚀 Starte MYP -Umgebung +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] 🏢 +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] 🔒 Air-Gapped: +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Datenbank... +2025-06-20 08:41:36 - [app] app - [INFO] INFO - Datenbank mit Optimierungen initialisiert +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] ✅ Datenbank initialisiert +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Prüfe Initial-Admin... +2025-06-20 08:41:36 - [app] app - [INFO] INFO - Admin-Benutzer admin (admin@mercedes-benz.com) existiert bereits. Passwort wurde zurückgesetzt. +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] ✅ Admin-Benutzer geprüft +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Initialisiere statische Drucker... +2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 1 (192.168.0.100) +2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 2 (192.168.0.101) +2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 3 (192.168.0.102) +2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 4 (192.168.0.103) +2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 5 (192.168.0.104) +2025-06-20 08:41:36 - [app] app - [INFO] INFO - Drucker aktualisiert: Drucker 6 (192.168.0.106) +2025-06-20 08:41:36 - [app] app - [INFO] INFO - ✅ Statische Drucker-Initialisierung abgeschlossen: 0 erstellt, 6 aktualisiert +2025-06-20 08:41:36 - [app] app - [INFO] INFO - 📍 Alle Drucker sind für Standort 'TBA Marienfelde' konfiguriert +2025-06-20 08:41:36 - [app] app - [INFO] INFO - 🌐 IP-Bereich: 192.168.0.100-106 (außer .105) +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] ✅ Statische Drucker konfiguriert +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Starte Queue Manager... +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] ✅ Queue Manager gestartet +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Starte Job Scheduler... +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] ✅ Job Scheduler gestartet +2025-06-20 08:41:36 - [app] app - [INFO] INFO - [STARTUP] Initialisiere Steckdosen (alle auf 'aus' = frei)... diff --git a/backend/logs/core_system/core_system.log b/backend/logs/core_system/core_system.log index a2b4aa4ce..63217e49d 100644 --- a/backend/logs/core_system/core_system.log +++ b/backend/logs/core_system/core_system.log @@ -428,3 +428,7 @@ 2025-06-20 08:34:10 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) 2025-06-20 08:34:37 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert 2025-06-20 08:34:37 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-20 08:37:11 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-20 08:37:11 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) +2025-06-20 08:41:34 - [core_system] core_system - [INFO] INFO - ✅ Core System Management Module erfolgreich initialisiert +2025-06-20 08:41:34 - [core_system] core_system - [INFO] INFO - 📊 Massive Konsolidierung: 6 Dateien → 1 Datei (88% Reduktion) diff --git a/backend/logs/data_management/data_management.log b/backend/logs/data_management/data_management.log index e3019911b..569e06ef8 100644 --- a/backend/logs/data_management/data_management.log +++ b/backend/logs/data_management/data_management.log @@ -959,3 +959,7 @@ 2025-06-20 08:34:10 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-20 08:34:37 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert 2025-06-20 08:34:37 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 08:37:12 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-20 08:37:12 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 08:41:35 - [data_management] data_management - [INFO] INFO - ✅ Data Management Module initialisiert +2025-06-20 08:41:35 - [data_management] data_management - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) diff --git a/backend/logs/drucker_steuerung/drucker_steuerung.log b/backend/logs/drucker_steuerung/drucker_steuerung.log index 6c00dd64f..b55f9dfc7 100644 --- a/backend/logs/drucker_steuerung/drucker_steuerung.log +++ b/backend/logs/drucker_steuerung/drucker_steuerung.log @@ -67,3 +67,6 @@ 2025-06-20 08:33:21 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen 2025-06-20 08:33:42 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen 2025-06-20 08:34:11 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen +2025-06-20 08:34:39 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen +2025-06-20 08:37:13 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen +2025-06-20 08:41:36 - [drucker_steuerung] drucker_steuerung - [INFO] INFO - 🖨️ Drucker-Steuerungs-Blueprint (Backend-Kontrolle) geladen diff --git a/backend/logs/energy_monitoring/energy_monitoring.log b/backend/logs/energy_monitoring/energy_monitoring.log index 8cd19f1af..38e858646 100644 --- a/backend/logs/energy_monitoring/energy_monitoring.log +++ b/backend/logs/energy_monitoring/energy_monitoring.log @@ -784,3 +784,6 @@ 2025-06-20 08:33:21 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert 2025-06-20 08:33:42 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert 2025-06-20 08:34:11 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-20 08:34:39 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-20 08:37:13 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert +2025-06-20 08:41:36 - [energy_monitoring] energy_monitoring - [INFO] INFO - ✅ Energiemonitoring-Blueprint initialisiert diff --git a/backend/logs/hardware_integration/hardware_integration.log b/backend/logs/hardware_integration/hardware_integration.log index 83c032f22..97eaaefb9 100644 --- a/backend/logs/hardware_integration/hardware_integration.log +++ b/backend/logs/hardware_integration/hardware_integration.log @@ -3687,3 +3687,7 @@ 2025-06-20 08:34:40 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE 2025-06-20 08:34:45 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen 2025-06-20 08:34:45 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE +2025-06-20 08:37:12 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 08:37:13 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE +2025-06-20 08:41:35 - [hardware_integration] hardware_integration - [INFO] INFO - 🚀 Hardware Integration (Backend-Kontrolle) erfolgreich geladen +2025-06-20 08:41:36 - [hardware_integration] hardware_integration - [INFO] INFO - 🎯 DruckerSteuerung initialisiert - BACKEND ÜBERNIMMT KONTROLLE diff --git a/backend/logs/job_queue_system/job_queue_system.log b/backend/logs/job_queue_system/job_queue_system.log index f1fc1ce65..3d80eb9fb 100644 --- a/backend/logs/job_queue_system/job_queue_system.log +++ b/backend/logs/job_queue_system/job_queue_system.log @@ -1846,3 +1846,13 @@ 2025-06-20 08:34:36 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) 2025-06-20 08:34:37 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert 2025-06-20 08:34:37 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 08:34:40 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-20 08:37:10 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-20 08:37:12 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 08:37:12 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 08:37:13 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) +2025-06-20 08:38:13 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-20 08:38:13 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestoppt (Legacy-Kompatibilität) +2025-06-20 08:41:35 - [job_queue_system] job_queue_system - [INFO] INFO - ✅ Job & Queue System Module initialisiert +2025-06-20 08:41:35 - [job_queue_system] job_queue_system - [INFO] INFO - 📊 MASSIVE Konsolidierung: 4 Dateien → 1 Datei (75% Reduktion) +2025-06-20 08:41:36 - [job_queue_system] job_queue_system - [INFO] INFO - Queue Manager gestartet (Legacy-Kompatibilität) diff --git a/backend/logs/monitoring_analytics/monitoring_analytics.log b/backend/logs/monitoring_analytics/monitoring_analytics.log index e8b83ceb3..02a807f75 100644 --- a/backend/logs/monitoring_analytics/monitoring_analytics.log +++ b/backend/logs/monitoring_analytics/monitoring_analytics.log @@ -947,3 +947,9 @@ 2025-06-20 08:33:42 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-20 08:34:11 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert 2025-06-20 08:34:11 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 08:34:39 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-20 08:34:39 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 08:37:13 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-20 08:37:13 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 08:41:36 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - ✅ Monitoring & Analytics Module initialisiert +2025-06-20 08:41:36 - [monitoring_analytics] monitoring_analytics - [INFO] INFO - 📊 MASSIVE Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) diff --git a/backend/logs/permissions/permissions.log b/backend/logs/permissions/permissions.log index a135e595b..72bb23a51 100644 --- a/backend/logs/permissions/permissions.log +++ b/backend/logs/permissions/permissions.log @@ -505,3 +505,6 @@ WHERE users.role = ?] 2025-06-20 08:33:21 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert 2025-06-20 08:33:42 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert 2025-06-20 08:34:11 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-20 08:34:39 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-20 08:37:13 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert +2025-06-20 08:41:36 - [permissions] permissions - [INFO] INFO - Admin-Berechtigungen korrigiert: 0 erstellt, 0 aktualisiert diff --git a/backend/logs/scheduler/scheduler.log b/backend/logs/scheduler/scheduler.log index f849434d0..47e2441bf 100644 --- a/backend/logs/scheduler/scheduler.log +++ b/backend/logs/scheduler/scheduler.log @@ -2658,3 +2658,39 @@ 2025-06-20 08:34:43 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar 2025-06-20 08:34:45 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True 2025-06-20 08:34:46 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar +2025-06-20 08:34:49 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar +2025-06-20 08:34:52 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar +2025-06-20 08:34:55 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar +2025-06-20 08:34:58 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar +2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN +2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen +2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0 +2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6 +2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0 +2025-06-20 08:34:58 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden! +2025-06-20 08:34:58 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 08:37:12 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-20 08:37:13 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-20 08:37:13 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-20 08:37:13 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart... +2025-06-20 08:37:13 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen... +2025-06-20 08:37:16 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 1: Steckdose 192.168.0.100 nicht erreichbar +2025-06-20 08:37:19 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 2: Steckdose 192.168.0.101 nicht erreichbar +2025-06-20 08:37:22 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 3: Steckdose 192.168.0.102 nicht erreichbar +2025-06-20 08:37:25 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 4: Steckdose 192.168.0.103 nicht erreichbar +2025-06-20 08:37:28 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 5: Steckdose 192.168.0.104 nicht erreichbar +2025-06-20 08:37:31 - [scheduler] scheduler - [WARNING] WARNING - 📡 Drucker 6: Steckdose 192.168.0.106 nicht erreichbar +2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - 🎯 STECKDOSEN-INITIALISIERUNG ABGESCHLOSSEN +2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - 📊 Gesamt: 6 Steckdosen +2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - ✅ Erfolgreich: 0 +2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - 📡 Nicht erreichbar: 6 +2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - ❌ Fehlgeschlagen: 0 +2025-06-20 08:37:31 - [scheduler] scheduler - [WARNING] WARNING - ⚠️ KEINE Steckdose konnte initialisiert werden! +2025-06-20 08:37:31 - [scheduler] scheduler - [INFO] INFO - ============================================================ +2025-06-20 08:41:35 - [scheduler] scheduler - [INFO] INFO - Task check_jobs registriert: Intervall 30s, Enabled: True +2025-06-20 08:41:36 - [scheduler] scheduler - [INFO] INFO - Scheduler-Thread gestartet +2025-06-20 08:41:36 - [scheduler] scheduler - [INFO] INFO - Scheduler gestartet +2025-06-20 08:41:36 - [scheduler] scheduler - [INFO] INFO - 🚀 Starte Steckdosen-Initialisierung beim Systemstart... +2025-06-20 08:41:36 - [scheduler] scheduler - [INFO] INFO - 🔍 Prüfe 6 konfigurierte Steckdosen... diff --git a/backend/logs/security_suite/security_suite.log b/backend/logs/security_suite/security_suite.log index 65c98633c..1c73c611f 100644 --- a/backend/logs/security_suite/security_suite.log +++ b/backend/logs/security_suite/security_suite.log @@ -1434,3 +1434,9 @@ 2025-06-20 08:34:37 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert 2025-06-20 08:34:37 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) 2025-06-20 08:34:39 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-20 08:37:12 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-20 08:37:12 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 08:37:13 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert +2025-06-20 08:41:35 - [security_suite] security_suite - [INFO] INFO - ✅ Security Suite Module initialisiert +2025-06-20 08:41:35 - [security_suite] security_suite - [INFO] INFO - 📊 Massive Konsolidierung: 3 Dateien → 1 Datei (67% Reduktion) +2025-06-20 08:41:36 - [security_suite] security_suite - [INFO] INFO - 🔒 Security Suite initialisiert diff --git a/backend/logs/startup/startup.log b/backend/logs/startup/startup.log index 479db21eb..bf81418a1 100644 --- a/backend/logs/startup/startup.log +++ b/backend/logs/startup/startup.log @@ -3754,3 +3754,30 @@ 2025-06-20 08:34:11 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert 2025-06-20 08:34:11 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert 2025-06-20 08:34:11 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-20 08:34:39 - [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-20 08:34:39 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T08:34:39.649392 +2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-20 08:34:39 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-20 08:37:13 - [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-20 08:37:13 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T08:37:13.209278 +2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-20 08:37:13 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - ================================================== +2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - [START] MYP Platform Backend wird gestartet... +2025-06-20 08:41:36 - [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-20 08:41:36 - [startup] startup - [INFO] INFO - 💻 Betriebssystem: nt (win32) +2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - 📁 Arbeitsverzeichnis: C:\Users\TTOMCZA.EMEA\Dev\Projektarbeit-MYP\backend +2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - ⏰ Startzeit: 2025-06-20T08:41:36.142283 +2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - 🪟 Windows-Modus: Aktiviert +2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - 🔒 Windows-sichere Log-Rotation: Aktiviert +2025-06-20 08:41:36 - [startup] startup - [INFO] INFO - ================================================== diff --git a/backend/logs/utilities_collection/utilities_collection.log b/backend/logs/utilities_collection/utilities_collection.log index fcc14554d..33b22a236 100644 --- a/backend/logs/utilities_collection/utilities_collection.log +++ b/backend/logs/utilities_collection/utilities_collection.log @@ -1245,3 +1245,7 @@ 2025-06-20 08:34:37 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) 2025-06-20 08:34:45 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert 2025-06-20 08:34:45 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 08:37:12 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 08:37:12 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) +2025-06-20 08:41:34 - [utilities_collection] utilities_collection - [INFO] INFO - ✅ Utilities Collection initialisiert +2025-06-20 08:41:34 - [utilities_collection] utilities_collection - [INFO] INFO - 🚨 ALLERLETZTE MEGA-Konsolidierung: 12+ Dateien → 1 Datei (90%+ Reduktion) diff --git a/backend/logs/windows_fixes/windows_fixes.log b/backend/logs/windows_fixes/windows_fixes.log index add855648..4133ed2dc 100644 --- a/backend/logs/windows_fixes/windows_fixes.log +++ b/backend/logs/windows_fixes/windows_fixes.log @@ -431,3 +431,7 @@ 2025-06-20 08:34:10 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet 2025-06-20 08:34:37 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... 2025-06-20 08:34:37 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-20 08:37:11 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-20 08:37:11 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet +2025-06-20 08:41:34 - [windows_fixes] windows_fixes - [INFO] INFO - 🔧 Wende Windows-spezifische Fixes an... +2025-06-20 08:41:34 - [windows_fixes] windows_fixes - [INFO] INFO - ✅ Alle Windows-Fixes erfolgreich angewendet diff --git a/backend/static/css/performance-optimized-minimal.css b/backend/static/css/performance-optimized-minimal.css new file mode 100644 index 000000000..c8b5e05a3 --- /dev/null +++ b/backend/static/css/performance-optimized-minimal.css @@ -0,0 +1,90 @@ +/** + * Minimal-invasive Performance-Optimierungen für MYP Platform + * Behält den ursprünglichen Style bei, reduziert nur CPU-intensive Operationen + */ + +/* Reduzierte Animationen ohne Style-Verlust */ +@media (prefers-reduced-motion: no-preference) { + /* Nur längere Animationen verkürzen */ + .animate-pulse { + animation-duration: 1s !important; + } + + /* Komplexe cubic-bezier durch einfache ease ersetzen */ + .glass, .mobile-menu { + transition-timing-function: ease !important; + transition-duration: 0.2s !important; + } +} + +/* Glassmorphismus-Optimierung - nur bei schwachen Geräten */ +@media (max-width: 768px) { + .glass { + backdrop-filter: blur(8px) !important; + -webkit-backdrop-filter: blur(8px) !important; + } +} + +/* Performance-freundliche Hover-Effekte */ +.hover-performance { + transition: opacity 0.15s ease; +} + +.hover-performance:hover { + opacity: 0.85; +} + +/* Optimierte Loading-States */ +.loading-optimized { + background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.2) 50%, transparent 100%); + background-size: 200% 100%; + animation: shimmer 1.5s ease-in-out infinite; +} + +@keyframes shimmer { + 0% { background-position: 200% 0; } + 100% { background-position: -200% 0; } +} + +/* Mobile-optimierte Glassmorphismus-Reduktion */ +@media (max-device-width: 768px), (hover: none) { + .glass { + backdrop-filter: blur(4px) !important; + -webkit-backdrop-filter: blur(4px) !important; + } +} + +/* FontAwesome-Animationen reduzieren */ +.fa-spin { + animation-duration: 1s !important; +} + +.fa-pulse { + animation-duration: 1.5s !important; +} + +/* Reduzierte Transform-Animationen */ +.scale-hover { + transition: transform 0.15s ease; +} + +.scale-hover:hover { + transform: scale(1.02); +} + +/* Performance-bewusste Box-Shadows */ +.shadow-performance { + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); +} + +.shadow-performance-hover:hover { + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); +} + +/* Conditional Animation Disabling for Performance */ +@media (max-width: 768px) and (max-height: 1024px) { + * { + animation-duration: 0.3s !important; + transition-duration: 0.15s !important; + } +} \ No newline at end of file diff --git a/backend/static/css/performance-optimized-minimal.min.css b/backend/static/css/performance-optimized-minimal.min.css new file mode 100644 index 000000000..fde0b0c97 --- /dev/null +++ b/backend/static/css/performance-optimized-minimal.min.css @@ -0,0 +1 @@ +@media (prefers-reduced-motion:no-preference){.animate-pulse{animation-duration:1s!important;}.glass,.mobile-menu{transition-timing-function:ease!important;transition-duration:0.2s!important;}}@media (max-width:768px){.glass{backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;}}.hover-performance{transition:opacity 0.15s ease;}.hover-performance:hover{opacity:0.85;}.loading-optimized{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,0.2) 50%,transparent 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;}@keyframes shimmer{0%{background-position:200% 0;}100%{background-position:-200% 0;}}@media (max-device-width:768px),(hover:none){.glass{backdrop-filter:blur(4px)!important;-webkit-backdrop-filter:blur(4px)!important;}}.fa-spin{animation-duration:1s!important;}.fa-pulse{animation-duration:1.5s!important;}.scale-hover{transition:transform 0.15s ease;}.scale-hover:hover{transform:scale(1.02);}.shadow-performance{box-shadow:0 2px 8px rgba(0,0,0,0.1);}.shadow-performance-hover:hover{box-shadow:0 4px 12px rgba(0,0,0,0.15);}@media (max-width:768px) and (max-height:1024px){*{animation-duration:0.3s!important;transition-duration:0.15s!important;}} \ No newline at end of file diff --git a/backend/static/js/glassmorphism-notifications.js b/backend/static/js/glassmorphism-notifications.js index d7b8e31e7..e847ac954 100644 --- a/backend/static/js/glassmorphism-notifications.js +++ b/backend/static/js/glassmorphism-notifications.js @@ -8,7 +8,7 @@ class GlassmorphismNotificationSystem { this.notifications = new Map(); this.toastCounter = 0; this.soundEnabled = localStorage.getItem('myp-notification-sound') !== 'false'; - this.animationsEnabled = !window.matchMedia('(prefers-reduced-motion: reduce)').matches; + this.animationsEnabled = window.matchMedia('(prefers-reduced-motion: no-preference)').matches && !this.isLowPerformanceDevice(); // Callback-Registry für Actions hinzufügen this.actionCallbacks = new Map(); @@ -29,6 +29,14 @@ class GlassmorphismNotificationSystem { console.log('🎨 Glassmorphism Notification System initialisiert'); } + isLowPerformanceDevice() { + return ( + navigator.hardwareConcurrency <= 2 || + navigator.deviceMemory <= 2 || + /Android|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent) + ); + } + createToastContainer() { if (!document.getElementById('glassmorphism-toast-container')) { const container = document.createElement('div'); diff --git a/backend/static/js/performance-enhancements.js b/backend/static/js/performance-enhancements.js new file mode 100644 index 000000000..ed3ff49b2 --- /dev/null +++ b/backend/static/js/performance-enhancements.js @@ -0,0 +1,104 @@ +/** + * Minimal-invasive Performance-Optimierungen für MYP Platform + * Behält alle Funktionen bei, optimiert nur die Performance + */ + +(function() { + 'use strict'; + + // Detektiere schwache Geräte + const isLowPerformanceDevice = () => { + return ( + navigator.hardwareConcurrency <= 2 || + navigator.deviceMemory <= 2 || + /Android|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent) + ); + }; + + // Reduziere Animationen nur bei schwachen Geräten + if (isLowPerformanceDevice()) { + document.documentElement.style.setProperty('--animation-speed', '0.5'); + document.documentElement.classList.add('low-performance'); + } + + // Optimierte Intersection Observer für bessere Performance + const observerOptions = { + rootMargin: '50px', + threshold: 0.1 + }; + + // Lazy Loading für schwere Elemente + const lazyElements = document.querySelectorAll('[data-lazy]'); + if (lazyElements.length && 'IntersectionObserver' in window) { + const lazyObserver = new IntersectionObserver((entries) => { + entries.forEach(entry => { + if (entry.isIntersecting) { + const element = entry.target; + element.classList.add('loaded'); + lazyObserver.unobserve(element); + } + }); + }, observerOptions); + + lazyElements.forEach(el => lazyObserver.observe(el)); + } + + // Debounced Resize Handler für bessere Performance + let resizeTimeout; + window.addEventListener('resize', () => { + clearTimeout(resizeTimeout); + resizeTimeout = setTimeout(() => { + // Nur bei größeren Änderungen reagieren + document.dispatchEvent(new CustomEvent('optimizedResize')); + }, 150); + }); + + // Optimierte Animation-Callbacks + let animationFrame; + const scheduleAnimation = (callback) => { + if (animationFrame) { + cancelAnimationFrame(animationFrame); + } + animationFrame = requestAnimationFrame(callback); + }; + + // Performance-Monitor (nur in Development) + if (window.location.hostname === 'localhost' || window.location.hostname === '127.0.0.1') { + let performanceWarnings = 0; + const maxWarnings = 5; + + const checkPerformance = () => { + if (performance.now() > 16 && performanceWarnings < maxWarnings) { + console.warn('🐌 Performance: Frame took longer than 16ms'); + performanceWarnings++; + } + }; + + // Performance-Monitoring nur in Development + setInterval(checkPerformance, 1000); + } + + // Graceful Degradation für ältere Browser + if (!window.CSS || !CSS.supports || !CSS.supports('backdrop-filter', 'blur(1px)')) { + document.documentElement.classList.add('no-backdrop-filter'); + } + + // Memory-Optimierung für Event Listeners + const eventOptions = { passive: true }; + + // Optimierte Scroll-Handler + let scrollTimeout; + window.addEventListener('scroll', () => { + clearTimeout(scrollTimeout); + scrollTimeout = setTimeout(() => { + document.dispatchEvent(new CustomEvent('optimizedScroll')); + }, 10); + }, eventOptions); + + console.log('✨ Performance-Optimierungen geladen:', { + lowPerformance: isLowPerformanceDevice(), + backropFilter: CSS.supports('backdrop-filter', 'blur(1px)'), + memory: navigator.deviceMemory || 'unknown', + cores: navigator.hardwareConcurrency || 'unknown' + }); +})(); \ No newline at end of file diff --git a/backend/static/js/performance-enhancements.min.js b/backend/static/js/performance-enhancements.min.js new file mode 100644 index 000000000..a5b6379a3 --- /dev/null +++ b/backend/static/js/performance-enhancements.min.js @@ -0,0 +1 @@ +(function(){'use strict';const e=()=>navigator.hardwareConcurrency<=2||navigator.deviceMemory<=2||/Android|iPhone|iPad|iPod|BlackBerry|Opera Mini|IEMobile|WPDesktop/i.test(navigator.userAgent);e()&&(document.documentElement.style.setProperty('--animation-speed','0.5'),document.documentElement.classList.add('low-performance'));const t={rootMargin:'50px',threshold:0.1},n=document.querySelectorAll('[data-lazy]');if(n.length&&'IntersectionObserver'in window){const o=new IntersectionObserver(e=>{e.forEach(e=>{e.isIntersecting&&(e.target.classList.add('loaded'),o.unobserve(e.target))})},t);n.forEach(e=>o.observe(e))}let r;window.addEventListener('resize',()=>{clearTimeout(r),r=setTimeout(()=>{document.dispatchEvent(new CustomEvent('optimizedResize'))},150)});let i;const s=e=>{i&&cancelAnimationFrame(i),i=requestAnimationFrame(e)};if('localhost'===window.location.hostname||'127.0.0.1'===window.location.hostname){let a=0;const c=()=>{performance.now()>16&&a<5&&(console.warn('🐌 Performance: Frame took longer than 16ms'),a++)};setInterval(c,1000)}window.CSS&&CSS.supports&&CSS.supports('backdrop-filter','blur(1px)')||document.documentElement.classList.add('no-backdrop-filter');const l={passive:!0};let d;window.addEventListener('scroll',()=>{clearTimeout(d),d=setTimeout(()=>{document.dispatchEvent(new CustomEvent('optimizedScroll'))},10)},l),console.log('✨ Performance-Optimierungen geladen:',{lowPerformance:e(),backropFilter:CSS.supports('backdrop-filter','blur(1px)'),memory:navigator.deviceMemory||'unknown',cores:navigator.hardwareConcurrency||'unknown'})})(); \ No newline at end of file diff --git a/backend/templates/base.html b/backend/templates/base.html index e6cc5655c..449707d95 100644 --- a/backend/templates/base.html +++ b/backend/templates/base.html @@ -24,6 +24,9 @@ + + +