From 05468e9b2db0d519579a6c582491cb48c871ded4 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Thu, 29 May 2025 17:39:01 +0200 Subject: [PATCH] "feat: Integrate database shm --- backend/app/database/myp.db-shm | Bin 0 -> 32768 bytes backend/app/database/myp.db-wal | Bin 0 -> 4152 bytes .../app/docs/admin_printer_improvements.md | 1 + backend/app/static/css/input.css | 1855 +++++------------ backend/app/static/js/admin.js | 78 +- backend/app/templates/admin.html | 3 + 6 files changed, 637 insertions(+), 1300 deletions(-) create mode 100644 backend/app/database/myp.db-shm create mode 100644 backend/app/database/myp.db-wal create mode 100644 backend/app/docs/admin_printer_improvements.md diff --git a/backend/app/database/myp.db-shm b/backend/app/database/myp.db-shm new file mode 100644 index 0000000000000000000000000000000000000000..4e7ea4748f931e55c29a9a467c9203ec957eb3fc GIT binary patch literal 32768 zcmeI)u?fOZ5C&i)h(&^=Oqbfi0a997yN0B&a*R|N!^YMTM0XHZ$N(l!Lr7~U;rrpZ z2CD-AvGsy;0j=XKKD_p7*kT%Nn*wki&{Yxd*+Zq+AY?|YQ~d1&)t zG7um@fB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72oNAZfB*pk1PBlyK!5-N z0t5&UAV7cs0RjXF5FkK+009C72oNAZVEO{#CW{atK!5-N0t5&UAV7cs0RjXF5FkK+ w009C72oNAZfB*pk1PBlyK!5-N0t5&UAV7cs0RjXF5FkK+009C72>h2o3#sTM*#H0l literal 0 HcmV?d00001 diff --git a/backend/app/database/myp.db-wal b/backend/app/database/myp.db-wal new file mode 100644 index 0000000000000000000000000000000000000000..e7852c67ff4469fac812bd5d57507e715735efb2 GIT binary patch literal 4152 zcmeH@(Q4E{6oylwil{|;Q|}C6u?X%ulk8-hc;jNJ6lrC3TfH*OCbQdYlgu(RN!^xG zv|jhBkKs+(o8%ersr^R2gVC;NW( z9$E02V+a@mhJYbp2p9r}fFWQA7y^cX zA@KhaIQ}rVXgymxepg?g=9ialce`JR2IA2qPmAX{6ERDeYz|nl-->x&%MEwXz;5H! z%klcin~YSk;a8jeN%=My_ZZ)l-u5nXS9(&tsl3-~FV> zMLo?$E@>jtbcv0<&_f|YEg#`FcK restartSystem()); } + + // Drucker-Initialisierung erzwingen + const forceInitPrintersBtn = document.getElementById('force-init-printers-btn'); + if (forceInitPrintersBtn) { + forceInitPrintersBtn.addEventListener('click', () => forceInitializePrinters()); + } } /** @@ -1151,9 +1157,11 @@ async function updateAllPrinters() { } } -// System neustarten +/** + * System neustarten + */ async function restartSystem() { - if (!confirm('🔄 Möchten Sie das System wirklich neu starten? Dies kann einige Minuten dauern.')) return; + if (!confirm('🔄 Möchten Sie das System wirklich neustarten?\n\nDies wird alle aktiven Verbindungen trennen.')) return; showLoadingOverlay(); @@ -1163,26 +1171,72 @@ async function restartSystem() { method: 'POST', headers: { 'Content-Type': 'application/json', - 'X-CSRFToken': getCSRFToken() + 'X-CSRFToken': csrfToken } }); - const result = await response.json(); + const data = await response.json(); + hideLoadingOverlay(); - if (result.success) { - showNotification('🔄 System wird neu gestartet...', 'info'); - // Nach 5 Sekunden versuchen, die Seite neu zu laden + if (data.success) { + showNotification('🔄 System wird neugestartet...', 'info'); + + // Nach 5 Sekunden zur Login-Seite weiterleiten setTimeout(() => { - location.reload(); + window.location.href = '/auth/login'; }, 5000); } else { - showNotification('❌ Fehler beim Neustart: ' + result.message, 'error'); + showNotification('❌ Fehler beim Neustart: ' + data.message, 'error'); } } catch (error) { - console.error('System restart error:', error); - showNotification('❌ Fehler beim System-Neustart', 'error'); - } finally { hideLoadingOverlay(); + showNotification('❌ Netzwerkfehler beim Neustart', 'error'); + console.error('System restart error:', error); + } +} + +/** + * Robuste Drucker-Initialisierung erzwingen + */ +async function forceInitializePrinters() { + if (!confirm('🔄 Möchten Sie eine robuste Drucker-Initialisierung starten?\n\nDies überprüft alle Drucker um jeden Preis und markiert sie als online/offline.')) return; + + showLoadingOverlay(); + + try { + const url = `${API_BASE_URL}/api/admin/printers/force-initialize`; + const response = await fetch(url, { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + 'X-CSRFToken': csrfToken + } + }); + + const data = await response.json(); + hideLoadingOverlay(); + + if (data.success) { + showNotification('🚀 Drucker-Initialisierung gestartet!', 'success'); + showNotification('ℹ️ ' + data.info, 'info'); + + // Nach 3 Sekunden die Drucker-Statistiken aktualisieren + setTimeout(() => { + updateDashboardStats(); + }, 3000); + + // Nach 10 Sekunden eine weitere Aktualisierung für vollständige Ergebnisse + setTimeout(() => { + updateDashboardStats(); + showNotification('✅ Drucker-Status wurde aktualisiert', 'success'); + }, 10000); + } else { + showNotification('❌ Fehler bei der Drucker-Initialisierung: ' + data.message, 'error'); + } + } catch (error) { + hideLoadingOverlay(); + showNotification('❌ Netzwerkfehler bei der Drucker-Initialisierung', 'error'); + console.error('Force printer initialization error:', error); } } diff --git a/backend/app/templates/admin.html b/backend/app/templates/admin.html index 76904c51..dc03f592 100644 --- a/backend/app/templates/admin.html +++ b/backend/app/templates/admin.html @@ -433,6 +433,9 @@ +