📝 "Refactor backend files
This commit is contained in:
parent
40ca104860
commit
66621f1539
@ -1984,9 +1984,8 @@ def create_user_api():
|
||||
new_user = User(
|
||||
username=data["username"],
|
||||
email=data["email"],
|
||||
first_name=data.get("first_name", ""),
|
||||
last_name=data.get("last_name", ""),
|
||||
is_admin=data.get("is_admin", False),
|
||||
name=data.get("name", ""),
|
||||
role="admin" if data.get("is_admin", False) else "user",
|
||||
created_at=datetime.now()
|
||||
)
|
||||
|
||||
@ -2000,8 +1999,8 @@ def create_user_api():
|
||||
"id": new_user.id,
|
||||
"username": new_user.username,
|
||||
"email": new_user.email,
|
||||
"first_name": new_user.first_name,
|
||||
"last_name": new_user.last_name,
|
||||
"name": new_user.name,
|
||||
"role": new_user.role,
|
||||
"is_admin": new_user.is_admin,
|
||||
"created_at": new_user.created_at.isoformat()
|
||||
}
|
||||
@ -2326,9 +2325,8 @@ def admin_create_user_form():
|
||||
new_user = User(
|
||||
username=username,
|
||||
email=email,
|
||||
first_name=name.split(' ')[0] if name else "",
|
||||
last_name=" ".join(name.split(' ')[1:]) if name and ' ' in name else "",
|
||||
is_admin=(role == "admin"),
|
||||
name=name,
|
||||
role=role,
|
||||
created_at=datetime.now()
|
||||
)
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
1
backend/docs/ROADMAP_AKTUALISIERUNG.md
Normal file
1
backend/docs/ROADMAP_AKTUALISIERUNG.md
Normal file
@ -0,0 +1 @@
|
||||
|
@ -79245,3 +79245,434 @@ WHERE users.id = ?
|
||||
2025-06-01 01:16:28 - myp.app - INFO - Admin-Check für Funktion admin_add_user_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 01:16:28 - myp.app - INFO - Admin-Benutzer-Hinzufügen-Seite aufgerufen von User 1
|
||||
2025-06-01 01:16:28 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:16:28] "GET /admin/users/add HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:10 - myp.app - INFO - Admin-Check für Funktion admin_add_user_page: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 01:19:10 - myp.app - INFO - Admin-Benutzer-Hinzufügen-Seite aufgerufen von User 1
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "GET /admin/users/add HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "GET /static/js/ui-components.js HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "GET /static/js/optimization-features.js HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "GET /static/js/debug-fix.js HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "GET /static/js/global-refresh-functions.js HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:19:10 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:10 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:19:10 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "GET /api/printers/monitor/live-status?use_cache=true HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:10 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:10] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:11 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:11] "POST /api/session/heartbeat HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "GET /admin-dashboard?tab=users HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/admin.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/admin-system.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/js/admin-live.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "GET /static/js/admin-dashboard.js HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:15 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:19:15 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:15 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:15 - myp.app - INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "GET /api/admin/system-health HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:15 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "GET /api/printers/monitor/live-status?use_cache=true HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "GET /api/stats HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "GET /api/stats HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:15 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:15] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:16 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:16] "POST /api/session/heartbeat HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:25 - myp.app - INFO - Admin-Check für Funktion api_admin_stats_live: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 01:19:26 - myp.app - WARNING - System-Performance-Metriken nicht verfügbar: argument 1 (impossible<bad format char>)
|
||||
2025-06-01 01:19:26 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:26] "GET /api/admin/stats/live HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:35 - myp.app - INFO - Admin-Check für Funktion api_admin_stats_live: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 01:19:36 - myp.app - WARNING - System-Performance-Metriken nicht verfügbar: argument 1 (impossible<bad format char>)
|
||||
2025-06-01 01:19:36 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:36] "GET /api/admin/stats/live HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "GET /calendar HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/fullcalendar/main.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/fullcalendar/core.min.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/fullcalendar/timegrid.min.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/fullcalendar/daygrid.min.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/fullcalendar/interaction.min.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/fullcalendar/list.min.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - myp.calendar - INFO - 📅 Kalender-Events abgerufen: 0 Einträge für Zeitraum 2025-06-01 00:00:00 bis 2025-06-08 00:00:00
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "GET /api/calendar/events?start=2025-06-01T00:00:00%2B02:00&end=2025-06-08T00:00:00%2B02:00 HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:38 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:38] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "GET /stats HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "GET /jobs HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:39 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:39] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:40 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:40] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:40 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:40] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:40 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:40] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:40 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:40] "GET /api/jobs HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:40 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:40] "GET /api/printers HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:40 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:40] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:40 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:40] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "POST /api/session/heartbeat HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "GET /printers HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "GET /api/printers HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:41 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:19:41 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:19:41 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:41 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "GET /api/printers/monitor/live-status?use_cache=false HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "GET /api/printers HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:41 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:41] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:42 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:42] "POST /api/session/heartbeat HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "GET /admin-dashboard HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/admin.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/admin-system.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/admin-live.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/admin-dashboard.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:44 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:19:44 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:19:44 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:44 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:44 - myp.app - INFO - Admin-Check für Funktion api_admin_system_health: User authenticated: True, User ID: 1, Is Admin: True
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "GET /api/printers/monitor/live-status?use_cache=true HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "GET /api/admin/system-health HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:44 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:44] "GET /api/stats HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "GET /api/stats HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "GET /requests/overview HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:45 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:45] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:46 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:46] "POST /api/session/heartbeat HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "GET /request HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:47 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:47] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:48 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:48] "POST /api/session/heartbeat HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "GET /dashboard HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:19:50 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:50 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:50 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "GET /api/printers/monitor/live-status?use_cache=true HTTP/1.1" 200 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:50 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:50] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:19:51 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:19:51] "POST /api/session/heartbeat HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:20 - myp.app - INFO - Dashboard-Refresh angefordert von User 1
|
||||
2025-06-01 01:20:20 - myp.app - INFO - Dashboard-Refresh angefordert von User 1
|
||||
2025-06-01 01:20:20 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:20:20 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:20] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:20 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:20:20 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:20:20 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:20:20 - myp.app - INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 0, 'pending_jobs': 0, 'success_rate': 0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}
|
||||
2025-06-01 01:20:20 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:20] "GET /api/printers/monitor/live-status?use_cache=true HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:20 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:20] "POST /api/dashboard/refresh HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:20 - myp.app - INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 0, 'pending_jobs': 0, 'success_rate': 0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}
|
||||
2025-06-01 01:20:20 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:20] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:20 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:20] "POST /api/dashboard/refresh HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "GET /dashboard HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:21 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:21] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:22 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:22] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:22 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:20:22 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:22] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:22 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:20:22 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:22] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:22 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:22] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:22 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:20:22 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:20:22 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:22] "GET /api/printers/monitor/live-status?use_cache=true HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:22 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:22] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:22 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:22] "[36mGET /static/favicon.svg HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:22 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:22] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:23 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:23] "POST /api/session/heartbeat HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:52 - myp.app - INFO - Dashboard-Refresh angefordert von User 1
|
||||
2025-06-01 01:20:52 - myp.app - INFO - Dashboard-Refresh angefordert von User 1
|
||||
2025-06-01 01:20:52 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:20:52 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:20:52 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:20:52 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:52] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:52 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:20:52 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:52] "GET /api/printers/monitor/live-status?use_cache=true HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:52 - myp.app - INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 0, 'pending_jobs': 0, 'success_rate': 0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}
|
||||
2025-06-01 01:20:52 - myp.app - INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 0, 'pending_jobs': None, 'success_rate': 0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}
|
||||
2025-06-01 01:20:52 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:52] "POST /api/dashboard/refresh HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:52 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:52] "POST /api/dashboard/refresh HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:52 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:52] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "GET /dashboard HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:53 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:53 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:53 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "GET /api/printers/monitor/live-status?use_cache=true HTTP/1.1" 200 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/favicon.svg HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:53 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:53] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:20:54 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:20:54] "POST /api/session/heartbeat HTTP/1.1" 200 -
|
||||
2025-06-01 01:21:06 - myp.app - INFO - Dashboard-Refresh angefordert von User 1
|
||||
2025-06-01 01:21:06 - myp.app - INFO - Dashboard-Refresh angefordert von User 1
|
||||
2025-06-01 01:21:06 - myp.app - INFO - Dashboard-Refresh angefordert von User 1
|
||||
2025-06-01 01:21:06 - myp.app - ERROR - Fehler beim Abrufen der Dashboard-Statistiken: '>' not supported between instances of 'NoneType' and 'int'
|
||||
2025-06-01 01:21:06 - myp.app - INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 0, 'pending_jobs': 0, 'success_rate': 0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}
|
||||
2025-06-01 01:21:06 - myp.app - INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 0, 'pending_jobs': 0, 'success_rate': 0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 0, 'online_printers': 0, 'offline_printers': 0}
|
||||
2025-06-01 01:21:06 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:06] "POST /api/dashboard/refresh HTTP/1.1" 200 -
|
||||
2025-06-01 01:21:06 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:06] "POST /api/dashboard/refresh HTTP/1.1" 200 -
|
||||
2025-06-01 01:21:06 - myp.app - INFO - Dashboard-Refresh erfolgreich: {'active_jobs': 0, 'available_printers': 0, 'total_jobs': 0, 'pending_jobs': 0, 'success_rate': 0, 'completed_jobs': 0, 'failed_jobs': 0, 'cancelled_jobs': 0, 'total_users': 1, 'online_printers': 0, 'offline_printers': 0}
|
||||
2025-06-01 01:21:06 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:06] "POST /api/dashboard/refresh HTTP/1.1" 200 -
|
||||
2025-06-01 01:21:07 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:07] "GET /dashboard HTTP/1.1" 200 -
|
||||
2025-06-01 01:21:07 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:07] "[36mGET /static/css/tailwind.min.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:07 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:07] "[36mGET /static/css/optimization-animations.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:07 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:07] "[36mGET /static/css/components.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:07 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:07] "[36mGET /static/css/professional-theme.css HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:07 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:07] "[36mGET /static/js/ui-components.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:07 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:07] "[36mGET /static/js/offline-app.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:07 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:07] "[36mGET /static/js/optimization-features.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:07 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:07] "[36mGET /static/js/debug-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:07 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:07] "[36mGET /static/js/job-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:07 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:07] "[36mGET /static/js/dark-mode-fix.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "[36mGET /static/js/global-refresh-functions.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "[36mGET /static/js/event-handlers.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "[36mGET /static/js/csp-violation-handler.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "[36mGET /static/js/printer_monitor.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "[36mGET /static/js/notifications.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "[36mGET /static/js/session-manager.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "[36mGET /static/js/auto-logout.js HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:08 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "GET /api/notifications HTTP/1.1" 200 -
|
||||
2025-06-01 01:21:08 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "GET /api/session/status HTTP/1.1" 200 -
|
||||
2025-06-01 01:21:08 - myp.printer_monitor - INFO - 🔄 Aktualisiere Live-Druckerstatus...
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "GET /api/user/settings HTTP/1.1" 200 -
|
||||
2025-06-01 01:21:08 - myp.printer_monitor - INFO - ℹ️ Keine aktiven Drucker gefunden
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "GET /api/printers/monitor/live-status?use_cache=true HTTP/1.1" 200 -
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "[36mGET /static/favicon.svg HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "[36mGET /static/manifest.json HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:08 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:08] "[36mGET /static/icons/icon-144x144.png HTTP/1.1[0m" 304 -
|
||||
2025-06-01 01:21:09 - werkzeug - INFO - 127.0.0.1 - - [01/Jun/2025 01:21:09] "POST /api/session/heartbeat HTTP/1.1" 200 -
|
||||
2025-06-01 01:21:19 - myp.app - WARNING - 🛑 Signal 2 empfangen - fahre System herunter...
|
||||
2025-06-01 01:21:19 - myp.app - INFO - 🔄 Beende Queue Manager...
|
||||
2025-06-01 01:21:20 - myp.app - INFO - Job-Scheduler gestoppt
|
||||
2025-06-01 01:21:20 - myp.app - INFO - 💾 Führe robustes Datenbank-Cleanup durch...
|
||||
2025-06-01 01:21:20 - myp.database_cleanup - INFO - 🧹 Starte umfassendes Datenbank-Cleanup...
|
||||
2025-06-01 01:21:20 - myp.database_cleanup - INFO - 📝 Schritt 1: Schließe alle Datenbankverbindungen...
|
||||
2025-06-01 01:21:20 - myp.database_cleanup - INFO - 🔄 Schließe alle aktiven Datenbankverbindungen...
|
||||
|
@ -1815,3 +1815,11 @@ information about how to avoid this problem.
|
||||
2025-06-01 01:02:52 - myp.app - ERROR - Fehler beim Abrufen des System-Status: argument 1 (impossible<bad format char>)
|
||||
2025-06-01 01:03:02 - myp.app - ERROR - Fehler beim Abrufen des System-Status: argument 1 (impossible<bad format char>)
|
||||
2025-06-01 01:03:02 - myp.app - ERROR - Fehler beim Abrufen der Live-Statistiken: argument 1 (impossible<bad format char>)
|
||||
2025-06-01 01:21:06 - myp.app - ERROR - Fehler beim Abrufen der Dashboard-Statistiken: '>' not supported between instances of 'NoneType' and 'int'
|
||||
2025-06-01 01:23:19 - myp.app - ERROR - Fehler beim Abrufen der Dashboard-Statistiken: (sqlite3.InterfaceError) bad parameter or other API misuse
|
||||
[SQL: SELECT count(*) AS count_1
|
||||
FROM (SELECT printers.id AS printers_id, printers.name AS printers_name, printers.model AS printers_model, printers.location AS printers_location, printers.ip_address AS printers_ip_address, printers.mac_address AS printers_mac_address, printers.plug_ip AS printers_plug_ip, printers.plug_username AS printers_plug_username, printers.plug_password AS printers_plug_password, printers.status AS printers_status, printers.active AS printers_active, printers.created_at AS printers_created_at, printers.last_checked AS printers_last_checked
|
||||
FROM printers
|
||||
WHERE printers.active = 1 AND printers.status = ?) AS anon_1]
|
||||
[parameters: ('online',)]
|
||||
(Background on this error at: https://sqlalche.me/e/20/rvf5)
|
||||
|
@ -19,3 +19,4 @@
|
||||
2025-06-01 01:15:44 - myp.jobs - INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||
2025-06-01 01:16:03 - myp.jobs - INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||
2025-06-01 01:16:18 - myp.jobs - INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||
2025-06-01 01:19:40 - myp.jobs - INFO - Jobs abgerufen: 0 von 0 (Seite 1)
|
||||
|
@ -2659,3 +2659,61 @@
|
||||
2025-06-01 01:16:03 - myp.printers - INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
|
||||
2025-06-01 01:16:27 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:16:27 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:19:10 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:19:10 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:19:15 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:19:15 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:19:40 - myp.printers - INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
|
||||
2025-06-01 01:19:41 - myp.printers - INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
|
||||
2025-06-01 01:19:41 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:19:41 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:19:41 - myp.printers - INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
|
||||
2025-06-01 01:19:44 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:19:44 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:19:50 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:19:50 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:20:20 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:20:20 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:20:22 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:20:22 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:20:52 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:20:52 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:20:53 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:20:53 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:21:08 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:21:08 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:22:59 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:22:59 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:23:20 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:23:20 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:23:27 - myp.printers - INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
|
||||
2025-06-01 01:23:27 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:23:27 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:23:27 - myp.printers - INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
|
||||
2025-06-01 01:23:29 - myp.printers - INFO - Schnelles Laden abgeschlossen: 6 Drucker geladen (ohne Status-Check)
|
||||
2025-06-01 01:23:43 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:23:43 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:23:47 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:23:47 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:23:54 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:23:54 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:24:04 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:24:04 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:24:06 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:24:06 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:24:36 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:24:36 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:25:06 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:25:06 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:25:36 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:25:36 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:26:00 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:26:00 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:26:33 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:26:33 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:26:35 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:26:35 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:26:45 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:26:45 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
2025-06-01 01:26:50 - myp.printers - INFO - 🔄 Live-Status-Abfrage von Benutzer Administrator (ID: 1)
|
||||
2025-06-01 01:26:50 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
||||
|
@ -2754,3 +2754,8 @@
|
||||
2025-06-01 01:13:16 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||
2025-06-01 01:13:17 - myp.scheduler - INFO - Scheduler-Thread gestartet
|
||||
2025-06-01 01:13:17 - myp.scheduler - INFO - Scheduler gestartet
|
||||
2025-06-01 01:21:20 - myp.scheduler - INFO - Scheduler-Thread beendet
|
||||
2025-06-01 01:21:20 - myp.scheduler - INFO - Scheduler gestoppt
|
||||
2025-06-01 01:22:56 - myp.scheduler - INFO - Task check_jobs registriert: Intervall 30s, Enabled: True
|
||||
2025-06-01 01:22:57 - myp.scheduler - INFO - Scheduler-Thread gestartet
|
||||
2025-06-01 01:22:57 - myp.scheduler - INFO - Scheduler gestartet
|
||||
|
2
backend/static/css/tailwind.min.css
vendored
2
backend/static/css/tailwind.min.css
vendored
File diff suppressed because one or more lines are too long
@ -265,19 +265,65 @@ async function loadStats() {
|
||||
const response = await fetch('/api/stats');
|
||||
const data = await response.json();
|
||||
|
||||
// Update dashboard counters
|
||||
document.getElementById('total-users-count').textContent = data.total_users || 0;
|
||||
document.getElementById('total-printers-count').textContent = data.total_printers || 0;
|
||||
document.getElementById('active-jobs-count').textContent = data.active_jobs || 0;
|
||||
// Update dashboard counters mit robusten ID-Checks
|
||||
const userCountEl = document.getElementById('live-users-count');
|
||||
if (userCountEl) {
|
||||
userCountEl.textContent = data.total_users || 0;
|
||||
}
|
||||
|
||||
const printerCountEl = document.getElementById('live-printers-count');
|
||||
if (printerCountEl) {
|
||||
printerCountEl.textContent = data.total_printers || 0;
|
||||
}
|
||||
|
||||
const activeJobsEl = document.getElementById('live-jobs-active');
|
||||
if (activeJobsEl) {
|
||||
activeJobsEl.textContent = data.active_jobs || 0;
|
||||
}
|
||||
|
||||
// Update scheduler status
|
||||
updateSchedulerStatusIndicator(data.scheduler_status || false);
|
||||
|
||||
// Update additional stats if elements exist
|
||||
const onlinePrintersEl = document.getElementById('live-printers-online');
|
||||
if (onlinePrintersEl) {
|
||||
onlinePrintersEl.textContent = `${data.online_printers || 0} online`;
|
||||
}
|
||||
|
||||
const queuedJobsEl = document.getElementById('live-jobs-queued');
|
||||
if (queuedJobsEl) {
|
||||
queuedJobsEl.textContent = `${data.queued_jobs || 0} in Warteschlange`;
|
||||
}
|
||||
|
||||
const successRateEl = document.getElementById('live-success-rate');
|
||||
if (successRateEl) {
|
||||
successRateEl.textContent = `${data.success_rate || 0}%`;
|
||||
}
|
||||
|
||||
// Update progress bars if they exist
|
||||
updateProgressBar('users-progress', data.total_users, 10);
|
||||
updateProgressBar('printers-progress', data.online_printers, data.total_printers);
|
||||
updateProgressBar('jobs-progress', data.active_jobs, 10);
|
||||
updateProgressBar('success-progress', data.success_rate, 100);
|
||||
|
||||
console.log('✅ Dashboard-Statistiken erfolgreich aktualisiert:', data);
|
||||
} catch (error) {
|
||||
console.error('Error loading stats:', error);
|
||||
showToast('Fehler beim Laden der Statistiken', 'error');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Helper-Funktion zum sicheren Aktualisieren von Progress-Bars
|
||||
*/
|
||||
function updateProgressBar(progressId, currentValue, maxValue) {
|
||||
const progressEl = document.getElementById(progressId);
|
||||
if (progressEl && currentValue !== undefined && maxValue > 0) {
|
||||
const percentage = Math.min(100, Math.max(0, (currentValue / maxValue) * 100));
|
||||
progressEl.style.width = `${percentage}%`;
|
||||
}
|
||||
}
|
||||
|
||||
function updateSchedulerStatusIndicator(isRunning) {
|
||||
const statusText = document.getElementById('scheduler-status');
|
||||
const indicator = document.getElementById('scheduler-indicator');
|
||||
|
@ -433,7 +433,10 @@ async function loadAdminStats() {
|
||||
|
||||
// Aktualisiere die Statistik-Karten
|
||||
const statsContainer = document.getElementById('admin-stats');
|
||||
if (!statsContainer) return;
|
||||
if (!statsContainer) {
|
||||
console.warn('Stats-Container nicht gefunden');
|
||||
return;
|
||||
}
|
||||
|
||||
statsContainer.innerHTML = `
|
||||
<div class="stat-card">
|
||||
@ -443,7 +446,7 @@ async function loadAdminStats() {
|
||||
</svg>
|
||||
</div>
|
||||
<div class="stat-title">Benutzer</div>
|
||||
<div class="stat-value" id="total-users-count">${data.total_users || 0}</div>
|
||||
<div class="stat-value" id="admin-total-users-count">${data.total_users || 0}</div>
|
||||
<div class="stat-desc">Registrierte Benutzer</div>
|
||||
</div>
|
||||
|
||||
@ -454,7 +457,7 @@ async function loadAdminStats() {
|
||||
</svg>
|
||||
</div>
|
||||
<div class="stat-title">Drucker</div>
|
||||
<div class="stat-value" id="total-printers-count">${data.total_printers || 0}</div>
|
||||
<div class="stat-value" id="admin-total-printers-count">${data.total_printers || 0}</div>
|
||||
<div class="stat-desc">Verbundene Drucker</div>
|
||||
</div>
|
||||
|
||||
@ -465,7 +468,7 @@ async function loadAdminStats() {
|
||||
</svg>
|
||||
</div>
|
||||
<div class="stat-title">Aktive Jobs</div>
|
||||
<div class="stat-value" id="active-jobs-count">${data.active_jobs || 0}</div>
|
||||
<div class="stat-value" id="admin-active-jobs-count">${data.active_jobs || 0}</div>
|
||||
<div class="stat-desc">Laufende Druckaufträge</div>
|
||||
</div>
|
||||
|
||||
@ -476,10 +479,12 @@ async function loadAdminStats() {
|
||||
</svg>
|
||||
</div>
|
||||
<div class="stat-title">Erfolgsrate</div>
|
||||
<div class="stat-value" id="success-rate">${data.success_rate || '0%'}</div>
|
||||
<div class="stat-value" id="admin-success-rate">${data.success_rate || '0%'}</div>
|
||||
<div class="stat-desc">Erfolgreiche Druckaufträge</div>
|
||||
</div>
|
||||
`;
|
||||
|
||||
console.log('✅ Admin-Statistiken erfolgreich aktualisiert:', data);
|
||||
} catch (error) {
|
||||
console.error('Error loading admin stats:', error);
|
||||
showNotification('Fehler beim Laden der Admin-Statistiken', 'error');
|
||||
|
@ -3,6 +3,72 @@
|
||||
* Sammelt alle Refresh-Funktionen für verschiedene Seiten und Komponenten
|
||||
*/
|
||||
|
||||
/**
|
||||
* Utility-Funktionen für robustes DOM-Element-Handling
|
||||
*/
|
||||
|
||||
/**
|
||||
* Sicheres Aktualisieren von Element-Inhalten
|
||||
* @param {string} elementId - Die ID des Elements
|
||||
* @param {string|number} value - Der zu setzende Wert
|
||||
* @param {Object} options - Optionale Parameter
|
||||
* @returns {boolean} - true wenn erfolgreich, false wenn Element nicht gefunden
|
||||
*/
|
||||
function safeUpdateElement(elementId, value, options = {}) {
|
||||
const {
|
||||
fallbackValue = '-',
|
||||
logWarning = true,
|
||||
attribute = 'textContent',
|
||||
transform = null
|
||||
} = options;
|
||||
|
||||
const element = document.getElementById(elementId);
|
||||
if (!element) {
|
||||
if (logWarning) {
|
||||
console.warn(`🔍 Element mit ID '${elementId}' nicht gefunden`);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
try {
|
||||
const finalValue = value !== undefined && value !== null ? value : fallbackValue;
|
||||
const displayValue = transform ? transform(finalValue) : finalValue;
|
||||
|
||||
element[attribute] = displayValue;
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error(`❌ Fehler beim Aktualisieren von Element '${elementId}':`, error);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Sicheres Aktualisieren mehrerer Elemente
|
||||
* @param {Object} updates - Objekt mit elementId: value Paaren
|
||||
* @param {Object} options - Optionale Parameter
|
||||
*/
|
||||
function safeBatchUpdate(updates, options = {}) {
|
||||
const results = {};
|
||||
Object.entries(updates).forEach(([elementId, value]) => {
|
||||
results[elementId] = safeUpdateElement(elementId, value, options);
|
||||
});
|
||||
|
||||
const successful = Object.values(results).filter(Boolean).length;
|
||||
const total = Object.keys(updates).length;
|
||||
|
||||
console.log(`📊 Batch-Update: ${successful}/${total} Elemente erfolgreich aktualisiert`);
|
||||
return results;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prüfen ob Element existiert
|
||||
* @param {string} elementId - Die ID des Elements
|
||||
* @returns {boolean} - true wenn Element existiert
|
||||
*/
|
||||
function elementExists(elementId) {
|
||||
return document.getElementById(elementId) !== null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dashboard-Refresh-Funktion
|
||||
*/
|
||||
@ -301,7 +367,10 @@ function updateDashboardStats(stats) {
|
||||
*/
|
||||
function updateStatsCounter(elementId, value, animate = true) {
|
||||
const element = document.getElementById(elementId);
|
||||
if (!element) return;
|
||||
if (!element) {
|
||||
console.warn(`Element mit ID '${elementId}' nicht gefunden`);
|
||||
return;
|
||||
}
|
||||
|
||||
if (animate) {
|
||||
// Animierte Zählung
|
||||
|
@ -202,6 +202,53 @@
|
||||
.dark .dropdown-menu::-webkit-scrollbar-thumb {
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
|
||||
/* ===== DO NOT DISTURB BUTTON STYLES ===== */
|
||||
.dnd-toggle-button {
|
||||
/* Inaktiv (Standard) */
|
||||
background: linear-gradient(135deg, rgba(99, 102, 241, 0.1), rgba(59, 130, 246, 0.1));
|
||||
color: rgb(99, 102, 241);
|
||||
border: 1px solid rgba(99, 102, 241, 0.2);
|
||||
}
|
||||
|
||||
.dnd-toggle-button:hover {
|
||||
background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(59, 130, 246, 0.15));
|
||||
border-color: rgba(99, 102, 241, 0.3);
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 4px 12px rgba(99, 102, 241, 0.15);
|
||||
}
|
||||
|
||||
/* Aktiv (DND eingeschaltet) */
|
||||
.dnd-toggle-button.active {
|
||||
background: linear-gradient(135deg, rgba(249, 115, 22, 0.9), rgba(234, 88, 12, 0.9));
|
||||
color: white;
|
||||
border: 1px solid rgba(249, 115, 22, 0.8);
|
||||
box-shadow: 0 2px 8px rgba(249, 115, 22, 0.3);
|
||||
}
|
||||
|
||||
.dnd-toggle-button.active:hover {
|
||||
background: linear-gradient(135deg, rgba(249, 115, 22, 1), rgba(234, 88, 12, 1));
|
||||
transform: translateY(-1px);
|
||||
box-shadow: 0 4px 12px rgba(249, 115, 22, 0.4);
|
||||
}
|
||||
|
||||
/* Dark Mode Anpassungen */
|
||||
.dark .dnd-toggle-button {
|
||||
background: linear-gradient(135deg, rgba(99, 102, 241, 0.15), rgba(59, 130, 246, 0.15));
|
||||
color: rgb(147, 197, 253);
|
||||
border: 1px solid rgba(99, 102, 241, 0.3);
|
||||
}
|
||||
|
||||
.dark .dnd-toggle-button:hover {
|
||||
background: linear-gradient(135deg, rgba(99, 102, 241, 0.2), rgba(59, 130, 246, 0.2));
|
||||
border-color: rgba(99, 102, 241, 0.4);
|
||||
}
|
||||
|
||||
.dark .dnd-toggle-button.active {
|
||||
background: linear-gradient(135deg, rgba(249, 115, 22, 0.9), rgba(234, 88, 12, 0.9));
|
||||
color: white;
|
||||
border: 1px solid rgba(249, 115, 22, 0.8);
|
||||
}
|
||||
</style>
|
||||
|
||||
{% block head %}{% endblock %}
|
||||
@ -662,43 +709,30 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Do Not Disturb Controls -->
|
||||
<div class="flex flex-col space-y-4">
|
||||
<h3 class="text-lg font-semibold text-slate-900 dark:text-white transition-colors duration-300">Benachrichtigungen</h3>
|
||||
<div class="space-y-3">
|
||||
<!-- Do Not Disturb Toggle -->
|
||||
<!-- Do Not Disturb Toggle - Vereinfacht -->
|
||||
<div class="flex items-center justify-between">
|
||||
<span class="text-xs text-slate-600 dark:text-slate-400">Nicht stören:</span>
|
||||
<button
|
||||
id="dndToggle"
|
||||
class="relative p-2 rounded-lg text-slate-700 dark:text-slate-300 hover:bg-slate-100/80 dark:hover:bg-slate-800/50 transition-all duration-300 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500 group"
|
||||
class="dnd-toggle-button px-3 py-1.5 rounded-lg text-xs font-medium transition-all duration-300 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500"
|
||||
aria-label="Do Not Disturb umschalten"
|
||||
data-dnd-toggle
|
||||
title="Benachrichtigungen stumm schalten"
|
||||
>
|
||||
<!-- DND Icon (Stumm) -->
|
||||
<div class="dnd-icon-off transition-all duration-300">
|
||||
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9"/>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<!-- DND Icon (Aktiv) - versteckt by default -->
|
||||
<div class="dnd-icon-on absolute inset-0 flex items-center justify-center transition-all duration-300 opacity-0 scale-75">
|
||||
<svg class="w-4 h-4 text-red-500" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM4 12c0-4.42 3.58-8 8-8 1.85 0 3.55.63 4.9 1.69L5.69 16.9C4.63 15.55 4 13.85 4 12zm8 8c-1.85 0-3.55-.63-4.9-1.69L18.31 7.1C19.37 8.45 20 10.15 20 12c0 4.42-3.58 8-8 8z"/>
|
||||
</svg>
|
||||
</div>
|
||||
|
||||
<!-- Notification Counter für unterdrückte Messages -->
|
||||
<span id="dndCounter" class="dnd-counter hidden">0</span>
|
||||
<span class="dnd-text">Inaktiv</span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- DND Status Anzeige -->
|
||||
<div id="dndStatus" class="text-xs text-slate-500 dark:text-slate-400 hidden">
|
||||
<span class="dnd-status-text">Inaktiv</span>
|
||||
<!-- DND Status und Counter -->
|
||||
<div id="dndStatus" class="text-xs text-slate-500 dark:text-slate-400">
|
||||
<div class="flex items-center justify-between">
|
||||
<span class="dnd-status-text">Alle Benachrichtigungen aktiv</span>
|
||||
<span id="dndCounter" class="dnd-counter hidden px-2 py-1 bg-orange-500 text-white rounded-full text-xs font-medium">0 unterdrückt</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@ -810,6 +844,183 @@
|
||||
|
||||
console.log('🚀 MYP Platform UI erfolgreich initialisiert');
|
||||
});
|
||||
|
||||
/**
|
||||
* Do Not Disturb (DND) Funktionalität
|
||||
*/
|
||||
class DoNotDisturbManager {
|
||||
constructor() {
|
||||
this.storageKey = 'myp-dnd-mode';
|
||||
this.counterKey = 'myp-dnd-counter';
|
||||
this.suppressedMessages = [];
|
||||
this.isEnabled = this.loadDNDState();
|
||||
this.suppressedCount = this.loadSuppressedCount();
|
||||
|
||||
this.init();
|
||||
}
|
||||
|
||||
init() {
|
||||
const dndToggle = document.getElementById('dndToggle');
|
||||
const dndStatus = document.getElementById('dndStatus');
|
||||
const dndCounter = document.getElementById('dndCounter');
|
||||
|
||||
if (dndToggle) {
|
||||
dndToggle.addEventListener('click', () => this.toggle());
|
||||
this.updateUI();
|
||||
}
|
||||
|
||||
// Integration mit dem bestehenden Benachrichtigungssystem
|
||||
this.integrateWithNotificationSystem();
|
||||
}
|
||||
|
||||
toggle() {
|
||||
this.isEnabled = !this.isEnabled;
|
||||
this.saveDNDState();
|
||||
this.updateUI();
|
||||
|
||||
if (!this.isEnabled) {
|
||||
// Beim Deaktivieren alle unterdrückten Nachrichten anzeigen
|
||||
this.showSuppressedMessages();
|
||||
this.resetSuppressedCount();
|
||||
}
|
||||
|
||||
// Feedback für den Benutzer
|
||||
const message = this.isEnabled
|
||||
? 'Nicht stören aktiviert - Benachrichtigungen werden unterdrückt'
|
||||
: 'Nicht stören deaktiviert - Benachrichtigungen sind wieder aktiv';
|
||||
|
||||
if (typeof showFlashMessage === 'function') {
|
||||
showFlashMessage(message, 'info', 3000);
|
||||
}
|
||||
|
||||
console.log(`🔕 DND ${this.isEnabled ? 'aktiviert' : 'deaktiviert'}`);
|
||||
}
|
||||
|
||||
updateUI() {
|
||||
const dndToggle = document.getElementById('dndToggle');
|
||||
const dndText = dndToggle?.querySelector('.dnd-text');
|
||||
const dndStatusText = document.querySelector('.dnd-status-text');
|
||||
const dndCounter = document.getElementById('dndCounter');
|
||||
|
||||
if (this.isEnabled) {
|
||||
dndToggle?.classList.add('active');
|
||||
if (dndText) dndText.textContent = 'Aktiv';
|
||||
if (dndStatusText) dndStatusText.textContent = 'Benachrichtigungen unterdrückt';
|
||||
dndToggle?.setAttribute('title', 'Nicht stören deaktivieren');
|
||||
} else {
|
||||
dndToggle?.classList.remove('active');
|
||||
if (dndText) dndText.textContent = 'Inaktiv';
|
||||
if (dndStatusText) dndStatusText.textContent = 'Alle Benachrichtigungen aktiv';
|
||||
dndToggle?.setAttribute('title', 'Nicht stören aktivieren');
|
||||
}
|
||||
|
||||
// Counter aktualisieren
|
||||
if (dndCounter) {
|
||||
if (this.suppressedCount > 0 && this.isEnabled) {
|
||||
dndCounter.textContent = `${this.suppressedCount} unterdrückt`;
|
||||
dndCounter.classList.remove('hidden');
|
||||
} else {
|
||||
dndCounter.classList.add('hidden');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
shouldSuppressNotification(message, type) {
|
||||
if (!this.isEnabled) return false;
|
||||
|
||||
// Wichtige Nachrichten (Fehler) nicht unterdrücken
|
||||
if (type === 'error' || type === 'danger') return false;
|
||||
|
||||
// Nachricht zur Liste der unterdrückten hinzufügen
|
||||
this.suppressedMessages.push({
|
||||
message,
|
||||
type,
|
||||
timestamp: new Date().toISOString()
|
||||
});
|
||||
|
||||
this.incrementSuppressedCount();
|
||||
return true;
|
||||
}
|
||||
|
||||
showSuppressedMessages() {
|
||||
if (this.suppressedMessages.length === 0) return;
|
||||
|
||||
// Sammelnachricht über unterdrückte Benachrichtigungen
|
||||
const count = this.suppressedMessages.length;
|
||||
const summaryMessage = `${count} Benachrichtigung${count > 1 ? 'en' : ''} während "Nicht stören" erhalten`;
|
||||
|
||||
if (typeof showFlashMessage === 'function') {
|
||||
showFlashMessage(summaryMessage, 'info', 4000);
|
||||
}
|
||||
|
||||
// Optional: Alle einzelnen Nachrichten anzeigen (mit Verzögerung)
|
||||
this.suppressedMessages.forEach((item, index) => {
|
||||
setTimeout(() => {
|
||||
if (typeof showFlashMessage === 'function') {
|
||||
showFlashMessage(item.message, item.type, 3000);
|
||||
}
|
||||
}, (index + 1) * 500);
|
||||
});
|
||||
|
||||
this.suppressedMessages = [];
|
||||
}
|
||||
|
||||
incrementSuppressedCount() {
|
||||
this.suppressedCount++;
|
||||
this.saveSuppressedCount();
|
||||
this.updateUI();
|
||||
}
|
||||
|
||||
resetSuppressedCount() {
|
||||
this.suppressedCount = 0;
|
||||
this.saveSuppressedCount();
|
||||
this.updateUI();
|
||||
}
|
||||
|
||||
integrateWithNotificationSystem() {
|
||||
// Überschreibe showFlashMessage wenn verfügbar
|
||||
if (typeof window.showFlashMessage === 'function') {
|
||||
const originalShowFlashMessage = window.showFlashMessage;
|
||||
window.showFlashMessage = (message, type, duration) => {
|
||||
if (this.shouldSuppressNotification(message, type)) {
|
||||
console.log(`🔕 Benachrichtigung unterdrückt: ${message}`);
|
||||
return;
|
||||
}
|
||||
return originalShowFlashMessage(message, type, duration);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
loadDNDState() {
|
||||
const saved = localStorage.getItem(this.storageKey);
|
||||
return saved === 'true';
|
||||
}
|
||||
|
||||
saveDNDState() {
|
||||
localStorage.setItem(this.storageKey, this.isEnabled.toString());
|
||||
}
|
||||
|
||||
loadSuppressedCount() {
|
||||
const saved = localStorage.getItem(this.counterKey);
|
||||
return saved ? parseInt(saved, 10) : 0;
|
||||
}
|
||||
|
||||
saveSuppressedCount() {
|
||||
localStorage.setItem(this.counterKey, this.suppressedCount.toString());
|
||||
}
|
||||
|
||||
// Public API
|
||||
getState() {
|
||||
return {
|
||||
enabled: this.isEnabled,
|
||||
suppressedCount: this.suppressedCount,
|
||||
suppressedMessages: this.suppressedMessages
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
// DND Manager global verfügbar machen
|
||||
window.dndManager = new DoNotDisturbManager();
|
||||
</script>
|
||||
|
||||
{% block scripts %}{% endblock %}
|
||||
|
@ -183,7 +183,7 @@ async function loadBasicStats() {
|
||||
throw new Error(data.error || 'Fehler beim Laden der Statistiken');
|
||||
}
|
||||
|
||||
// Statistiken aktualisieren
|
||||
// Statistiken aktualisieren mit defensiven Checks
|
||||
updateStatsCounter('total-jobs-count', data.total_jobs);
|
||||
updateStatsCounter('completed-jobs-count', data.completed_jobs);
|
||||
updateStatsCounter('online-printers-count', data.online_printers);
|
||||
@ -192,6 +192,8 @@ async function loadBasicStats() {
|
||||
updateStatsCounter('failed-jobs-count', data.failed_jobs);
|
||||
updateStatsCounter('total-users-count', data.total_users);
|
||||
|
||||
console.log('✅ Basis-Statistiken erfolgreich geladen:', data);
|
||||
|
||||
} catch (error) {
|
||||
console.error('Fehler beim Laden der Basis-Statistiken:', error);
|
||||
showToast('Fehler beim Laden der Statistiken', 'error');
|
||||
@ -200,7 +202,10 @@ async function loadBasicStats() {
|
||||
|
||||
function updateStatsCounter(elementId, value, animate = true) {
|
||||
const element = document.getElementById(elementId);
|
||||
if (!element) return;
|
||||
if (!element) {
|
||||
console.warn(`Element mit ID '${elementId}' nicht gefunden - wird übersprungen`);
|
||||
return;
|
||||
}
|
||||
|
||||
if (animate) {
|
||||
// Animierte Zählung
|
||||
|
Loading…
x
Reference in New Issue
Block a user