mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-13 00:33:09 -07:00
WebUI: Improve filter lists
This PR adds following improvements: * Remove unused tracker entries while processing sync data * Take into account filter selection & terms when performing 'Start/stop/delete' context actions in filter lists Now, only filtered torrents will be affected by them, just like in the GUI. * Provide better feedback when performing 'Start/stop/delete' context actions in filter lists Small improvement over GUI - now these actions will be disabled if it's not possible to use them. * Add context menu to status filter list * Fix error when toggling filter title Fixup for small bug introduced in https://github.com/qbittorrent/qBittorrent/pull/21269 PR #21438.
This commit is contained in:
parent
b1fd61af3a
commit
81509dfb65
9 changed files with 259 additions and 345 deletions
|
@ -641,12 +641,6 @@ window.addEventListener("DOMContentLoaded", () => {
|
|||
trackerFilterList.appendChild(createLink(TRACKERS_ALL, "QBT_TR(All (%1))QBT_TR[CONTEXT=TrackerFiltersList]", torrentsTable.getRowSize()));
|
||||
trackerFilterList.appendChild(createLink(TRACKERS_TRACKERLESS, "QBT_TR(Trackerless (%1))QBT_TR[CONTEXT=TrackerFiltersList]", trackerlessTorrentsCount));
|
||||
|
||||
// Remove unused trackers
|
||||
for (const [key, { trackerTorrentMap }] of trackerList) {
|
||||
if (trackerTorrentMap.size === 0)
|
||||
trackerList.delete(key);
|
||||
}
|
||||
|
||||
// Sort trackers by hostname
|
||||
const sortedList = [];
|
||||
trackerList.forEach(({ host, trackerTorrentMap }, hash) => {
|
||||
|
@ -815,8 +809,17 @@ window.addEventListener("DOMContentLoaded", () => {
|
|||
const host = window.qBittorrent.Misc.getHost(tracker);
|
||||
const hash = window.qBittorrent.Misc.genHash(host);
|
||||
const trackerListEntry = trackerList.get(hash);
|
||||
if (trackerListEntry)
|
||||
if (trackerListEntry) {
|
||||
trackerListEntry.trackerTorrentMap.delete(tracker);
|
||||
// Remove unused trackers
|
||||
if (trackerListEntry.trackerTorrentMap.size === 0) {
|
||||
trackerList.delete(hash);
|
||||
if (selectedTracker === hash) {
|
||||
selectedTracker = TRACKERS_ALL;
|
||||
LocalPreferences.set("selected_tracker", selectedTracker.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
updateTrackers = true;
|
||||
}
|
||||
|
@ -1647,7 +1650,7 @@ window.addEventListener("DOMContentLoaded", () => {
|
|||
return;
|
||||
if (event.target.isContentEditable)
|
||||
return;
|
||||
deleteFN();
|
||||
deleteSelectedTorrentsFN();
|
||||
event.preventDefault();
|
||||
},
|
||||
"shift+delete": (event) => {
|
||||
|
@ -1655,7 +1658,7 @@ window.addEventListener("DOMContentLoaded", () => {
|
|||
return;
|
||||
if (event.target.isContentEditable)
|
||||
return;
|
||||
deleteFN(true);
|
||||
deleteSelectedTorrentsFN(true);
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue