From 55f7176c3484c5df9c340bb69ce6facde555f201 Mon Sep 17 00:00:00 2001 From: dev Date: Wed, 24 Jun 2026 12:27:05 +0200 Subject: [PATCH] fix(quarantine): auto-refresh panel during batch + quarantine retry badge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quarantine list was only fetched once on page load — new entries created during a running batch never appeared without a manual tab click. - _adlFetch (2 s poller) now also calls _verifLoadQuarantine(true) every 7th poll (~14 s) so quarantine entries appear shortly after they land. - Retry badge now shows 🛡 and a clearer tooltip when retry_trigger is 'acoustid' or 'acoustid_unverified', making it visible during the quarantine-retry cycle that a previous candidate was quarantined. Co-Authored-By: Claude Sonnet 4.6 --- webui/static/pages-extra.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/webui/static/pages-extra.js b/webui/static/pages-extra.js index 5b7fbe35..8dfd2f19 100644 --- a/webui/static/pages-extra.js +++ b/webui/static/pages-extra.js @@ -2274,6 +2274,7 @@ let _adlBatchHistory = []; let _adlExpandedBatches = new Set(); let _adlBatchHistoryPoller = null; let _adlFilterBatchId = null; // When set, main list shows only this batch +let _adlFetchCount = 0; // used to rate-limit periodic quarantine refresh const _batchColorMap = {}; const _batchCompletedAt = {}; // batch_id -> timestamp when first seen as complete let _batchColorNext = 0; @@ -2407,6 +2408,10 @@ async function _adlFetch() { } catch (e) { console.error('Downloads page fetch error:', e); } + // Refresh the quarantine panel every ~15 s (every 7 polls × 2 s) so new + // quarantine entries created during a batch appear without a manual click. + _adlFetchCount++; + if (_adlFetchCount % 7 === 0) _verifLoadQuarantine(true); } function _adlUpdateBadge() { @@ -3152,7 +3157,7 @@ function _adlRender() {
- ${statusLabel}${_adlVerifBadge(dl)}${_adlQualityBadge(dl)}${dl.retry_info && (statusClass === 'active' || statusClass === 'queued') ? ` 🔁 ${_adlEsc(String(dl.retry_info))}` : ''} + ${statusLabel}${_adlVerifBadge(dl)}${_adlQualityBadge(dl)}${dl.retry_info && (statusClass === 'active' || statusClass === 'queued') ? ` 🔁 ${_adlEsc(String(dl.retry_info))}${['acoustid','acoustid_unverified'].includes(dl.retry_trigger) ? ' 🛡' : ''}` : ''}
${_adlReviewActions(dl)} ${cancelBtnHtml}