WebUI: Replace Mootools class list manipulation methods

All `addClass()`, `removeClass()` and `hasClass()` instances were changed to use `classList` equivalent:
https://developer.mozilla.org/en-US/docs/Web/API/Element/classList

PR #21946.

---------

Co-authored-by: Chocobo1 <Chocobo1@users.noreply.github.com>
This commit is contained in:
skomerko 2024-12-08 09:12:57 +01:00 committed by GitHub
parent 9f0fa4c215
commit 7080f85b59
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 143 additions and 167 deletions

View file

@ -185,7 +185,7 @@ window.addEventListener("DOMContentLoaded", () => {
window.addEventListener("resize", window.qBittorrent.Misc.createDebounceHandler(500, (e) => { window.addEventListener("resize", window.qBittorrent.Misc.createDebounceHandler(500, (e) => {
// only save sizes if the columns are visible // only save sizes if the columns are visible
if (!$("mainColumn").hasClass("invisible")) if (!$("mainColumn").classList.contains("invisible"))
saveColumnSizes(); saveColumnSizes();
})); }));
@ -218,7 +218,7 @@ window.addEventListener("DOMContentLoaded", () => {
}); });
// start off hidden // start off hidden
$("searchTabColumn").addClass("invisible"); $("searchTabColumn").classList.add("invisible");
}; };
const buildRssTab = () => { const buildRssTab = () => {
@ -229,7 +229,7 @@ window.addEventListener("DOMContentLoaded", () => {
}); });
// start off hidden // start off hidden
$("rssTabColumn").addClass("invisible"); $("rssTabColumn").classList.add("invisible");
}; };
const buildLogTab = () => { const buildLogTab = () => {
@ -240,7 +240,7 @@ window.addEventListener("DOMContentLoaded", () => {
}); });
// start off hidden // start off hidden
$("logTabColumn").addClass("invisible"); $("logTabColumn").classList.add("invisible");
}; };
buildTransfersTab(); buildTransfersTab();
@ -340,22 +340,22 @@ window.addEventListener("DOMContentLoaded", () => {
let showTopToolbar = LocalPreferences.get("show_top_toolbar", "true") === "true"; let showTopToolbar = LocalPreferences.get("show_top_toolbar", "true") === "true";
if (!showTopToolbar) { if (!showTopToolbar) {
$("showTopToolbarLink").firstElementChild.style.opacity = "0"; $("showTopToolbarLink").firstElementChild.style.opacity = "0";
$("mochaToolbar").addClass("invisible"); $("mochaToolbar").classList.add("invisible");
} }
// Show Status Bar is enabled by default // Show Status Bar is enabled by default
let showStatusBar = LocalPreferences.get("show_status_bar", "true") === "true"; let showStatusBar = LocalPreferences.get("show_status_bar", "true") === "true";
if (!showStatusBar) { if (!showStatusBar) {
$("showStatusBarLink").firstElementChild.style.opacity = "0"; $("showStatusBarLink").firstElementChild.style.opacity = "0";
$("desktopFooterWrapper").addClass("invisible"); $("desktopFooterWrapper").classList.add("invisible");
} }
// Show Filters Sidebar is enabled by default // Show Filters Sidebar is enabled by default
let showFiltersSidebar = LocalPreferences.get("show_filters_sidebar", "true") === "true"; let showFiltersSidebar = LocalPreferences.get("show_filters_sidebar", "true") === "true";
if (!showFiltersSidebar) { if (!showFiltersSidebar) {
$("showFiltersSidebarLink").firstElementChild.style.opacity = "0"; $("showFiltersSidebarLink").firstElementChild.style.opacity = "0";
$("filtersColumn").addClass("invisible"); $("filtersColumn").classList.add("invisible");
$("filtersColumn_handle").addClass("invisible"); $("filtersColumn_handle").classList.add("invisible");
} }
let speedInTitle = LocalPreferences.get("speed_in_browser_title_bar") === "true"; let speedInTitle = LocalPreferences.get("speed_in_browser_title_bar") === "true";
@ -1054,20 +1054,20 @@ window.addEventListener("DOMContentLoaded", () => {
torrentsTable.columns["priority"].force_hide = !queueing_enabled; torrentsTable.columns["priority"].force_hide = !queueing_enabled;
torrentsTable.updateColumn("priority"); torrentsTable.updateColumn("priority");
if (queueing_enabled) { if (queueing_enabled) {
$("topQueuePosItem").removeClass("invisible"); $("topQueuePosItem").classList.remove("invisible");
$("increaseQueuePosItem").removeClass("invisible"); $("increaseQueuePosItem").classList.remove("invisible");
$("decreaseQueuePosItem").removeClass("invisible"); $("decreaseQueuePosItem").classList.remove("invisible");
$("bottomQueuePosItem").removeClass("invisible"); $("bottomQueuePosItem").classList.remove("invisible");
$("queueingButtons").removeClass("invisible"); $("queueingButtons").classList.remove("invisible");
$("queueingMenuItems").removeClass("invisible"); $("queueingMenuItems").classList.remove("invisible");
} }
else { else {
$("topQueuePosItem").addClass("invisible"); $("topQueuePosItem").classList.add("invisible");
$("increaseQueuePosItem").addClass("invisible"); $("increaseQueuePosItem").classList.add("invisible");
$("decreaseQueuePosItem").addClass("invisible"); $("decreaseQueuePosItem").classList.add("invisible");
$("bottomQueuePosItem").addClass("invisible"); $("bottomQueuePosItem").classList.add("invisible");
$("queueingButtons").addClass("invisible"); $("queueingButtons").classList.add("invisible");
$("queueingMenuItems").addClass("invisible"); $("queueingMenuItems").classList.add("invisible");
} }
} }
@ -1123,11 +1123,11 @@ window.addEventListener("DOMContentLoaded", () => {
LocalPreferences.set("show_top_toolbar", showTopToolbar.toString()); LocalPreferences.set("show_top_toolbar", showTopToolbar.toString());
if (showTopToolbar) { if (showTopToolbar) {
$("showTopToolbarLink").firstElementChild.style.opacity = "1"; $("showTopToolbarLink").firstElementChild.style.opacity = "1";
$("mochaToolbar").removeClass("invisible"); $("mochaToolbar").classList.remove("invisible");
} }
else { else {
$("showTopToolbarLink").firstElementChild.style.opacity = "0"; $("showTopToolbarLink").firstElementChild.style.opacity = "0";
$("mochaToolbar").addClass("invisible"); $("mochaToolbar").classList.add("invisible");
} }
MochaUI.Desktop.setDesktopSize(); MochaUI.Desktop.setDesktopSize();
}); });
@ -1137,11 +1137,11 @@ window.addEventListener("DOMContentLoaded", () => {
LocalPreferences.set("show_status_bar", showStatusBar.toString()); LocalPreferences.set("show_status_bar", showStatusBar.toString());
if (showStatusBar) { if (showStatusBar) {
$("showStatusBarLink").firstElementChild.style.opacity = "1"; $("showStatusBarLink").firstElementChild.style.opacity = "1";
$("desktopFooterWrapper").removeClass("invisible"); $("desktopFooterWrapper").classList.remove("invisible");
} }
else { else {
$("showStatusBarLink").firstElementChild.style.opacity = "0"; $("showStatusBarLink").firstElementChild.style.opacity = "0";
$("desktopFooterWrapper").addClass("invisible"); $("desktopFooterWrapper").classList.add("invisible");
} }
MochaUI.Desktop.setDesktopSize(); MochaUI.Desktop.setDesktopSize();
}); });
@ -1175,13 +1175,13 @@ window.addEventListener("DOMContentLoaded", () => {
LocalPreferences.set("show_filters_sidebar", showFiltersSidebar.toString()); LocalPreferences.set("show_filters_sidebar", showFiltersSidebar.toString());
if (showFiltersSidebar) { if (showFiltersSidebar) {
$("showFiltersSidebarLink").firstElementChild.style.opacity = "1"; $("showFiltersSidebarLink").firstElementChild.style.opacity = "1";
$("filtersColumn").removeClass("invisible"); $("filtersColumn").classList.remove("invisible");
$("filtersColumn_handle").removeClass("invisible"); $("filtersColumn_handle").classList.remove("invisible");
} }
else { else {
$("showFiltersSidebarLink").firstElementChild.style.opacity = "0"; $("showFiltersSidebarLink").firstElementChild.style.opacity = "0";
$("filtersColumn").addClass("invisible"); $("filtersColumn").classList.add("invisible");
$("filtersColumn_handle").addClass("invisible"); $("filtersColumn_handle").classList.add("invisible");
} }
MochaUI.Desktop.setDesktopSize(); MochaUI.Desktop.setDesktopSize();
}); });
@ -1217,49 +1217,49 @@ window.addEventListener("DOMContentLoaded", () => {
const updateTabDisplay = () => { const updateTabDisplay = () => {
if (window.qBittorrent.Client.isShowRssReader()) { if (window.qBittorrent.Client.isShowRssReader()) {
$("showRssReaderLink").firstElementChild.style.opacity = "1"; $("showRssReaderLink").firstElementChild.style.opacity = "1";
$("mainWindowTabs").removeClass("invisible"); $("mainWindowTabs").classList.remove("invisible");
$("rssTabLink").removeClass("invisible"); $("rssTabLink").classList.remove("invisible");
if (!MochaUI.Panels.instances.RssPanel) if (!MochaUI.Panels.instances.RssPanel)
addRssPanel(); addRssPanel();
} }
else { else {
$("showRssReaderLink").firstElementChild.style.opacity = "0"; $("showRssReaderLink").firstElementChild.style.opacity = "0";
$("rssTabLink").addClass("invisible"); $("rssTabLink").classList.add("invisible");
if ($("rssTabLink").hasClass("selected")) if ($("rssTabLink").classList.contains("selected"))
$("transfersTabLink").click(); $("transfersTabLink").click();
} }
if (window.qBittorrent.Client.isShowSearchEngine()) { if (window.qBittorrent.Client.isShowSearchEngine()) {
$("showSearchEngineLink").firstElementChild.style.opacity = "1"; $("showSearchEngineLink").firstElementChild.style.opacity = "1";
$("mainWindowTabs").removeClass("invisible"); $("mainWindowTabs").classList.remove("invisible");
$("searchTabLink").removeClass("invisible"); $("searchTabLink").classList.remove("invisible");
if (!MochaUI.Panels.instances.SearchPanel) if (!MochaUI.Panels.instances.SearchPanel)
addSearchPanel(); addSearchPanel();
} }
else { else {
$("showSearchEngineLink").firstElementChild.style.opacity = "0"; $("showSearchEngineLink").firstElementChild.style.opacity = "0";
$("searchTabLink").addClass("invisible"); $("searchTabLink").classList.add("invisible");
if ($("searchTabLink").hasClass("selected")) if ($("searchTabLink").classList.contains("selected"))
$("transfersTabLink").click(); $("transfersTabLink").click();
} }
if (window.qBittorrent.Client.isShowLogViewer()) { if (window.qBittorrent.Client.isShowLogViewer()) {
$("showLogViewerLink").firstElementChild.style.opacity = "1"; $("showLogViewerLink").firstElementChild.style.opacity = "1";
$("mainWindowTabs").removeClass("invisible"); $("mainWindowTabs").classList.remove("invisible");
$("logTabLink").removeClass("invisible"); $("logTabLink").classList.remove("invisible");
if (!MochaUI.Panels.instances.LogPanel) if (!MochaUI.Panels.instances.LogPanel)
addLogPanel(); addLogPanel();
} }
else { else {
$("showLogViewerLink").firstElementChild.style.opacity = "0"; $("showLogViewerLink").firstElementChild.style.opacity = "0";
$("logTabLink").addClass("invisible"); $("logTabLink").classList.add("invisible");
if ($("logTabLink").hasClass("selected")) if ($("logTabLink").classList.contains("selected"))
$("transfersTabLink").click(); $("transfersTabLink").click();
} }
// display no tabs // display no tabs
if (!window.qBittorrent.Client.isShowRssReader() && !window.qBittorrent.Client.isShowSearchEngine() && !window.qBittorrent.Client.isShowLogViewer()) if (!window.qBittorrent.Client.isShowRssReader() && !window.qBittorrent.Client.isShowSearchEngine() && !window.qBittorrent.Client.isShowLogViewer())
$("mainWindowTabs").addClass("invisible"); $("mainWindowTabs").classList.add("invisible");
}; };
$("StatisticsLink").addEventListener("click", () => { StatisticsLinkFN(); }); $("StatisticsLink").addEventListener("click", () => { StatisticsLinkFN(); });
@ -1269,11 +1269,11 @@ window.addEventListener("DOMContentLoaded", () => {
const showTransfersTab = () => { const showTransfersTab = () => {
const showFiltersSidebar = LocalPreferences.get("show_filters_sidebar", "true") === "true"; const showFiltersSidebar = LocalPreferences.get("show_filters_sidebar", "true") === "true";
if (showFiltersSidebar) { if (showFiltersSidebar) {
$("filtersColumn").removeClass("invisible"); $("filtersColumn").classList.remove("invisible");
$("filtersColumn_handle").removeClass("invisible"); $("filtersColumn_handle").classList.remove("invisible");
} }
$("mainColumn").removeClass("invisible"); $("mainColumn").classList.remove("invisible");
$("torrentsFilterToolbar").removeClass("invisible"); $("torrentsFilterToolbar").classList.remove("invisible");
customSyncMainDataInterval = null; customSyncMainDataInterval = null;
syncData(100); syncData(100);
@ -1286,10 +1286,10 @@ window.addEventListener("DOMContentLoaded", () => {
}; };
const hideTransfersTab = () => { const hideTransfersTab = () => {
$("filtersColumn").addClass("invisible"); $("filtersColumn").classList.add("invisible");
$("filtersColumn_handle").addClass("invisible"); $("filtersColumn_handle").classList.add("invisible");
$("mainColumn").addClass("invisible"); $("mainColumn").classList.add("invisible");
$("torrentsFilterToolbar").addClass("invisible"); $("torrentsFilterToolbar").classList.add("invisible");
MochaUI.Desktop.resizePanels(); MochaUI.Desktop.resizePanels();
}; };
@ -1312,7 +1312,7 @@ window.addEventListener("DOMContentLoaded", () => {
searchTabInitialized = true; searchTabInitialized = true;
} }
$("searchTabColumn").removeClass("invisible"); $("searchTabColumn").classList.remove("invisible");
customSyncMainDataInterval = 30000; customSyncMainDataInterval = 30000;
hideTransfersTab(); hideTransfersTab();
hideRssTab(); hideRssTab();
@ -1323,7 +1323,7 @@ window.addEventListener("DOMContentLoaded", () => {
})(); })();
const hideSearchTab = () => { const hideSearchTab = () => {
$("searchTabColumn").addClass("invisible"); $("searchTabColumn").classList.add("invisible");
MochaUI.Desktop.resizePanels(); MochaUI.Desktop.resizePanels();
}; };
@ -1349,7 +1349,7 @@ window.addEventListener("DOMContentLoaded", () => {
window.qBittorrent.Rss.load(); window.qBittorrent.Rss.load();
} }
$("rssTabColumn").removeClass("invisible"); $("rssTabColumn").classList.remove("invisible");
customSyncMainDataInterval = 30000; customSyncMainDataInterval = 30000;
hideTransfersTab(); hideTransfersTab();
hideSearchTab(); hideSearchTab();
@ -1360,7 +1360,7 @@ window.addEventListener("DOMContentLoaded", () => {
})(); })();
const hideRssTab = () => { const hideRssTab = () => {
$("rssTabColumn").addClass("invisible"); $("rssTabColumn").classList.add("invisible");
window.qBittorrent.Rss && window.qBittorrent.Rss.unload(); window.qBittorrent.Rss && window.qBittorrent.Rss.unload();
MochaUI.Desktop.resizePanels(); MochaUI.Desktop.resizePanels();
}; };
@ -1387,7 +1387,7 @@ window.addEventListener("DOMContentLoaded", () => {
window.qBittorrent.Log.load(); window.qBittorrent.Log.load();
} }
$("logTabColumn").removeClass("invisible"); $("logTabColumn").classList.remove("invisible");
customSyncMainDataInterval = 30000; customSyncMainDataInterval = 30000;
hideTransfersTab(); hideTransfersTab();
hideSearchTab(); hideSearchTab();
@ -1398,7 +1398,7 @@ window.addEventListener("DOMContentLoaded", () => {
})(); })();
const hideLogTab = () => { const hideLogTab = () => {
$("logTabColumn").addClass("invisible"); $("logTabColumn").classList.add("invisible");
MochaUI.Desktop.resizePanels(); MochaUI.Desktop.resizePanels();
window.qBittorrent.Log && window.qBittorrent.Log.unload(); window.qBittorrent.Log && window.qBittorrent.Log.unload();
}; };

View file

@ -92,7 +92,7 @@ window.qBittorrent.ContextMenu ??= (() => {
const scrollableMenuMaxHeight = document.documentElement.clientHeight * 0.75; const scrollableMenuMaxHeight = document.documentElement.clientHeight * 0.75;
if (this.menu.hasClass("scrollableMenu")) if (this.menu.classList.contains("scrollableMenu"))
this.menu.style.maxHeight = `${scrollableMenuMaxHeight}px`; this.menu.style.maxHeight = `${scrollableMenuMaxHeight}px`;
// draw the menu off-screen to know the menu dimensions // draw the menu off-screen to know the menu dimensions
@ -119,7 +119,7 @@ window.qBittorrent.ContextMenu ??= (() => {
const uls = this.menu.getElementsByTagName("ul"); const uls = this.menu.getElementsByTagName("ul");
for (let i = 0; i < uls.length; ++i) { for (let i = 0; i < uls.length; ++i) {
const ul = uls[i]; const ul = uls[i];
if (ul.hasClass("scrollableMenu")) if (ul.classList.contains("scrollableMenu"))
ul.style.maxHeight = `${scrollableMenuMaxHeight}px`; ul.style.maxHeight = `${scrollableMenuMaxHeight}px`;
const rectParent = ul.parentNode.getBoundingClientRect(); const rectParent = ul.parentNode.getBoundingClientRect();
const xPosOrigin = rectParent.left; const xPosOrigin = rectParent.left;
@ -257,13 +257,13 @@ window.qBittorrent.ContextMenu ??= (() => {
// hide an item // hide an item
hideItem(item) { hideItem(item) {
this.menu.getElement("a[href$=" + item + "]").parentNode.addClass("invisible"); this.menu.getElement("a[href$=" + item + "]").parentNode.classList.add("invisible");
return this; return this;
} }
// show an item // show an item
showItem(item) { showItem(item) {
this.menu.getElement("a[href$=" + item + "]").parentNode.removeClass("invisible"); this.menu.getElement("a[href$=" + item + "]").parentNode.classList.remove("invisible");
return this; return this;
} }
@ -405,7 +405,7 @@ window.qBittorrent.ContextMenu ??= (() => {
if (all_are_downloaded) { if (all_are_downloaded) {
this.hideItem("downloadLimit"); this.hideItem("downloadLimit");
this.menu.getElement("a[href$=uploadLimit]").parentNode.addClass("separator"); this.menu.getElement("a[href$=uploadLimit]").parentNode.classList.add("separator");
this.hideItem("sequentialDownload"); this.hideItem("sequentialDownload");
this.hideItem("firstLastPiecePrio"); this.hideItem("firstLastPiecePrio");
this.showItem("superSeeding"); this.showItem("superSeeding");
@ -415,10 +415,7 @@ window.qBittorrent.ContextMenu ??= (() => {
const show_seq_dl = (all_are_seq_dl || !there_are_seq_dl); const show_seq_dl = (all_are_seq_dl || !there_are_seq_dl);
const show_f_l_piece_prio = (all_are_f_l_piece_prio || !there_are_f_l_piece_prio); const show_f_l_piece_prio = (all_are_f_l_piece_prio || !there_are_f_l_piece_prio);
if (!show_seq_dl && show_f_l_piece_prio) this.menu.getElement("a[href$=firstLastPiecePrio]").parentNode.classList.toggle("separator", (!show_seq_dl && show_f_l_piece_prio));
this.menu.getElement("a[href$=firstLastPiecePrio]").parentNode.addClass("separator");
else
this.menu.getElement("a[href$=firstLastPiecePrio]").parentNode.removeClass("separator");
if (show_seq_dl) if (show_seq_dl)
this.showItem("sequentialDownload"); this.showItem("sequentialDownload");
@ -434,7 +431,7 @@ window.qBittorrent.ContextMenu ??= (() => {
this.setItemChecked("firstLastPiecePrio", all_are_f_l_piece_prio); this.setItemChecked("firstLastPiecePrio", all_are_f_l_piece_prio);
this.showItem("downloadLimit"); this.showItem("downloadLimit");
this.menu.getElement("a[href$=uploadLimit]").parentNode.removeClass("separator"); this.menu.getElement("a[href$=uploadLimit]").parentNode.classList.remove("separator");
this.hideItem("superSeeding"); this.hideItem("superSeeding");
} }
@ -525,7 +522,7 @@ window.qBittorrent.ContextMenu ??= (() => {
const setCategoryItem = document.createElement("li"); const setCategoryItem = document.createElement("li");
setCategoryItem.appendChild(anchor); setCategoryItem.appendChild(anchor);
if (first) { if (first) {
setCategoryItem.addClass("separator"); setCategoryItem.classList.add("separator");
first = false; first = false;
} }
@ -583,7 +580,7 @@ window.qBittorrent.ContextMenu ??= (() => {
const setTagItem = document.createElement("li"); const setTagItem = document.createElement("li");
setTagItem.appendChild(anchor); setTagItem.appendChild(anchor);
if (i === 0) if (i === 0)
setTagItem.addClass("separator"); setTagItem.classList.add("separator");
contextTagList.appendChild(setTagItem); contextTagList.appendChild(setTagItem);
} }
@ -661,11 +658,11 @@ window.qBittorrent.ContextMenu ??= (() => {
class RssFeedContextMenu extends ContextMenu { class RssFeedContextMenu extends ContextMenu {
updateMenuItems() { updateMenuItems() {
const selectedRows = window.qBittorrent.Rss.rssFeedTable.selectedRowsIds(); const selectedRows = window.qBittorrent.Rss.rssFeedTable.selectedRowsIds();
this.menu.getElement("a[href$=newSubscription]").parentNode.addClass("separator"); this.menu.getElement("a[href$=newSubscription]").parentNode.classList.add("separator");
switch (selectedRows.length) { switch (selectedRows.length) {
case 0: case 0:
// remove separator on top of newSubscription entry to avoid double line // remove separator on top of newSubscription entry to avoid double line
this.menu.getElement("a[href$=newSubscription]").parentNode.removeClass("separator"); this.menu.getElement("a[href$=newSubscription]").parentNode.classList.remove("separator");
// menu when nothing selected // menu when nothing selected
this.hideItem("update"); this.hideItem("update");
this.hideItem("markRead"); this.hideItem("markRead");

View file

@ -597,11 +597,8 @@ window.qBittorrent.DynamicTable ??= (() => {
th.textContent = this.columns[i].caption; th.textContent = this.columns[i].caption;
th.setAttribute("style", "width: " + this.columns[i].width + "px;" + this.columns[i].style); th.setAttribute("style", "width: " + this.columns[i].width + "px;" + this.columns[i].style);
th.columnName = this.columns[i].name; th.columnName = this.columns[i].name;
th.addClass("column_" + th.columnName); th.classList.add("column_" + th.columnName);
if ((this.columns[i].visible === "0") || this.columns[i].force_hide) th.classList.toggle("invisible", ((this.columns[i].visible === "0") || this.columns[i].force_hide));
th.addClass("invisible");
else
th.removeClass("invisible");
} }
}, },
@ -625,16 +622,16 @@ window.qBittorrent.DynamicTable ??= (() => {
fths[pos].setAttribute("style", style); fths[pos].setAttribute("style", style);
if (visible) { if (visible) {
ths[pos].removeClass("invisible"); ths[pos].classList.remove("invisible");
fths[pos].removeClass("invisible"); fths[pos].classList.remove("invisible");
for (let i = 0; i < trs.length; ++i) for (let i = 0; i < trs.length; ++i)
trs[i].getElements("td")[pos].removeClass("invisible"); trs[i].getElements("td")[pos].classList.remove("invisible");
} }
else { else {
ths[pos].addClass("invisible"); ths[pos].classList.add("invisible");
fths[pos].addClass("invisible"); fths[pos].classList.add("invisible");
for (let j = 0; j < trs.length; ++j) for (let j = 0; j < trs.length; ++j)
trs[j].getElements("td")[pos].addClass("invisible"); trs[j].getElements("td")[pos].classList.add("invisible");
} }
if (this.columns[pos].onResize !== null) if (this.columns[pos].onResize !== null)
this.columns[pos].onResize(columnName); this.columns[pos].onResize(columnName);
@ -675,16 +672,13 @@ window.qBittorrent.DynamicTable ??= (() => {
const colElem = getCol(this.dynamicTableFixedHeaderDivId, newColumn); const colElem = getCol(this.dynamicTableFixedHeaderDivId, newColumn);
if (colElem !== null) { if (colElem !== null) {
colElem.addClass("sorted"); colElem.classList.add("sorted");
if (isReverse) colElem.classList.toggle("reverse", isReverse);
colElem.addClass("reverse");
else
colElem.removeClass("reverse");
} }
const oldColElem = getCol(this.dynamicTableFixedHeaderDivId, oldColumn); const oldColElem = getCol(this.dynamicTableFixedHeaderDivId, oldColumn);
if (oldColElem !== null) { if (oldColElem !== null) {
oldColElem.removeClass("sorted"); oldColElem.classList.remove("sorted");
oldColElem.removeClass("reverse"); oldColElem.classList.remove("reverse");
} }
}, },
@ -711,8 +705,7 @@ window.qBittorrent.DynamicTable ??= (() => {
for (let i = 0; i < trs.length; ++i) { for (let i = 0; i < trs.length; ++i) {
const tr = trs[i]; const tr = trs[i];
this.selectedRows.push(tr.rowId); this.selectedRows.push(tr.rowId);
if (!tr.hasClass("selected")) tr.classList.add("selected");
tr.addClass("selected");
} }
}, },
@ -759,18 +752,13 @@ window.qBittorrent.DynamicTable ??= (() => {
this.selectedRows = rowIds.slice(); this.selectedRows = rowIds.slice();
this.tableBody.getElements("tr").each((tr) => { this.tableBody.getElements("tr").each((tr) => {
if (rowIds.includes(tr.rowId)) if (rowIds.includes(tr.rowId))
tr.addClass("selected"); tr.classList.add("selected");
}); });
}, },
setRowClass: function() { setRowClass: function() {
const that = this; for (const tr of this.tableBody.querySelectorAll("tr"))
this.tableBody.getElements("tr").each((tr) => { tr.classList.toggle("selected", this.isRowSelected(tr.rowId));
if (that.isRowSelected(tr.rowId))
tr.addClass("selected");
else
tr.removeClass("selected");
});
}, },
onSelectedRowChanged: () => {}, onSelectedRowChanged: () => {},
@ -874,7 +862,7 @@ window.qBittorrent.DynamicTable ??= (() => {
for (let k = 0; k < this.columns.length; ++k) { for (let k = 0; k < this.columns.length; ++k) {
const td = new Element("td"); const td = new Element("td");
if ((this.columns[k].visible === "0") || this.columns[k].force_hide) if ((this.columns[k].visible === "0") || this.columns[k].force_hide)
td.addClass("invisible"); td.classList.add("invisible");
td.injectInside(tr); td.injectInside(tr);
} }
@ -1959,14 +1947,14 @@ window.qBittorrent.DynamicTable ??= (() => {
if (value) { if (value) {
td.textContent = "QBT_TR(Yes)QBT_TR[CONTEXT=SearchPluginsTable]"; td.textContent = "QBT_TR(Yes)QBT_TR[CONTEXT=SearchPluginsTable]";
td.title = "QBT_TR(Yes)QBT_TR[CONTEXT=SearchPluginsTable]"; td.title = "QBT_TR(Yes)QBT_TR[CONTEXT=SearchPluginsTable]";
td.getParent("tr").addClass("green"); td.getParent("tr").classList.add("green");
td.getParent("tr").removeClass("red"); td.getParent("tr").classList.remove("red");
} }
else { else {
td.textContent = "QBT_TR(No)QBT_TR[CONTEXT=SearchPluginsTable]"; td.textContent = "QBT_TR(No)QBT_TR[CONTEXT=SearchPluginsTable]";
td.title = "QBT_TR(No)QBT_TR[CONTEXT=SearchPluginsTable]"; td.title = "QBT_TR(No)QBT_TR[CONTEXT=SearchPluginsTable]";
td.getParent("tr").addClass("red"); td.getParent("tr").classList.add("red");
td.getParent("tr").removeClass("green"); td.getParent("tr").classList.remove("green");
} }
}; };
}, },
@ -2967,7 +2955,7 @@ window.qBittorrent.DynamicTable ??= (() => {
if (row.rowId === rowId) { if (row.rowId === rowId) {
articleId = row.full_data.dataId; articleId = row.full_data.dataId;
feedUid = row.full_data.feedUid; feedUid = row.full_data.feedUid;
this.tableBody.rows[row.rowId].removeClass("unreadArticle"); this.tableBody.rows[row.rowId].classList.remove("unreadArticle");
break; break;
} }
} }
@ -2987,10 +2975,7 @@ window.qBittorrent.DynamicTable ??= (() => {
updateRow: function(tr, fullUpdate) { updateRow: function(tr, fullUpdate) {
const row = this.rows.get(tr.rowId); const row = this.rows.get(tr.rowId);
const data = row[fullUpdate ? "full_data" : "data"]; const data = row[fullUpdate ? "full_data" : "data"];
if (!row.full_data.isRead) tr.classList.toggle("unreadArticle", !row.full_data.isRead);
tr.addClass("unreadArticle");
else
tr.removeClass("unreadArticle");
const tds = tr.getElements("td"); const tds = tr.getElements("td");
for (let i = 0; i < this.columns.length; ++i) { for (let i = 0; i < this.columns.length; ++i) {
@ -3260,12 +3245,12 @@ window.qBittorrent.DynamicTable ??= (() => {
const data = row[fullUpdate ? "full_data" : "data"]; const data = row[fullUpdate ? "full_data" : "data"];
if (row.full_data.isFeed) { if (row.full_data.isFeed) {
tr.addClass("articleTableFeed"); tr.classList.add("articleTableFeed");
tr.removeClass("articleTableArticle"); tr.classList.remove("articleTableArticle");
} }
else { else {
tr.removeClass("articleTableFeed"); tr.classList.remove("articleTableFeed");
tr.addClass("articleTableArticle"); tr.classList.add("articleTableArticle");
} }
const tds = tr.getElements("td"); const tds = tr.getElements("td");

View file

@ -179,7 +179,7 @@ window.qBittorrent.PropFiles ??= (() => {
select.id = "comboPrio" + id; select.id = "comboPrio" + id;
select.setAttribute("data-id", id); select.setAttribute("data-id", id);
select.setAttribute("data-file-id", fileId); select.setAttribute("data-file-id", fileId);
select.addClass("combo_priority"); select.classList.add("combo_priority");
select.addEventListener("change", fileComboboxChanged); select.addEventListener("change", fileComboboxChanged);
select.appendChild(createOption(FilePriority.Ignored, (FilePriority.Ignored === selectedPriority), "QBT_TR(Do not download)QBT_TR[CONTEXT=PropListDelegate]")); select.appendChild(createOption(FilePriority.Ignored, (FilePriority.Ignored === selectedPriority), "QBT_TR(Do not download)QBT_TR[CONTEXT=PropListDelegate]"));
@ -335,8 +335,8 @@ window.qBittorrent.PropFiles ??= (() => {
let loadTorrentFilesDataTimer = -1; let loadTorrentFilesDataTimer = -1;
const loadTorrentFilesData = () => { const loadTorrentFilesData = () => {
if ($("propFiles").hasClass("invisible") if ($("propFiles").classList.contains("invisible")
|| $("propertiesPanel_collapseToggle").hasClass("panel-expand")) { || $("propertiesPanel_collapseToggle").classList.contains("panel-expand")) {
// Tab changed, don't do anything // Tab changed, don't do anything
return; return;
} }
@ -668,10 +668,7 @@ window.qBittorrent.PropFiles ??= (() => {
if (span === null) if (span === null)
return; return;
const rowElem = span.parentElement.parentElement; const rowElem = span.parentElement.parentElement;
if (shouldHide) rowElem.classList.toggle("invisible", shouldHide);
rowElem.addClass("invisible");
else
rowElem.removeClass("invisible");
}; };
/** /**
@ -689,10 +686,7 @@ window.qBittorrent.PropFiles ??= (() => {
// rotate the collapse icon // rotate the collapse icon
const collapseIcon = td.getElementsByClassName("filesTableCollapseIcon")[0]; const collapseIcon = td.getElementsByClassName("filesTableCollapseIcon")[0];
if (isCollapsed) collapseIcon.classList.toggle("rotate", isCollapsed);
collapseIcon.addClass("rotate");
else
collapseIcon.removeClass("rotate");
}; };
const _isCollapsed = (node) => { const _isCollapsed = (node) => {

View file

@ -76,8 +76,8 @@ window.qBittorrent.PropGeneral ??= (() => {
let loadTorrentDataTimer = -1; let loadTorrentDataTimer = -1;
const loadTorrentData = () => { const loadTorrentData = () => {
if ($("propGeneral").hasClass("invisible") if ($("propGeneral").classList.contains("invisible")
|| $("propertiesPanel_collapseToggle").hasClass("panel-expand")) { || $("propertiesPanel_collapseToggle").classList.contains("panel-expand")) {
// Tab changed, don't do anything // Tab changed, don't do anything
return; return;
} }

View file

@ -43,8 +43,8 @@ window.qBittorrent.PropPeers ??= (() => {
let show_flags = true; let show_flags = true;
const loadTorrentPeersData = () => { const loadTorrentPeersData = () => {
if ($("propPeers").hasClass("invisible") if ($("propPeers").classList.contains("invisible")
|| $("propertiesPanel_collapseToggle").hasClass("panel-expand")) { || $("propertiesPanel_collapseToggle").classList.contains("panel-expand")) {
syncTorrentPeersLastResponseId = 0; syncTorrentPeersLastResponseId = 0;
torrentPeersTable.clear(); torrentPeersTable.clear();
return; return;

View file

@ -43,8 +43,8 @@ window.qBittorrent.PropTrackers ??= (() => {
let loadTrackersDataTimer = -1; let loadTrackersDataTimer = -1;
const loadTrackersData = () => { const loadTrackersData = () => {
if ($("propTrackers").hasClass("invisible") if ($("propTrackers").classList.contains("invisible")
|| $("propertiesPanel_collapseToggle").hasClass("panel-expand")) { || $("propertiesPanel_collapseToggle").classList.contains("panel-expand")) {
// Tab changed, don't do anything // Tab changed, don't do anything
return; return;
} }

View file

@ -43,8 +43,8 @@ window.qBittorrent.PropWebseeds ??= (() => {
let loadWebSeedsDataTimer = -1; let loadWebSeedsDataTimer = -1;
const loadWebSeedsData = () => { const loadWebSeedsData = () => {
if ($("propWebSeeds").hasClass("invisible") if ($("propWebSeeds").classList.contains("invisible")
|| $("propertiesPanel_collapseToggle").hasClass("panel-expand")) { || $("propertiesPanel_collapseToggle").classList.contains("panel-expand")) {
// Tab changed, don't do anything // Tab changed, don't do anything
return; return;
} }

View file

@ -238,7 +238,7 @@ window.qBittorrent.Search ??= (() => {
return; return;
const searchId = getSearchIdFromTab(tab); const searchId = getSearchIdFromTab(tab);
const isTabSelected = tab.hasClass("selected"); const isTabSelected = tab.classList.contains("selected");
const newTabToSelect = isTabSelected ? (tab.nextSibling || tab.previousSibling) : null; const newTabToSelect = isTabSelected ? (tab.nextSibling || tab.previousSibling) : null;
const currentSearchId = getSelectedSearchId(); const currentSearchId = getSelectedSearchId();

View file

@ -17,33 +17,33 @@
MochaUI.initializeTabs("aboutTabs"); MochaUI.initializeTabs("aboutTabs");
$("aboutAboutLink").addEventListener("click", () => { $("aboutAboutLink").addEventListener("click", () => {
$$(".aboutTabContent").addClass("invisible"); $$(".aboutTabContent").forEach(tab => { tab.classList.add("invisible"); });
$("aboutAboutContent").removeClass("invisible"); $("aboutAboutContent").classList.remove("invisible");
}); });
$("aboutAuthorLink").addEventListener("click", () => { $("aboutAuthorLink").addEventListener("click", () => {
$$(".aboutTabContent").addClass("invisible"); $$(".aboutTabContent").forEach(tab => { tab.classList.add("invisible"); });
$("aboutAuthorContent").removeClass("invisible"); $("aboutAuthorContent").classList.remove("invisible");
}); });
$("aboutSpecialThanksLink").addEventListener("click", () => { $("aboutSpecialThanksLink").addEventListener("click", () => {
$$(".aboutTabContent").addClass("invisible"); $$(".aboutTabContent").forEach(tab => { tab.classList.add("invisible"); });
$("aboutSpecialThanksContent").removeClass("invisible"); $("aboutSpecialThanksContent").classList.remove("invisible");
}); });
$("aboutTranslatorsLink").addEventListener("click", () => { $("aboutTranslatorsLink").addEventListener("click", () => {
$$(".aboutTabContent").addClass("invisible"); $$(".aboutTabContent").forEach(tab => { tab.classList.add("invisible"); });
$("aboutTranslatorsContent").removeClass("invisible"); $("aboutTranslatorsContent").classList.remove("invisible");
}); });
$("aboutLicenseLink").addEventListener("click", () => { $("aboutLicenseLink").addEventListener("click", () => {
$$(".aboutTabContent").addClass("invisible"); $$(".aboutTabContent").forEach(tab => { tab.classList.add("invisible"); });
$("aboutLicenseContent").removeClass("invisible"); $("aboutLicenseContent").classList.remove("invisible");
}); });
$("aboutSoftwareUsedLink").addEventListener("click", () => { $("aboutSoftwareUsedLink").addEventListener("click", () => {
$$(".aboutTabContent").addClass("invisible"); $$(".aboutTabContent").forEach(tab => { tab.classList.add("invisible"); });
$("aboutSoftwareUsedContent").removeClass("invisible"); $("aboutSoftwareUsedContent").classList.remove("invisible");
}); });
})(); })();
</script> </script>

View file

@ -108,7 +108,7 @@
}; };
const save = () => { const save = () => {
const rows = [...document.querySelectorAll("#manageCookiesTable tbody tr")].filter(e => !e.hasClass("invisible")); const rows = [...document.querySelectorAll("#manageCookiesTable tbody tr")].filter(e => !e.classList.contains("invisible"));
const cookies = rows.map(row => { const cookies = rows.map(row => {
const expDateValue = row.querySelector("td.expDate input").valueAsNumber; const expDateValue = row.querySelector("td.expDate input").valueAsNumber;
// remove ms from string // remove ms from string

View file

@ -306,14 +306,14 @@
currentSelectedTab = tab; currentSelectedTab = tab;
if (currentSelectedTab === "main") { if (currentSelectedTab === "main") {
selectBox.enable(); selectBox.enable();
$("logMessageView").removeClass("invisible"); $("logMessageView").classList.remove("invisible");
$("logPeerView").addClass("invisible"); $("logPeerView").classList.add("invisible");
resetTableTimer("peer"); resetTableTimer("peer");
} }
else { else {
selectBox.disable(); selectBox.disable();
$("logMessageView").addClass("invisible"); $("logMessageView").classList.add("invisible");
$("logPeerView").removeClass("invisible"); $("logPeerView").classList.remove("invisible");
resetTableTimer("main"); resetTableTimer("main");
} }
@ -370,7 +370,7 @@
onSuccess: (response) => { onSuccess: (response) => {
$("error_div").textContent = ""; $("error_div").textContent = "";
if ($("logTabColumn").hasClass("invisible")) if ($("logTabColumn").classList.contains("invisible"))
return; return;
if (response.length > 0) { if (response.length > 0) {

View file

@ -37,36 +37,36 @@
MochaUI.initializeTabs("preferencesTabs"); MochaUI.initializeTabs("preferencesTabs");
$("PrefBehaviorLink").addEventListener("click", (e) => { $("PrefBehaviorLink").addEventListener("click", (e) => {
$$(".PrefTab").addClass("invisible"); $$(".PrefTab").forEach(tab => { tab.classList.add("invisible"); });
$("BehaviorTab").removeClass("invisible"); $("BehaviorTab").classList.remove("invisible");
}); });
$("PrefDownloadsLink").addEventListener("click", (e) => { $("PrefDownloadsLink").addEventListener("click", (e) => {
$$(".PrefTab").addClass("invisible"); $$(".PrefTab").forEach(tab => { tab.classList.add("invisible"); });
$("DownloadsTab").removeClass("invisible"); $("DownloadsTab").classList.remove("invisible");
}); });
$("PrefConnectionLink").addEventListener("click", (e) => { $("PrefConnectionLink").addEventListener("click", (e) => {
$$(".PrefTab").addClass("invisible"); $$(".PrefTab").forEach(tab => { tab.classList.add("invisible"); });
$("ConnectionTab").removeClass("invisible"); $("ConnectionTab").classList.remove("invisible");
}); });
$("PrefSpeedLink").addEventListener("click", (e) => { $("PrefSpeedLink").addEventListener("click", (e) => {
$$(".PrefTab").addClass("invisible"); $$(".PrefTab").forEach(tab => { tab.classList.add("invisible"); });
$("SpeedTab").removeClass("invisible"); $("SpeedTab").classList.remove("invisible");
}); });
$("PrefBittorrentLink").addEventListener("click", (e) => { $("PrefBittorrentLink").addEventListener("click", (e) => {
$$(".PrefTab").addClass("invisible"); $$(".PrefTab").forEach(tab => { tab.classList.add("invisible"); });
$("BittorrentTab").removeClass("invisible"); $("BittorrentTab").classList.remove("invisible");
}); });
$("PrefRSSLink").addEventListener("click", (e) => { $("PrefRSSLink").addEventListener("click", (e) => {
$$(".PrefTab").addClass("invisible"); $$(".PrefTab").forEach(tab => { tab.classList.add("invisible"); });
$("RSSTab").removeClass("invisible"); $("RSSTab").classList.remove("invisible");
}); });
$("PrefWebUILink").addEventListener("click", (e) => { $("PrefWebUILink").addEventListener("click", (e) => {
$$(".PrefTab").addClass("invisible"); $$(".PrefTab").forEach(tab => { tab.classList.add("invisible"); });
$("WebUITab").removeClass("invisible"); $("WebUITab").classList.remove("invisible");
}); });
$("PrefAdvancedLink").addEventListener("click", (e) => { $("PrefAdvancedLink").addEventListener("click", (e) => {
$$(".PrefTab").addClass("invisible"); $$(".PrefTab").forEach(tab => { tab.classList.add("invisible"); });
$("AdvancedTab").removeClass("invisible"); $("AdvancedTab").classList.remove("invisible");
}); });
})(); })();
</script> </script>

View file

@ -215,7 +215,7 @@
const pref = window.parent.qBittorrent.Cache.preferences.get(); const pref = window.parent.qBittorrent.Cache.preferences.get();
if (!pref.rss_processing_enabled) if (!pref.rss_processing_enabled)
$("rssFetchingDisabled").removeClass("invisible"); $("rssFetchingDisabled").classList.remove("invisible");
const rssFeedContextMenu = new window.qBittorrent.ContextMenu.RssFeedContextMenu({ const rssFeedContextMenu = new window.qBittorrent.ContextMenu.RssFeedContextMenu({
targets: "#rssFeedTableDiv tr", targets: "#rssFeedTableDiv tr",

View file

@ -370,7 +370,7 @@ Supports the formats: S01E01, 1x1, 2017.12.31 and 31.12.2017 (Date formats also
const pref = window.parent.qBittorrent.Cache.preferences.get(); const pref = window.parent.qBittorrent.Cache.preferences.get();
if (!pref.rss_auto_downloading_enabled) if (!pref.rss_auto_downloading_enabled)
$("rssDownloaderDisabled").removeClass("invisible"); $("rssDownloaderDisabled").classList.remove("invisible");
// recalculate height // recalculate height
const warningHeight = $("rssDownloaderDisabled").getBoundingClientRect().height; const warningHeight = $("rssDownloaderDisabled").getBoundingClientRect().height;