📝 "Refactor backend files

This commit is contained in:
2025-06-01 01:31:02 +02:00
parent 40ca104860
commit 66621f1539
16 changed files with 881 additions and 43 deletions

View File

@@ -265,19 +265,65 @@ async function loadStats() {
const response = await fetch('/api/stats');
const data = await response.json();
// Update dashboard counters
document.getElementById('total-users-count').textContent = data.total_users || 0;
document.getElementById('total-printers-count').textContent = data.total_printers || 0;
document.getElementById('active-jobs-count').textContent = data.active_jobs || 0;
// Update dashboard counters mit robusten ID-Checks
const userCountEl = document.getElementById('live-users-count');
if (userCountEl) {
userCountEl.textContent = data.total_users || 0;
}
const printerCountEl = document.getElementById('live-printers-count');
if (printerCountEl) {
printerCountEl.textContent = data.total_printers || 0;
}
const activeJobsEl = document.getElementById('live-jobs-active');
if (activeJobsEl) {
activeJobsEl.textContent = data.active_jobs || 0;
}
// Update scheduler status
updateSchedulerStatusIndicator(data.scheduler_status || false);
// Update additional stats if elements exist
const onlinePrintersEl = document.getElementById('live-printers-online');
if (onlinePrintersEl) {
onlinePrintersEl.textContent = `${data.online_printers || 0} online`;
}
const queuedJobsEl = document.getElementById('live-jobs-queued');
if (queuedJobsEl) {
queuedJobsEl.textContent = `${data.queued_jobs || 0} in Warteschlange`;
}
const successRateEl = document.getElementById('live-success-rate');
if (successRateEl) {
successRateEl.textContent = `${data.success_rate || 0}%`;
}
// Update progress bars if they exist
updateProgressBar('users-progress', data.total_users, 10);
updateProgressBar('printers-progress', data.online_printers, data.total_printers);
updateProgressBar('jobs-progress', data.active_jobs, 10);
updateProgressBar('success-progress', data.success_rate, 100);
console.log('✅ Dashboard-Statistiken erfolgreich aktualisiert:', data);
} catch (error) {
console.error('Error loading stats:', error);
showToast('Fehler beim Laden der Statistiken', 'error');
}
}
/**
* Helper-Funktion zum sicheren Aktualisieren von Progress-Bars
*/
function updateProgressBar(progressId, currentValue, maxValue) {
const progressEl = document.getElementById(progressId);
if (progressEl && currentValue !== undefined && maxValue > 0) {
const percentage = Math.min(100, Math.max(0, (currentValue / maxValue) * 100));
progressEl.style.width = `${percentage}%`;
}
}
function updateSchedulerStatusIndicator(isRunning) {
const statusText = document.getElementById('scheduler-status');
const indicator = document.getElementById('scheduler-indicator');