fix(ui): un-gate global quality profile; make unverified rows clickable

Quality Profile is now a global system driving every source, so stop hiding
it behind Soulseek being active — show it on the downloads tab regardless.
On the review queue, make Unverified rows row-clickable to open the audit/
info modal (matching Quarantine rows, which were already clickable); the
action buttons stopPropagation so they don't double-trigger.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
dev 2026-06-14 13:02:22 +02:00
parent d717f06afe
commit 6046a814cb
3 changed files with 17 additions and 8 deletions

View file

@ -5064,7 +5064,7 @@
</div>
<div class="settings-section-body collapsed" data-stg="downloads">
<!-- Quality Profile Settings (Soulseek only) -->
<!-- Quality Profile Settings (global — applies to all download sources) -->
<div class="settings-group" id="quality-profile-section" data-stg="downloads">
<h3>🎵 Quality Profile</h3>

View file

@ -3112,7 +3112,16 @@ function _adlRender() {
</button>`
: '';
html += `<div class="adl-row adl-row-${statusClass}" data-task-id="${dl.task_id}" data-batch-id="${dl.batch_id || ''}">
// In the Unverified review sub-view, make the whole row clickable to
// open the audit/info modal (same as the 🔍 button) — mirrors the
// Quarantine rows, which are row-clickable for their details. The
// action buttons stopPropagation so they don't double-trigger.
const _unvHid = _adlFilter === 'unverified' ? verifHistoryId(dl) : null;
const reviewRowClick = _unvHid
? ` onclick="verifAudit('${_unvHid}')" style="cursor:pointer" title="Click to show download details (audit trail, embedded tags, lyrics)"`
: '';
html += `<div class="adl-row adl-row-${statusClass}" data-task-id="${dl.task_id}" data-batch-id="${dl.batch_id || ''}"${reviewRowClick}>
${colorBar}
${artHtml}
<div class="adl-row-info">

View file

@ -1821,16 +1821,16 @@ function updateDownloadSourceUI() {
prowlarrRedirect.style.display = showProwlarr ? 'block' : 'none';
}
// Quality profile is Soulseek-only (it only affects Soulseek downloads) and
// downloads-tab-only. Gate the WHOLE collapsible tile (#quality-profile-tile
// = header + body) as a unit, so it either fully shows (Soulseek active) or
// fully hides — never an empty expandable shell (the earlier bug came from
// gating only the inner #quality-profile-section).
// Quality profile is now a GLOBAL system — the same ranked-target list
// drives every source (Soulseek, Tidal, Qobuz, HiFi, Deezer, …), so it is
// no longer Soulseek-gated. Show the whole collapsible tile whenever the
// downloads tab is active (gated as a unit so there's never an empty
// expandable shell).
const qualityProfileTile = document.getElementById('quality-profile-tile');
if (qualityProfileTile) {
const activeTab = document.querySelector('.stg-tab.active');
const onDownloadsTab = activeTab && activeTab.dataset.tab === 'downloads';
qualityProfileTile.style.display = (activeSources.has('soulseek') && onDownloadsTab) ? '' : 'none';
qualityProfileTile.style.display = onDownloadsTab ? '' : 'none';
}
if (activeSources.has('tidal')) {