📝 "Refactor backend files
This commit is contained in:
parent
40ca104860
commit
66621f1539
@ -1984,9 +1984,8 @@ def create_user_api():
|
|||||||
new_user = User(
|
new_user = User(
|
||||||
username=data["username"],
|
username=data["username"],
|
||||||
email=data["email"],
|
email=data["email"],
|
||||||
first_name=data.get("first_name", ""),
|
name=data.get("name", ""),
|
||||||
last_name=data.get("last_name", ""),
|
role="admin" if data.get("is_admin", False) else "user",
|
||||||
is_admin=data.get("is_admin", False),
|
|
||||||
created_at=datetime.now()
|
created_at=datetime.now()
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -2000,8 +1999,8 @@ def create_user_api():
|
|||||||
"id": new_user.id,
|
"id": new_user.id,
|
||||||
"username": new_user.username,
|
"username": new_user.username,
|
||||||
"email": new_user.email,
|
"email": new_user.email,
|
||||||
"first_name": new_user.first_name,
|
"name": new_user.name,
|
||||||
"last_name": new_user.last_name,
|
"role": new_user.role,
|
||||||
"is_admin": new_user.is_admin,
|
"is_admin": new_user.is_admin,
|
||||||
"created_at": new_user.created_at.isoformat()
|
"created_at": new_user.created_at.isoformat()
|
||||||
}
|
}
|
||||||
@ -2326,9 +2325,8 @@ def admin_create_user_form():
|
|||||||
new_user = User(
|
new_user = User(
|
||||||
username=username,
|
username=username,
|
||||||
email=email,
|
email=email,
|
||||||
first_name=name.split(' ')[0] if name else "",
|
name=name,
|
||||||
last_name=" ".join(name.split(' ')[1:]) if name and ' ' in name else "",
|
role=role,
|
||||||
is_admin=(role == "admin"),
|
|
||||||
created_at=datetime.now()
|
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-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 - 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: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: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 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: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: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: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: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: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 von Benutzer Administrator (ID: 1)
|
||||||
2025-06-01 01:16:27 - myp.printers - INFO - ✅ Live-Status-Abfrage erfolgreich: 0 Drucker
|
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: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-Thread gestartet
|
||||||
2025-06-01 01:13:17 - myp.scheduler - INFO - Scheduler 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 response = await fetch('/api/stats');
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
|
||||||
// Update dashboard counters
|
// Update dashboard counters mit robusten ID-Checks
|
||||||
document.getElementById('total-users-count').textContent = data.total_users || 0;
|
const userCountEl = document.getElementById('live-users-count');
|
||||||
document.getElementById('total-printers-count').textContent = data.total_printers || 0;
|
if (userCountEl) {
|
||||||
document.getElementById('active-jobs-count').textContent = data.active_jobs || 0;
|
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
|
// Update scheduler status
|
||||||
updateSchedulerStatusIndicator(data.scheduler_status || false);
|
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) {
|
} catch (error) {
|
||||||
console.error('Error loading stats:', error);
|
console.error('Error loading stats:', error);
|
||||||
showToast('Fehler beim Laden der Statistiken', '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) {
|
function updateSchedulerStatusIndicator(isRunning) {
|
||||||
const statusText = document.getElementById('scheduler-status');
|
const statusText = document.getElementById('scheduler-status');
|
||||||
const indicator = document.getElementById('scheduler-indicator');
|
const indicator = document.getElementById('scheduler-indicator');
|
||||||
|
@ -433,7 +433,10 @@ async function loadAdminStats() {
|
|||||||
|
|
||||||
// Aktualisiere die Statistik-Karten
|
// Aktualisiere die Statistik-Karten
|
||||||
const statsContainer = document.getElementById('admin-stats');
|
const statsContainer = document.getElementById('admin-stats');
|
||||||
if (!statsContainer) return;
|
if (!statsContainer) {
|
||||||
|
console.warn('Stats-Container nicht gefunden');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
statsContainer.innerHTML = `
|
statsContainer.innerHTML = `
|
||||||
<div class="stat-card">
|
<div class="stat-card">
|
||||||
@ -443,7 +446,7 @@ async function loadAdminStats() {
|
|||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat-title">Benutzer</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 class="stat-desc">Registrierte Benutzer</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -454,7 +457,7 @@ async function loadAdminStats() {
|
|||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat-title">Drucker</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 class="stat-desc">Verbundene Drucker</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -465,7 +468,7 @@ async function loadAdminStats() {
|
|||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat-title">Aktive Jobs</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 class="stat-desc">Laufende Druckaufträge</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@ -476,10 +479,12 @@ async function loadAdminStats() {
|
|||||||
</svg>
|
</svg>
|
||||||
</div>
|
</div>
|
||||||
<div class="stat-title">Erfolgsrate</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 class="stat-desc">Erfolgreiche Druckaufträge</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
|
|
||||||
|
console.log('✅ Admin-Statistiken erfolgreich aktualisiert:', data);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error loading admin stats:', error);
|
console.error('Error loading admin stats:', error);
|
||||||
showNotification('Fehler beim Laden der Admin-Statistiken', 'error');
|
showNotification('Fehler beim Laden der Admin-Statistiken', 'error');
|
||||||
|
@ -3,6 +3,72 @@
|
|||||||
* Sammelt alle Refresh-Funktionen für verschiedene Seiten und Komponenten
|
* 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
|
* Dashboard-Refresh-Funktion
|
||||||
*/
|
*/
|
||||||
@ -301,7 +367,10 @@ function updateDashboardStats(stats) {
|
|||||||
*/
|
*/
|
||||||
function updateStatsCounter(elementId, value, animate = true) {
|
function updateStatsCounter(elementId, value, animate = true) {
|
||||||
const element = document.getElementById(elementId);
|
const element = document.getElementById(elementId);
|
||||||
if (!element) return;
|
if (!element) {
|
||||||
|
console.warn(`Element mit ID '${elementId}' nicht gefunden`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (animate) {
|
if (animate) {
|
||||||
// Animierte Zählung
|
// Animierte Zählung
|
||||||
|
@ -202,6 +202,53 @@
|
|||||||
.dark .dropdown-menu::-webkit-scrollbar-thumb {
|
.dark .dropdown-menu::-webkit-scrollbar-thumb {
|
||||||
background: rgba(255, 255, 255, 0.1);
|
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>
|
</style>
|
||||||
|
|
||||||
{% block head %}{% endblock %}
|
{% block head %}{% endblock %}
|
||||||
@ -662,43 +709,30 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Do Not Disturb Controls -->
|
<!-- Do Not Disturb Controls -->
|
||||||
<div class="flex flex-col space-y-4">
|
<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>
|
<h3 class="text-lg font-semibold text-slate-900 dark:text-white transition-colors duration-300">Benachrichtigungen</h3>
|
||||||
<div class="space-y-3">
|
<div class="space-y-3">
|
||||||
<!-- Do Not Disturb Toggle -->
|
<!-- Do Not Disturb Toggle - Vereinfacht -->
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
<span class="text-xs text-slate-600 dark:text-slate-400">Nicht stören:</span>
|
<span class="text-xs text-slate-600 dark:text-slate-400">Nicht stören:</span>
|
||||||
<button
|
<button
|
||||||
id="dndToggle"
|
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"
|
aria-label="Do Not Disturb umschalten"
|
||||||
data-dnd-toggle
|
data-dnd-toggle
|
||||||
title="Benachrichtigungen stumm schalten"
|
title="Benachrichtigungen stumm schalten"
|
||||||
>
|
>
|
||||||
<!-- DND Icon (Stumm) -->
|
<span class="dnd-text">Inaktiv</span>
|
||||||
<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>
|
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- DND Status Anzeige -->
|
<!-- DND Status und Counter -->
|
||||||
<div id="dndStatus" class="text-xs text-slate-500 dark:text-slate-400 hidden">
|
<div id="dndStatus" class="text-xs text-slate-500 dark:text-slate-400">
|
||||||
<span class="dnd-status-text">Inaktiv</span>
|
<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>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -810,6 +844,183 @@
|
|||||||
|
|
||||||
console.log('🚀 MYP Platform UI erfolgreich initialisiert');
|
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>
|
</script>
|
||||||
|
|
||||||
{% block scripts %}{% endblock %}
|
{% block scripts %}{% endblock %}
|
||||||
|
@ -183,7 +183,7 @@ async function loadBasicStats() {
|
|||||||
throw new Error(data.error || 'Fehler beim Laden der Statistiken');
|
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('total-jobs-count', data.total_jobs);
|
||||||
updateStatsCounter('completed-jobs-count', data.completed_jobs);
|
updateStatsCounter('completed-jobs-count', data.completed_jobs);
|
||||||
updateStatsCounter('online-printers-count', data.online_printers);
|
updateStatsCounter('online-printers-count', data.online_printers);
|
||||||
@ -192,6 +192,8 @@ async function loadBasicStats() {
|
|||||||
updateStatsCounter('failed-jobs-count', data.failed_jobs);
|
updateStatsCounter('failed-jobs-count', data.failed_jobs);
|
||||||
updateStatsCounter('total-users-count', data.total_users);
|
updateStatsCounter('total-users-count', data.total_users);
|
||||||
|
|
||||||
|
console.log('✅ Basis-Statistiken erfolgreich geladen:', data);
|
||||||
|
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Fehler beim Laden der Basis-Statistiken:', error);
|
console.error('Fehler beim Laden der Basis-Statistiken:', error);
|
||||||
showToast('Fehler beim Laden der Statistiken', 'error');
|
showToast('Fehler beim Laden der Statistiken', 'error');
|
||||||
@ -200,7 +202,10 @@ async function loadBasicStats() {
|
|||||||
|
|
||||||
function updateStatsCounter(elementId, value, animate = true) {
|
function updateStatsCounter(elementId, value, animate = true) {
|
||||||
const element = document.getElementById(elementId);
|
const element = document.getElementById(elementId);
|
||||||
if (!element) return;
|
if (!element) {
|
||||||
|
console.warn(`Element mit ID '${elementId}' nicht gefunden - wird übersprungen`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (animate) {
|
if (animate) {
|
||||||
// Animierte Zählung
|
// Animierte Zählung
|
||||||
|
Loading…
x
Reference in New Issue
Block a user