diff --git a/webui/static/downloads.js b/webui/static/downloads.js
index 98ac7bbd..70091e06 100644
--- a/webui/static/downloads.js
+++ b/webui/static/downloads.js
@@ -2982,21 +2982,17 @@ function _ensureCandidatesClickListener(statusEl) {
statusEl.addEventListener('click', function (e) {
e.stopPropagation();
_hideErrorTooltip();
- // Single click handler routes by dataset set at render time. A
- // quarantined task opens the chooser; everything else opens the search
- // modal. Deciding at click-time (not bind-time) means a task that fails
- // first and only quarantines on a later retry can't end up double-bound.
- if (this.dataset.quarantineEntryId) {
- showQuarantineChooser({
- entryId: this.dataset.quarantineEntryId,
- taskId: this.dataset.taskId,
- reason: this.dataset.quarantineReason || '',
- trackName: this.dataset.quarantineTrack || 'this track',
- });
- return;
- }
const taskId = this.dataset.taskId;
- if (taskId) showCandidatesModal(taskId);
+ if (!taskId) return;
+ // Decide at click-time from dataset set each render: completed and
+ // quarantined rows open the rich track-detail modal (it carries the
+ // play/listen + Accept/Search actions); plain failed/not-found go
+ // straight to the search modal.
+ if (this.dataset.detailOpen && typeof openTrackDetail === 'function') {
+ openTrackDetail(taskId);
+ } else {
+ showCandidatesModal(taskId);
+ }
});
}
@@ -3395,125 +3391,9 @@ async function approveQuarantineFromDownloadRow(button) {
}
}
-// ── Quarantine chooser (download-modal status click) ──────────────────────
-// Clicking a 🛡️ Quarantined status opens this instead of the search modal:
-// listen to the file, accept & import it (bypassing the failed check), or fall
-// back to searching for a different result. (Routing is handled inside
-// _ensureCandidatesClickListener so a single listener covers both cases.)
-
-// Stop and unload the chooser's