fix queue issues

This commit is contained in:
Lukas 2025-11-01 16:07:31 +01:00
parent 3c6d82907d
commit eaf6bb9957
2 changed files with 1049 additions and 114 deletions

File diff suppressed because it is too large Load Diff

View File

@ -55,7 +55,8 @@ class QueueManager {
}); });
this.socket.on('download_progress_update', (data) => { this.socket.on('download_progress_update', (data) => {
this.updateDownloadProgress(data); // Progress updates trigger a data reload to refresh the UI
this.loadQueueData();
}); });
// Download queue events // Download queue events
@ -69,7 +70,8 @@ class QueueManager {
}); });
this.socket.on('download_progress', (data) => { this.socket.on('download_progress', (data) => {
this.updateDownloadProgress(data); // Progress updates trigger a data reload to refresh the UI
this.loadQueueData();
}); });
// Handle both old and new download completion events // Handle both old and new download completion events
@ -227,23 +229,26 @@ class QueueManager {
} }
updateStatistics(stats, data) { updateStatistics(stats, data) {
document.getElementById('total-items').textContent = stats.total_items || 0; // Ensure stats object exists
const statistics = stats || {};
document.getElementById('total-items').textContent = statistics.total_items || 0;
document.getElementById('pending-items').textContent = (data.pending_queue || []).length; document.getElementById('pending-items').textContent = (data.pending_queue || []).length;
document.getElementById('completed-items').textContent = stats.completed_items || 0; document.getElementById('completed-items').textContent = statistics.completed_items || 0;
document.getElementById('failed-items').textContent = stats.failed_items || 0; document.getElementById('failed-items').textContent = statistics.failed_items || 0;
// Update section counts // Update section counts
document.getElementById('queue-count').textContent = (data.pending_queue || []).length; document.getElementById('queue-count').textContent = (data.pending_queue || []).length;
document.getElementById('completed-count').textContent = stats.completed_items || 0; document.getElementById('completed-count').textContent = statistics.completed_items || 0;
document.getElementById('failed-count').textContent = stats.failed_items || 0; document.getElementById('failed-count').textContent = statistics.failed_items || 0;
document.getElementById('current-speed').textContent = stats.current_speed || '0 MB/s'; document.getElementById('current-speed').textContent = statistics.current_speed || '0 MB/s';
document.getElementById('average-speed').textContent = stats.average_speed || '0 MB/s'; document.getElementById('average-speed').textContent = statistics.average_speed || '0 MB/s';
// Format ETA // Format ETA
const etaElement = document.getElementById('eta-time'); const etaElement = document.getElementById('eta-time');
if (stats.eta) { if (statistics.eta) {
const eta = new Date(stats.eta); const eta = new Date(statistics.eta);
const now = new Date(); const now = new Date();
const diffMs = eta - now; const diffMs = eta - now;
@ -445,7 +450,6 @@ class QueueManager {
document.getElementById('start-queue-btn').style.display = 'inline-flex'; document.getElementById('start-queue-btn').style.display = 'inline-flex';
} }
document.getElementById('clear-queue-btn').disabled = !hasPending;
document.getElementById('retry-all-btn').disabled = !hasFailed; document.getElementById('retry-all-btn').disabled = !hasFailed;
document.getElementById('clear-completed-btn').disabled = !hasCompleted; document.getElementById('clear-completed-btn').disabled = !hasCompleted;
document.getElementById('clear-failed-btn').disabled = !hasFailed; document.getElementById('clear-failed-btn').disabled = !hasFailed;