From 87a4e41f9eef4fc2a90914f13762b97d30545ff3 Mon Sep 17 00:00:00 2001 From: dev Date: Fri, 5 Jun 2026 22:26:35 +0200 Subject: [PATCH] WebUI: Quality Profile tile visible via tab filter (drop fragile Soulseek gate) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Soulseek-only JS gate fought the settings tab filter for control of the tile's display: gating the inner group left an empty expandable shell, gating the wrapper hid the whole tile depending on activeSources/tab timing. Remove the JS gate entirely and let the tab filter (data-stg="downloads" on #quality-profile-tile) own visibility — identical to the working Retry Logic tile. The tile now reliably shows on the Downloads tab. Co-Authored-By: Claude Opus 4.8 --- webui/static/settings.js | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/webui/static/settings.js b/webui/static/settings.js index c641ea1c..cee5fc27 100644 --- a/webui/static/settings.js +++ b/webui/static/settings.js @@ -1711,15 +1711,13 @@ function updateDownloadSourceUI() { prowlarrRedirect.style.display = showProwlarr ? 'block' : 'none'; } - // Quality profile is Soulseek-only and downloads-tab-only. Gate the whole - // collapsible tile (header + body) — gating just the inner #quality-profile-section - // left the tile header expandable to an empty body. - 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'; - } + // Quality Profile tile visibility is handled entirely by the settings tab + // filter (data-stg="downloads" on #quality-profile-tile) — the same mechanism + // the Retry Logic tile uses. The old Soulseek-only JS gate fought the tab + // filter for control of `display` and, depending on activeSources/tab timing, + // left the tile either empty (when it gated the inner group) or fully hidden + // (when it gated the wrapper). Letting the tab filter own visibility makes it + // behave exactly like the working Retry Logic tile. if (activeSources.has('tidal')) { checkTidalDownloadAuthStatus();