From 62c5f41f39582036278e52a4343f797d72b61dcb Mon Sep 17 00:00:00 2001 From: skomerko <168652295+skomerko@users.noreply.github.com> Date: Fri, 9 Aug 2024 08:38:53 +0200 Subject: [PATCH] WebUI: Implement 'Auto hide zero status filters' PR #21145. --- src/webui/www/private/scripts/client.js | 10 +++++++++- src/webui/www/private/views/preferences.html | 6 ++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/webui/www/private/scripts/client.js b/src/webui/www/private/scripts/client.js index d1217e7fb..6c0ec3eef 100644 --- a/src/webui/www/private/scripts/client.js +++ b/src/webui/www/private/scripts/client.js @@ -119,6 +119,7 @@ let queueing_enabled = true; let serverSyncMainDataInterval = 1500; let customSyncMainDataInterval = null; let useSubcategories = true; +const useAutoHideZeroStatusFilters = LocalPreferences.get("hide_zero_status_filters", "false") === "true"; /* Categories filter */ const CATEGORIES_ALL = 1; @@ -431,7 +432,14 @@ window.addEventListener("DOMContentLoaded", () => { }; const updateFilter = function(filter, filterTitle) { - $(filter + "_filter").firstChild.childNodes[1].nodeValue = filterTitle.replace("%1", torrentsTable.getFilteredTorrentsNumber(filter, CATEGORIES_ALL, TAGS_ALL, TRACKERS_ALL)); + const filterEl = document.getElementById(`${filter}_filter`); + const filterTorrentCount = torrentsTable.getFilteredTorrentsNumber(filter, CATEGORIES_ALL, TAGS_ALL, TRACKERS_ALL); + if (useAutoHideZeroStatusFilters) { + const hideFilter = (filterTorrentCount === 0) && (filter !== "all"); + if (filterEl.classList.toggle("invisible", hideFilter)) + return; + } + filterEl.firstElementChild.lastChild.nodeValue = filterTitle.replace("%1", filterTorrentCount); }; const updateFiltersList = function() { diff --git a/src/webui/www/private/views/preferences.html b/src/webui/www/private/views/preferences.html index 702dda010..b7bd95582 100644 --- a/src/webui/www/private/views/preferences.html +++ b/src/webui/www/private/views/preferences.html @@ -38,6 +38,10 @@ +