diff --git a/src/webui/www/private/scripts/client.js b/src/webui/www/private/scripts/client.js index ccb6e255e..01f29e25f 100644 --- a/src/webui/www/private/scripts/client.js +++ b/src/webui/www/private/scripts/client.js @@ -490,7 +490,7 @@ window.addEventListener("DOMContentLoaded", (event) => { updateFilter("moving", "QBT_TR(Moving (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); updateFilter("errored", "QBT_TR(Errored (%1))QBT_TR[CONTEXT=StatusFilterWidget]"); if (useAutoHideZeroStatusFilters && document.getElementById(`${selectedStatus}_filter`).classList.contains("invisible")) - setStatusFilter("all"); + window.qBittorrent.Filters.clearStatusFilter(); }; const highlightSelectedStatus = () => { diff --git a/src/webui/www/private/scripts/mocha-init.js b/src/webui/www/private/scripts/mocha-init.js index cae3b6fda..96c592e4c 100644 --- a/src/webui/www/private/scripts/mocha-init.js +++ b/src/webui/www/private/scripts/mocha-init.js @@ -970,7 +970,7 @@ const initializeWindows = () => { if (!response.ok) return; - setCategoryFilter(CATEGORIES_ALL); + window.qBittorrent.Filters.clearCategoryFilter(); updateMainData(); }); }; @@ -991,7 +991,7 @@ const initializeWindows = () => { if (!response.ok) return; - setCategoryFilter(CATEGORIES_ALL); + window.qBittorrent.Filters.clearCategoryFilter(); updateMainData(); }); }; @@ -1077,7 +1077,7 @@ const initializeWindows = () => { tags: tag }) }); - setTagFilter(TAGS_ALL); + window.qBittorrent.Filters.clearTagFilter(); }; deleteUnusedTagsFN = () => { @@ -1092,7 +1092,7 @@ const initializeWindows = () => { tags: tags.join(",") }) }); - setTagFilter(TAGS_ALL); + window.qBittorrent.Filters.clearTagFilter(); }; deleteTrackerFN = (trackerHost) => { @@ -1121,7 +1121,7 @@ const initializeWindows = () => { height: 100, onCloseComplete: () => { updateMainData(); - setTrackerFilter(TRACKERS_ALL); + window.qBittorrent.Filters.clearTrackerFilter(); } }); }; diff --git a/src/webui/www/private/views/filters.html b/src/webui/www/private/views/filters.html index ef7bc88dc..623990c1a 100644 --- a/src/webui/www/private/views/filters.html +++ b/src/webui/www/private/views/filters.html @@ -74,7 +74,11 @@ return { categoriesFilterContextMenu: categoriesFilterContextMenu, tagsFilterContextMenu: tagsFilterContextMenu, - trackersFilterContextMenu: trackersFilterContextMenu + trackersFilterContextMenu: trackersFilterContextMenu, + clearStatusFilter: clearStatusFilter, + clearCategoryFilter: clearCategoryFilter, + clearTagFilter: clearTagFilter, + clearTrackerFilter: clearTrackerFilter }; }; @@ -256,6 +260,42 @@ } }); + document.getElementById("Filters_pad").addEventListener("dblclick", (event) => { + if (LocalPreferences.get("dblclick_filter", "1") !== "1") + return; + + const filterItem = event.target.closest("li"); + if (filterItem === null) + return; + + const { id: filterListID } = filterItem.closest("ul[id]"); + switch (filterListID) { + case "statusFilterList": + clearCategoryFilter(); + clearTagFilter(); + clearTrackerFilter(); + break; + case "categoryFilterList": + clearStatusFilter(); + clearTagFilter(); + clearTrackerFilter(); + break; + case "tagFilterList": + clearStatusFilter(); + clearCategoryFilter(); + clearTrackerFilter(); + break; + case "trackerFilterList": + clearStatusFilter(); + clearCategoryFilter(); + clearTagFilter(); + break; + default: + console.error(`Unexpected filterListID: ${filterListID}`); + break; + } + }); + document.getElementById("Filters_pad").addEventListener("click", (event) => { const filterTitle = event.target.closest(".filterTitle"); if (!filterTitle) @@ -281,6 +321,11 @@ toggleCategoryDisplay(filterItem.id); }); + const clearStatusFilter = () => { setStatusFilter("all"); }; + const clearCategoryFilter = () => { setCategoryFilter(CATEGORIES_ALL); }; + const clearTagFilter = () => { setTagFilter(TAGS_ALL); }; + const clearTrackerFilter = () => { setTrackerFilter(TRACKERS_ALL); }; + return exports(); })(); Object.freeze(window.qBittorrent.Filters); diff --git a/src/webui/www/private/views/preferences.html b/src/webui/www/private/views/preferences.html index f6f2e97d4..26a5389ac 100644 --- a/src/webui/www/private/views/preferences.html +++ b/src/webui/www/private/views/preferences.html @@ -49,6 +49,15 @@ + + + + + + @@ -2230,6 +2239,7 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD document.getElementById("hideZeroFiltersCheckbox").checked = (LocalPreferences.get("hide_zero_status_filters", "false") === "true"); document.getElementById("dblclickDownloadSelect").value = LocalPreferences.get("dblclick_download", "1"); document.getElementById("dblclickCompleteSelect").value = LocalPreferences.get("dblclick_complete", "1"); + document.getElementById("dblclickFiltersSelect").value = LocalPreferences.get("dblclick_filter", "1"); document.getElementById("confirmTorrentDeletion").checked = pref.confirm_torrent_deletion; document.getElementById("useAltRowColorsInput").checked = (LocalPreferences.get("use_alt_row_colors", "true") === "true"); document.getElementById("filelog_checkbox").checked = pref.file_log_enabled; @@ -2663,6 +2673,7 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD LocalPreferences.set("hide_zero_status_filters", document.getElementById("hideZeroFiltersCheckbox").checked.toString()); LocalPreferences.set("dblclick_download", document.getElementById("dblclickDownloadSelect").value); LocalPreferences.set("dblclick_complete", document.getElementById("dblclickCompleteSelect").value); + LocalPreferences.set("dblclick_filter", document.getElementById("dblclickFiltersSelect").value); settings["confirm_torrent_deletion"] = document.getElementById("confirmTorrentDeletion").checked; LocalPreferences.set("use_alt_row_colors", document.getElementById("useAltRowColorsInput").checked.toString()); settings["file_log_enabled"] = document.getElementById("filelog_checkbox").checked;