mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-06-27 17:09:53 -04:00
WebUI: Reset filter selection when double clicking filter
When double clicking on a filter, all other filters will be reset. For example, double clicking on a status filter will reset the categories, tags, and trackers filters to "All". This behavior can be disabled in WebUI options. Closes #22449. PR #22818.
This commit is contained in:
parent
78fae0ae76
commit
7ed026ef78
4 changed files with 63 additions and 7 deletions
|
@ -490,7 +490,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||||
updateFilter("moving", "QBT_TR(Moving (%1))QBT_TR[CONTEXT=StatusFilterWidget]");
|
updateFilter("moving", "QBT_TR(Moving (%1))QBT_TR[CONTEXT=StatusFilterWidget]");
|
||||||
updateFilter("errored", "QBT_TR(Errored (%1))QBT_TR[CONTEXT=StatusFilterWidget]");
|
updateFilter("errored", "QBT_TR(Errored (%1))QBT_TR[CONTEXT=StatusFilterWidget]");
|
||||||
if (useAutoHideZeroStatusFilters && document.getElementById(`${selectedStatus}_filter`).classList.contains("invisible"))
|
if (useAutoHideZeroStatusFilters && document.getElementById(`${selectedStatus}_filter`).classList.contains("invisible"))
|
||||||
setStatusFilter("all");
|
window.qBittorrent.Filters.clearStatusFilter();
|
||||||
};
|
};
|
||||||
|
|
||||||
const highlightSelectedStatus = () => {
|
const highlightSelectedStatus = () => {
|
||||||
|
|
|
@ -970,7 +970,7 @@ const initializeWindows = () => {
|
||||||
if (!response.ok)
|
if (!response.ok)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
setCategoryFilter(CATEGORIES_ALL);
|
window.qBittorrent.Filters.clearCategoryFilter();
|
||||||
updateMainData();
|
updateMainData();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -991,7 +991,7 @@ const initializeWindows = () => {
|
||||||
if (!response.ok)
|
if (!response.ok)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
setCategoryFilter(CATEGORIES_ALL);
|
window.qBittorrent.Filters.clearCategoryFilter();
|
||||||
updateMainData();
|
updateMainData();
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
@ -1077,7 +1077,7 @@ const initializeWindows = () => {
|
||||||
tags: tag
|
tags: tag
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
setTagFilter(TAGS_ALL);
|
window.qBittorrent.Filters.clearTagFilter();
|
||||||
};
|
};
|
||||||
|
|
||||||
deleteUnusedTagsFN = () => {
|
deleteUnusedTagsFN = () => {
|
||||||
|
@ -1092,7 +1092,7 @@ const initializeWindows = () => {
|
||||||
tags: tags.join(",")
|
tags: tags.join(",")
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
setTagFilter(TAGS_ALL);
|
window.qBittorrent.Filters.clearTagFilter();
|
||||||
};
|
};
|
||||||
|
|
||||||
deleteTrackerFN = (trackerHost) => {
|
deleteTrackerFN = (trackerHost) => {
|
||||||
|
@ -1121,7 +1121,7 @@ const initializeWindows = () => {
|
||||||
height: 100,
|
height: 100,
|
||||||
onCloseComplete: () => {
|
onCloseComplete: () => {
|
||||||
updateMainData();
|
updateMainData();
|
||||||
setTrackerFilter(TRACKERS_ALL);
|
window.qBittorrent.Filters.clearTrackerFilter();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -74,7 +74,11 @@
|
||||||
return {
|
return {
|
||||||
categoriesFilterContextMenu: categoriesFilterContextMenu,
|
categoriesFilterContextMenu: categoriesFilterContextMenu,
|
||||||
tagsFilterContextMenu: tagsFilterContextMenu,
|
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) => {
|
document.getElementById("Filters_pad").addEventListener("click", (event) => {
|
||||||
const filterTitle = event.target.closest(".filterTitle");
|
const filterTitle = event.target.closest(".filterTitle");
|
||||||
if (!filterTitle)
|
if (!filterTitle)
|
||||||
|
@ -281,6 +321,11 @@
|
||||||
toggleCategoryDisplay(filterItem.id);
|
toggleCategoryDisplay(filterItem.id);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const clearStatusFilter = () => { setStatusFilter("all"); };
|
||||||
|
const clearCategoryFilter = () => { setCategoryFilter(CATEGORIES_ALL); };
|
||||||
|
const clearTagFilter = () => { setTagFilter(TAGS_ALL); };
|
||||||
|
const clearTrackerFilter = () => { setTrackerFilter(TRACKERS_ALL); };
|
||||||
|
|
||||||
return exports();
|
return exports();
|
||||||
})();
|
})();
|
||||||
Object.freeze(window.qBittorrent.Filters);
|
Object.freeze(window.qBittorrent.Filters);
|
||||||
|
|
|
@ -49,6 +49,15 @@
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><label for="dblclickFiltersSelect">QBT_TR(Filters:)QBT_TR[CONTEXT=OptionsDialog]</label></td>
|
||||||
|
<td>
|
||||||
|
<select id="dblclickFiltersSelect">
|
||||||
|
<option value="1" selected>QBT_TR(Reset filter selection)QBT_TR[CONTEXT=OptionsDialog]</option>
|
||||||
|
<option value="0">QBT_TR(No action)QBT_TR[CONTEXT=OptionsDialog]</option>
|
||||||
|
</select>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
|
@ -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("hideZeroFiltersCheckbox").checked = (LocalPreferences.get("hide_zero_status_filters", "false") === "true");
|
||||||
document.getElementById("dblclickDownloadSelect").value = LocalPreferences.get("dblclick_download", "1");
|
document.getElementById("dblclickDownloadSelect").value = LocalPreferences.get("dblclick_download", "1");
|
||||||
document.getElementById("dblclickCompleteSelect").value = LocalPreferences.get("dblclick_complete", "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("confirmTorrentDeletion").checked = pref.confirm_torrent_deletion;
|
||||||
document.getElementById("useAltRowColorsInput").checked = (LocalPreferences.get("use_alt_row_colors", "true") === "true");
|
document.getElementById("useAltRowColorsInput").checked = (LocalPreferences.get("use_alt_row_colors", "true") === "true");
|
||||||
document.getElementById("filelog_checkbox").checked = pref.file_log_enabled;
|
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("hide_zero_status_filters", document.getElementById("hideZeroFiltersCheckbox").checked.toString());
|
||||||
LocalPreferences.set("dblclick_download", document.getElementById("dblclickDownloadSelect").value);
|
LocalPreferences.set("dblclick_download", document.getElementById("dblclickDownloadSelect").value);
|
||||||
LocalPreferences.set("dblclick_complete", document.getElementById("dblclickCompleteSelect").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;
|
settings["confirm_torrent_deletion"] = document.getElementById("confirmTorrentDeletion").checked;
|
||||||
LocalPreferences.set("use_alt_row_colors", document.getElementById("useAltRowColorsInput").checked.toString());
|
LocalPreferences.set("use_alt_row_colors", document.getElementById("useAltRowColorsInput").checked.toString());
|
||||||
settings["file_log_enabled"] = document.getElementById("filelog_checkbox").checked;
|
settings["file_log_enabled"] = document.getElementById("filelog_checkbox").checked;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue