mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2025-12-17 14:08:03 -06:00
WebUI: use local preference class locally
This commit is contained in:
@@ -76,48 +76,50 @@
|
||||
const fileRenamer = new window.qBittorrent.MultiRename.RenameFiles();
|
||||
fileRenamer.hash = data.hash;
|
||||
|
||||
const localPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
|
||||
// Load Multi Rename Preferences
|
||||
const multiRenamePrefChecked = LocalPreferences.get("multirename_rememberPreferences", "true") === "true";
|
||||
const multiRenamePrefChecked = localPreferences.get("multirename_rememberPreferences", "true") === "true";
|
||||
document.getElementById("multirename_rememberprefs_checkbox").checked = multiRenamePrefChecked;
|
||||
|
||||
if (multiRenamePrefChecked) {
|
||||
const multirename_search = LocalPreferences.get("multirename_search", "");
|
||||
const multirename_search = localPreferences.get("multirename_search", "");
|
||||
fileRenamer.setSearch(multirename_search);
|
||||
document.getElementById("multiRenameSearch").value = multirename_search;
|
||||
|
||||
const multirename_useRegex = LocalPreferences.get("multirename_useRegex", false);
|
||||
const multirename_useRegex = localPreferences.get("multirename_useRegex", false);
|
||||
fileRenamer.useRegex = multirename_useRegex === "true";
|
||||
document.getElementById("use_regex_search").checked = fileRenamer.useRegex;
|
||||
|
||||
const multirename_matchAllOccurrences = LocalPreferences.get("multirename_matchAllOccurrences", false);
|
||||
const multirename_matchAllOccurrences = localPreferences.get("multirename_matchAllOccurrences", false);
|
||||
fileRenamer.matchAllOccurrences = multirename_matchAllOccurrences === "true";
|
||||
document.getElementById("match_all_occurrences").checked = fileRenamer.matchAllOccurrences;
|
||||
|
||||
const multirename_caseSensitive = LocalPreferences.get("multirename_caseSensitive", false);
|
||||
const multirename_caseSensitive = localPreferences.get("multirename_caseSensitive", false);
|
||||
fileRenamer.caseSensitive = multirename_caseSensitive === "true";
|
||||
document.getElementById("case_sensitive").checked = fileRenamer.caseSensitive;
|
||||
|
||||
const multirename_replace = LocalPreferences.get("multirename_replace", "");
|
||||
const multirename_replace = localPreferences.get("multirename_replace", "");
|
||||
fileRenamer.setReplacement(multirename_replace);
|
||||
document.getElementById("multiRenameReplace").value = multirename_replace;
|
||||
|
||||
const multirename_appliesTo = LocalPreferences.get("multirename_appliesTo", window.qBittorrent.MultiRename.AppliesTo.FilenameExtension);
|
||||
const multirename_appliesTo = localPreferences.get("multirename_appliesTo", window.qBittorrent.MultiRename.AppliesTo.FilenameExtension);
|
||||
fileRenamer.appliesTo = window.qBittorrent.MultiRename.AppliesTo[multirename_appliesTo];
|
||||
document.getElementById("applies_to_option").value = fileRenamer.appliesTo;
|
||||
|
||||
const multirename_includeFiles = LocalPreferences.get("multirename_includeFiles", true);
|
||||
const multirename_includeFiles = localPreferences.get("multirename_includeFiles", true);
|
||||
fileRenamer.includeFiles = multirename_includeFiles === "true";
|
||||
document.getElementById("include_files").checked = fileRenamer.includeFiles;
|
||||
|
||||
const multirename_includeFolders = LocalPreferences.get("multirename_includeFolders", false);
|
||||
const multirename_includeFolders = localPreferences.get("multirename_includeFolders", false);
|
||||
fileRenamer.includeFolders = multirename_includeFolders === "true";
|
||||
document.getElementById("include_folders").checked = fileRenamer.includeFolders;
|
||||
|
||||
const multirename_fileEnumerationStart = LocalPreferences.get("multirename_fileEnumerationStart", 0);
|
||||
const multirename_fileEnumerationStart = localPreferences.get("multirename_fileEnumerationStart", 0);
|
||||
fileRenamer.fileEnumerationStart = Number(multirename_fileEnumerationStart);
|
||||
document.getElementById("file_counter").value = fileRenamer.fileEnumerationStart;
|
||||
|
||||
const multirename_replaceAll = LocalPreferences.get("multirename_replaceAll", false);
|
||||
const multirename_replaceAll = localPreferences.get("multirename_replaceAll", false);
|
||||
fileRenamer.replaceAll = multirename_replaceAll === "true";
|
||||
const renameButtonValue = fileRenamer.replaceAll ? "Replace All" : "Replace";
|
||||
document.getElementById("renameOptions").value = renameButtonValue;
|
||||
@@ -137,22 +139,22 @@
|
||||
|
||||
// Search input has changed
|
||||
document.getElementById("multiRenameSearch").style["border-color"] = "";
|
||||
LocalPreferences.set("multirename_search", sanitized);
|
||||
localPreferences.set("multirename_search", sanitized);
|
||||
fileRenamer.setSearch(sanitized);
|
||||
});
|
||||
document.getElementById("use_regex_search").addEventListener("change", (e) => {
|
||||
fileRenamer.useRegex = e.target.checked;
|
||||
LocalPreferences.set("multirename_useRegex", e.target.checked);
|
||||
localPreferences.set("multirename_useRegex", e.target.checked);
|
||||
fileRenamer.update();
|
||||
});
|
||||
document.getElementById("match_all_occurrences").addEventListener("change", (e) => {
|
||||
fileRenamer.matchAllOccurrences = e.target.checked;
|
||||
LocalPreferences.set("multirename_matchAllOccurrences", e.target.checked);
|
||||
localPreferences.set("multirename_matchAllOccurrences", e.target.checked);
|
||||
fileRenamer.update();
|
||||
});
|
||||
document.getElementById("case_sensitive").addEventListener("change", (e) => {
|
||||
fileRenamer.caseSensitive = e.target.checked;
|
||||
LocalPreferences.set("multirename_caseSensitive", e.target.checked);
|
||||
localPreferences.set("multirename_caseSensitive", e.target.checked);
|
||||
fileRenamer.update();
|
||||
});
|
||||
|
||||
@@ -184,22 +186,22 @@
|
||||
|
||||
// Replace input has changed
|
||||
document.getElementById("multiRenameReplace").style["border-color"] = "";
|
||||
LocalPreferences.set("multirename_replace", sanitized);
|
||||
localPreferences.set("multirename_replace", sanitized);
|
||||
fileRenamer.setReplacement(sanitized);
|
||||
});
|
||||
document.getElementById("applies_to_option").addEventListener("change", (e) => {
|
||||
fileRenamer.appliesTo = e.target.value;
|
||||
LocalPreferences.set("multirename_appliesTo", e.target.value);
|
||||
localPreferences.set("multirename_appliesTo", e.target.value);
|
||||
fileRenamer.update();
|
||||
});
|
||||
document.getElementById("include_files").addEventListener("change", (e) => {
|
||||
fileRenamer.includeFiles = e.target.checked;
|
||||
LocalPreferences.set("multirename_includeFiles", e.target.checked);
|
||||
localPreferences.set("multirename_includeFiles", e.target.checked);
|
||||
fileRenamer.update();
|
||||
});
|
||||
document.getElementById("include_folders").addEventListener("change", (e) => {
|
||||
fileRenamer.includeFolders = e.target.checked;
|
||||
LocalPreferences.set("multirename_includeFolders", e.target.checked);
|
||||
localPreferences.set("multirename_includeFolders", e.target.checked);
|
||||
fileRenamer.update();
|
||||
});
|
||||
document.getElementById("file_counter").addEventListener("input", (e) => {
|
||||
@@ -212,7 +214,7 @@
|
||||
value = 99999999;
|
||||
fileRenamer.fileEnumerationStart = value;
|
||||
document.getElementById("file_counter").value = value;
|
||||
LocalPreferences.set("multirename_fileEnumerationStart", value);
|
||||
localPreferences.set("multirename_fileEnumerationStart", value);
|
||||
fileRenamer.update();
|
||||
});
|
||||
|
||||
@@ -278,7 +280,7 @@
|
||||
fileRenamer.replaceAll = true;
|
||||
else
|
||||
fileRenamer.replaceAll = false;
|
||||
LocalPreferences.set("multirename_replaceAll", fileRenamer.replaceAll);
|
||||
localPreferences.set("multirename_replaceAll", fileRenamer.replaceAll);
|
||||
document.getElementById("renameButton").value = replaceOperation;
|
||||
});
|
||||
document.getElementById("closeButton").addEventListener("click", (event) => {
|
||||
@@ -400,7 +402,7 @@
|
||||
<div style="padding: 0px 10px 0px 0px;">
|
||||
<div style="float: left; height: 100%; width: 228px;">
|
||||
<div class="formRow">
|
||||
<input type="checkbox" id="multirename_rememberprefs_checkbox" onchange="LocalPreferences.set('multirename_rememberPreferences', this.checked);">
|
||||
<input type="checkbox" id="multirename_rememberprefs_checkbox" onchange="localPreferences.set('multirename_rememberPreferences', this.checked);">
|
||||
<label for="multirename_rememberprefs_checkbox">QBT_TR(Remember Multi-Rename settings)QBT_TR[CONTEXT=OptionsDialog]</label>
|
||||
</div>
|
||||
<hr>
|
||||
|
||||
@@ -43,10 +43,10 @@ window.qBittorrent.AddTorrent ??= (() => {
|
||||
let windowId = "";
|
||||
let source = "";
|
||||
|
||||
const LocalPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
const localPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
|
||||
const getCategories = () => {
|
||||
const defaultCategory = LocalPreferences.get("add_torrent_default_category", "");
|
||||
const defaultCategory = localPreferences.get("add_torrent_default_category", "");
|
||||
const categorySelect = document.getElementById("categorySelect");
|
||||
for (const name of window.parent.qBittorrent.Client.categoryMap.keys()) {
|
||||
const option = document.createElement("option");
|
||||
@@ -312,9 +312,9 @@ window.qBittorrent.AddTorrent ??= (() => {
|
||||
if (document.getElementById("setDefaultCategory").checked) {
|
||||
const category = document.getElementById("category").value.trim();
|
||||
if (category.length === 0)
|
||||
LocalPreferences.remove("add_torrent_default_category");
|
||||
localPreferences.remove("add_torrent_default_category");
|
||||
else
|
||||
LocalPreferences.set("add_torrent_default_category", category);
|
||||
localPreferences.set("add_torrent_default_category", category);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -212,6 +212,7 @@ Object.freeze(window.qBittorrent.Client);
|
||||
window.qBittorrent.Client.setup();
|
||||
|
||||
// TODO: move global functions/variables into some namespace/scope
|
||||
const localPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
|
||||
this.torrentsTable = new window.qBittorrent.DynamicTable.TorrentsTable();
|
||||
|
||||
@@ -223,21 +224,21 @@ let queueing_enabled = true;
|
||||
let serverSyncMainDataInterval = 1500;
|
||||
let customSyncMainDataInterval = null;
|
||||
let useSubcategories = true;
|
||||
const useAutoHideZeroStatusFilters = LocalPreferences.get("hide_zero_status_filters", "false") === "true";
|
||||
const displayFullURLTrackerColumn = LocalPreferences.get("full_url_tracker_column", "false") === "true";
|
||||
const useAutoHideZeroStatusFilters = localPreferences.get("hide_zero_status_filters", "false") === "true";
|
||||
const displayFullURLTrackerColumn = localPreferences.get("full_url_tracker_column", "false") === "true";
|
||||
|
||||
/* Categories filter */
|
||||
const CATEGORIES_ALL = "b4af0e4c-e76d-4bac-a392-46cbc18d9655";
|
||||
const CATEGORIES_UNCATEGORIZED = "e24bd469-ea22-404c-8e2e-a17c82f37ea0";
|
||||
|
||||
let selectedCategory = LocalPreferences.get("selected_category", CATEGORIES_ALL);
|
||||
let selectedCategory = localPreferences.get("selected_category", CATEGORIES_ALL);
|
||||
let setCategoryFilter = () => {};
|
||||
|
||||
/* Tags filter */
|
||||
const TAGS_ALL = "b4af0e4c-e76d-4bac-a392-46cbc18d9655";
|
||||
const TAGS_UNTAGGED = "e24bd469-ea22-404c-8e2e-a17c82f37ea0";
|
||||
|
||||
let selectedTag = LocalPreferences.get("selected_tag", TAGS_ALL);
|
||||
let selectedTag = localPreferences.get("selected_tag", TAGS_ALL);
|
||||
let setTagFilter = () => {};
|
||||
|
||||
/* Trackers filter */
|
||||
@@ -250,11 +251,11 @@ const TRACKERS_WARNING = "82a702c5-210c-412b-829f-97632d7557e9";
|
||||
// Map<trackerHost: String, Map<trackerURL: String, torrents: Set>>
|
||||
const trackerMap = new Map();
|
||||
|
||||
let selectedTracker = LocalPreferences.get("selected_tracker", TRACKERS_ALL);
|
||||
let selectedTracker = localPreferences.get("selected_tracker", TRACKERS_ALL);
|
||||
let setTrackerFilter = () => {};
|
||||
|
||||
/* All filters */
|
||||
let selectedStatus = LocalPreferences.get("selected_filter", "all");
|
||||
let selectedStatus = localPreferences.get("selected_filter", "all");
|
||||
let setStatusFilter = () => {};
|
||||
let toggleFilterDisplay = () => {};
|
||||
|
||||
@@ -267,9 +268,9 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
|
||||
const saveColumnSizes = () => {
|
||||
const filters_width = document.getElementById("Filters").getSize().x;
|
||||
LocalPreferences.set("filters_width", filters_width);
|
||||
localPreferences.set("filters_width", filters_width);
|
||||
const properties_height_rel = document.getElementById("propertiesPanel").getSize().y / Window.getSize().y;
|
||||
LocalPreferences.set("properties_height_rel", properties_height_rel);
|
||||
localPreferences.set("properties_height_rel", properties_height_rel);
|
||||
};
|
||||
|
||||
window.addEventListener("resize", window.qBittorrent.Misc.createDebounceHandler(500, (e) => {
|
||||
@@ -290,7 +291,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
onResize: window.qBittorrent.Misc.createDebounceHandler(500, (e) => {
|
||||
saveColumnSizes();
|
||||
}),
|
||||
width: Number(LocalPreferences.get("filters_width", 210)),
|
||||
width: Number(localPreferences.get("filters_width", 210)),
|
||||
resizeLimit: [1, 1000]
|
||||
});
|
||||
new MochaUI.Column({
|
||||
@@ -352,7 +353,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
setStatusFilter = (name) => {
|
||||
const currentHash = torrentsTable.getCurrentTorrentID();
|
||||
|
||||
LocalPreferences.set("selected_filter", name);
|
||||
localPreferences.set("selected_filter", name);
|
||||
selectedStatus = name;
|
||||
highlightSelectedStatus();
|
||||
updateMainData();
|
||||
@@ -364,7 +365,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
setCategoryFilter = (category) => {
|
||||
const currentHash = torrentsTable.getCurrentTorrentID();
|
||||
|
||||
LocalPreferences.set("selected_category", category);
|
||||
localPreferences.set("selected_category", category);
|
||||
selectedCategory = category;
|
||||
highlightSelectedCategory();
|
||||
updateMainData();
|
||||
@@ -376,7 +377,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
setTagFilter = (tag) => {
|
||||
const currentHash = torrentsTable.getCurrentTorrentID();
|
||||
|
||||
LocalPreferences.set("selected_tag", tag);
|
||||
localPreferences.set("selected_tag", tag);
|
||||
selectedTag = tag;
|
||||
highlightSelectedTag();
|
||||
updateMainData();
|
||||
@@ -388,7 +389,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
setTrackerFilter = (tracker) => {
|
||||
const currentHash = torrentsTable.getCurrentTorrentID();
|
||||
|
||||
LocalPreferences.set("selected_tracker", tracker);
|
||||
localPreferences.set("selected_tracker", tracker);
|
||||
selectedTracker = tracker;
|
||||
highlightSelectedTracker();
|
||||
updateMainData();
|
||||
@@ -402,7 +403,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
const filterTitle = filterList.previousElementSibling;
|
||||
const toggleIcon = filterTitle.firstElementChild;
|
||||
toggleIcon.classList.toggle("rotate");
|
||||
LocalPreferences.set(`filter_${filterListID.replace("FilterList", "")}_collapsed`, filterList.classList.toggle("invisible").toString());
|
||||
localPreferences.set(`filter_${filterListID.replace("FilterList", "")}_collapsed`, filterList.classList.toggle("invisible").toString());
|
||||
};
|
||||
|
||||
new MochaUI.Panel({
|
||||
@@ -426,35 +427,35 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
initializeWindows();
|
||||
|
||||
// Show Top Toolbar is enabled by default
|
||||
let showTopToolbar = LocalPreferences.get("show_top_toolbar", "true") === "true";
|
||||
let showTopToolbar = localPreferences.get("show_top_toolbar", "true") === "true";
|
||||
if (!showTopToolbar) {
|
||||
document.getElementById("showTopToolbarLink").firstElementChild.style.opacity = "0";
|
||||
document.getElementById("mochaToolbar").classList.add("invisible");
|
||||
}
|
||||
|
||||
// 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) {
|
||||
document.getElementById("showStatusBarLink").firstElementChild.style.opacity = "0";
|
||||
document.getElementById("desktopFooterWrapper").classList.add("invisible");
|
||||
}
|
||||
|
||||
// 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) {
|
||||
document.getElementById("showFiltersSidebarLink").firstElementChild.style.opacity = "0";
|
||||
document.getElementById("filtersColumn").classList.add("invisible");
|
||||
document.getElementById("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";
|
||||
if (!speedInTitle)
|
||||
document.getElementById("speedInBrowserTitleBarLink").firstElementChild.style.opacity = "0";
|
||||
|
||||
// After showing/hiding the toolbar + status bar
|
||||
window.qBittorrent.Client.showSearchEngine(LocalPreferences.get("show_search_engine") !== "false");
|
||||
window.qBittorrent.Client.showRssReader(LocalPreferences.get("show_rss_reader") !== "false");
|
||||
window.qBittorrent.Client.showLogViewer(LocalPreferences.get("show_log_viewer") === "true");
|
||||
window.qBittorrent.Client.showSearchEngine(localPreferences.get("show_search_engine") !== "false");
|
||||
window.qBittorrent.Client.showRssReader(localPreferences.get("show_rss_reader") !== "false");
|
||||
window.qBittorrent.Client.showLogViewer(localPreferences.get("show_log_viewer") === "true");
|
||||
|
||||
// After Show Top Toolbar
|
||||
MochaUI.Desktop.setDesktopSize();
|
||||
@@ -617,8 +618,8 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
stack.push({ parent: unorderedList, category: subcategory });
|
||||
}
|
||||
const categoryLocalPref = `category_${category.categoryName}_collapsed`;
|
||||
const isCollapsed = !category.forceExpand && (LocalPreferences.get(categoryLocalPref, "false") === "true");
|
||||
LocalPreferences.set(categoryLocalPref, listItem.classList.toggle("collapsedCategory", isCollapsed).toString());
|
||||
const isCollapsed = !category.forceExpand && (localPreferences.get(categoryLocalPref, "false") === "true");
|
||||
localPreferences.set(categoryLocalPref, listItem.classList.toggle("collapsedCategory", isCollapsed).toString());
|
||||
}
|
||||
};
|
||||
|
||||
@@ -637,7 +638,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
...(useSubcategories && {
|
||||
children: [],
|
||||
isRoot: true,
|
||||
forceExpand: LocalPreferences.get(`category_${category}_collapsed`) === null
|
||||
forceExpand: localPreferences.get(`category_${category}_collapsed`) === null
|
||||
})
|
||||
});
|
||||
}
|
||||
@@ -968,7 +969,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
trackerMap.delete(host);
|
||||
if (selectedTracker === host) {
|
||||
selectedTracker = TRACKERS_ALL;
|
||||
LocalPreferences.set("selected_tracker", selectedTracker);
|
||||
localPreferences.set("selected_tracker", selectedTracker);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1223,7 +1224,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
|
||||
document.getElementById("showTopToolbarLink").addEventListener("click", (e) => {
|
||||
showTopToolbar = !showTopToolbar;
|
||||
LocalPreferences.set("show_top_toolbar", showTopToolbar.toString());
|
||||
localPreferences.set("show_top_toolbar", showTopToolbar.toString());
|
||||
if (showTopToolbar) {
|
||||
document.getElementById("showTopToolbarLink").firstElementChild.style.opacity = "1";
|
||||
document.getElementById("mochaToolbar").classList.remove("invisible");
|
||||
@@ -1237,7 +1238,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
|
||||
document.getElementById("showStatusBarLink").addEventListener("click", (e) => {
|
||||
showStatusBar = !showStatusBar;
|
||||
LocalPreferences.set("show_status_bar", showStatusBar.toString());
|
||||
localPreferences.set("show_status_bar", showStatusBar.toString());
|
||||
if (showStatusBar) {
|
||||
document.getElementById("showStatusBarLink").firstElementChild.style.opacity = "1";
|
||||
document.getElementById("desktopFooterWrapper").classList.remove("invisible");
|
||||
@@ -1274,7 +1275,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
|
||||
document.getElementById("showFiltersSidebarLink").addEventListener("click", (e) => {
|
||||
showFiltersSidebar = !showFiltersSidebar;
|
||||
LocalPreferences.set("show_filters_sidebar", showFiltersSidebar.toString());
|
||||
localPreferences.set("show_filters_sidebar", showFiltersSidebar.toString());
|
||||
if (showFiltersSidebar) {
|
||||
document.getElementById("showFiltersSidebarLink").firstElementChild.style.opacity = "1";
|
||||
document.getElementById("filtersColumn").classList.remove("invisible");
|
||||
@@ -1290,7 +1291,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
|
||||
document.getElementById("speedInBrowserTitleBarLink").addEventListener("click", (e) => {
|
||||
speedInTitle = !speedInTitle;
|
||||
LocalPreferences.set("speed_in_browser_title_bar", speedInTitle.toString());
|
||||
localPreferences.set("speed_in_browser_title_bar", speedInTitle.toString());
|
||||
if (speedInTitle)
|
||||
document.getElementById("speedInBrowserTitleBarLink").firstElementChild.style.opacity = "1";
|
||||
else
|
||||
@@ -1300,19 +1301,19 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
|
||||
document.getElementById("showSearchEngineLink").addEventListener("click", (e) => {
|
||||
window.qBittorrent.Client.showSearchEngine(!window.qBittorrent.Client.isShowSearchEngine());
|
||||
LocalPreferences.set("show_search_engine", window.qBittorrent.Client.isShowSearchEngine().toString());
|
||||
localPreferences.set("show_search_engine", window.qBittorrent.Client.isShowSearchEngine().toString());
|
||||
updateTabDisplay();
|
||||
});
|
||||
|
||||
document.getElementById("showRssReaderLink").addEventListener("click", (e) => {
|
||||
window.qBittorrent.Client.showRssReader(!window.qBittorrent.Client.isShowRssReader());
|
||||
LocalPreferences.set("show_rss_reader", window.qBittorrent.Client.isShowRssReader().toString());
|
||||
localPreferences.set("show_rss_reader", window.qBittorrent.Client.isShowRssReader().toString());
|
||||
updateTabDisplay();
|
||||
});
|
||||
|
||||
document.getElementById("showLogViewerLink").addEventListener("click", (e) => {
|
||||
window.qBittorrent.Client.showLogViewer(!window.qBittorrent.Client.isShowLogViewer());
|
||||
LocalPreferences.set("show_log_viewer", window.qBittorrent.Client.isShowLogViewer().toString());
|
||||
localPreferences.set("show_log_viewer", window.qBittorrent.Client.isShowLogViewer().toString());
|
||||
updateTabDisplay();
|
||||
});
|
||||
|
||||
@@ -1369,7 +1370,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
// main window tabs
|
||||
|
||||
const showTransfersTab = () => {
|
||||
const showFiltersSidebar = LocalPreferences.get("show_filters_sidebar", "true") === "true";
|
||||
const showFiltersSidebar = localPreferences.get("show_filters_sidebar", "true") === "true";
|
||||
if (showFiltersSidebar) {
|
||||
document.getElementById("filtersColumn").classList.remove("invisible");
|
||||
document.getElementById("filtersColumn_handle").classList.remove("invisible");
|
||||
@@ -1384,7 +1385,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
hideRssTab();
|
||||
hideLogTab();
|
||||
|
||||
LocalPreferences.set("selected_window_tab", "transfers");
|
||||
localPreferences.set("selected_window_tab", "transfers");
|
||||
};
|
||||
|
||||
const hideTransfersTab = () => {
|
||||
@@ -1420,7 +1421,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
hideRssTab();
|
||||
hideLogTab();
|
||||
|
||||
LocalPreferences.set("selected_window_tab", "search");
|
||||
localPreferences.set("selected_window_tab", "search");
|
||||
};
|
||||
})();
|
||||
|
||||
@@ -1457,7 +1458,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
hideSearchTab();
|
||||
hideLogTab();
|
||||
|
||||
LocalPreferences.set("selected_window_tab", "rss");
|
||||
localPreferences.set("selected_window_tab", "rss");
|
||||
};
|
||||
})();
|
||||
|
||||
@@ -1495,7 +1496,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
hideSearchTab();
|
||||
hideRssTab();
|
||||
|
||||
LocalPreferences.set("selected_window_tab", "log");
|
||||
localPreferences.set("selected_window_tab", "log");
|
||||
};
|
||||
})();
|
||||
|
||||
@@ -1627,7 +1628,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
}),
|
||||
height: null
|
||||
});
|
||||
let prop_h = LocalPreferences.get("properties_height_rel");
|
||||
let prop_h = localPreferences.get("properties_height_rel");
|
||||
if (prop_h !== null)
|
||||
prop_h = Number(prop_h) * Window.getSize().y;
|
||||
else
|
||||
@@ -1652,7 +1653,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
],
|
||||
onload: () => {
|
||||
updatePropertiesPanel = () => {
|
||||
switch (LocalPreferences.get("selected_properties_tab")) {
|
||||
switch (localPreferences.get("selected_properties_tab")) {
|
||||
case "propGeneralLink":
|
||||
window.qBittorrent.PropGeneral.updateData();
|
||||
break;
|
||||
@@ -1679,7 +1680,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
|
||||
const togglePropertiesPanel = () => {
|
||||
this.collapseToggleEl.click();
|
||||
LocalPreferences.set("properties_panel_collapsed", this.isCollapsed.toString());
|
||||
localPreferences.set("properties_panel_collapsed", this.isCollapsed.toString());
|
||||
};
|
||||
|
||||
const selectTab = (tabID) => {
|
||||
@@ -1692,17 +1693,17 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
for (const tabContent of this.contentEl.children)
|
||||
tabContent.classList.toggle("invisible", tabContent.id !== tabContentID);
|
||||
|
||||
LocalPreferences.set("selected_properties_tab", tabID);
|
||||
localPreferences.set("selected_properties_tab", tabID);
|
||||
}
|
||||
|
||||
if (isAlreadySelected || this.isCollapsed)
|
||||
togglePropertiesPanel();
|
||||
};
|
||||
|
||||
const lastUsedTab = LocalPreferences.get("selected_properties_tab", "propGeneralLink");
|
||||
const lastUsedTab = localPreferences.get("selected_properties_tab", "propGeneralLink");
|
||||
selectTab(lastUsedTab);
|
||||
|
||||
const startCollapsed = LocalPreferences.get("properties_panel_collapsed", "false") === "true";
|
||||
const startCollapsed = localPreferences.get("properties_panel_collapsed", "false") === "true";
|
||||
if (startCollapsed)
|
||||
togglePropertiesPanel();
|
||||
|
||||
@@ -1893,7 +1894,7 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
||||
if (document.hidden)
|
||||
return;
|
||||
|
||||
switch (LocalPreferences.get("selected_window_tab")) {
|
||||
switch (localPreferences.get("selected_window_tab")) {
|
||||
case "log":
|
||||
window.qBittorrent.Log.load();
|
||||
break;
|
||||
@@ -1909,7 +1910,7 @@ window.addEventListener("load", async (event) => {
|
||||
await window.qBittorrent.Client.initializeCaches();
|
||||
|
||||
// switch to previously used tab
|
||||
const previouslyUsedTab = LocalPreferences.get("selected_window_tab", "transfers");
|
||||
const previouslyUsedTab = localPreferences.get("selected_window_tab", "transfers");
|
||||
switch (previouslyUsedTab) {
|
||||
case "search":
|
||||
if (window.qBittorrent.Client.isShowSearchEngine())
|
||||
|
||||
@@ -36,12 +36,12 @@ window.qBittorrent.ColorScheme ??= (() => {
|
||||
};
|
||||
};
|
||||
|
||||
const LocalPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
const localPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
const colorSchemeQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
||||
|
||||
const update = () => {
|
||||
const root = document.documentElement;
|
||||
const colorScheme = LocalPreferences.get("color_scheme");
|
||||
const colorScheme = localPreferences.get("color_scheme");
|
||||
const validScheme = (colorScheme === "light") || (colorScheme === "dark");
|
||||
const isDark = colorSchemeQuery.matches;
|
||||
root.classList.toggle("dark", ((!validScheme && isDark) || (colorScheme === "dark")));
|
||||
|
||||
@@ -65,8 +65,7 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
return 0;
|
||||
};
|
||||
|
||||
if (typeof LocalPreferences === "undefined")
|
||||
window.LocalPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
const localPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
|
||||
class DynamicTable {
|
||||
#DynamicTableHeaderContextMenuClass = null;
|
||||
@@ -75,7 +74,7 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
this.dynamicTableDivId = dynamicTableDivId;
|
||||
this.dynamicTableFixedHeaderDivId = dynamicTableFixedHeaderDivId;
|
||||
this.dynamicTableDiv = document.getElementById(dynamicTableDivId);
|
||||
this.useVirtualList = useVirtualList && (LocalPreferences.get("use_virtual_list", "false") === "true");
|
||||
this.useVirtualList = useVirtualList && (localPreferences.get("use_virtual_list", "false") === "true");
|
||||
this.fixedTableHeader = document.querySelector(`#${dynamicTableFixedHeaderDivId} thead tr`);
|
||||
this.hiddenTableHeader = this.dynamicTableDiv.querySelector("thead tr");
|
||||
this.table = this.dynamicTableDiv.querySelector("table");
|
||||
@@ -86,8 +85,8 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
this.selectedRows = [];
|
||||
this.columns = [];
|
||||
this.contextMenu = contextMenu;
|
||||
this.sortedColumn = LocalPreferences.get(`sorted_column_${this.dynamicTableDivId}`, 0);
|
||||
this.reverseSort = LocalPreferences.get(`reverse_sort_${this.dynamicTableDivId}`, "0");
|
||||
this.sortedColumn = localPreferences.get(`sorted_column_${this.dynamicTableDivId}`, 0);
|
||||
this.reverseSort = localPreferences.get(`reverse_sort_${this.dynamicTableDivId}`, "0");
|
||||
this.initColumns();
|
||||
this.loadColumnsOrder();
|
||||
this.updateTableHeaders();
|
||||
@@ -309,13 +308,13 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
this.saveColumnWidth(this.resizeTh.columnName);
|
||||
if ((this.currentHeaderAction === "drag") && (el !== this.lastHoverTh)) {
|
||||
this.saveColumnsOrder();
|
||||
const val = LocalPreferences.get(`columns_order_${this.dynamicTableDivId}`).split(",");
|
||||
const val = localPreferences.get(`columns_order_${this.dynamicTableDivId}`).split(",");
|
||||
val.erase(el.columnName);
|
||||
let pos = val.indexOf(this.lastHoverTh.columnName);
|
||||
if (this.dropSide === "right")
|
||||
++pos;
|
||||
val.splice(pos, 0, el.columnName);
|
||||
LocalPreferences.set(`columns_order_${this.dynamicTableDivId}`, val.join(","));
|
||||
localPreferences.set(`columns_order_${this.dynamicTableDivId}`, val.join(","));
|
||||
this.loadColumnsOrder();
|
||||
this.updateTableHeaders();
|
||||
this.tableBody.replaceChildren();
|
||||
@@ -393,7 +392,7 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
|
||||
showColumn(columnName, show) {
|
||||
this.columns[columnName].visible = show ? "1" : "0";
|
||||
LocalPreferences.set(`column_${columnName}_visible_${this.dynamicTableDivId}`, show ? "1" : "0");
|
||||
localPreferences.set(`column_${columnName}_visible_${this.dynamicTableDivId}`, show ? "1" : "0");
|
||||
this.updateColumn(columnName);
|
||||
this.columns[columnName].onVisibilityChange?.(columnName);
|
||||
}
|
||||
@@ -463,7 +462,7 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
}
|
||||
|
||||
saveColumnWidth(columnName) {
|
||||
LocalPreferences.set(`column_${columnName}_width_${this.dynamicTableDivId}`, this.columns[columnName].width);
|
||||
localPreferences.set(`column_${columnName}_width_${this.dynamicTableDivId}`, this.columns[columnName].width);
|
||||
}
|
||||
|
||||
setupHeaderMenu() {
|
||||
@@ -561,11 +560,11 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
const column = {};
|
||||
column["name"] = name;
|
||||
column["title"] = name;
|
||||
column["visible"] = LocalPreferences.get(`column_${name}_visible_${this.dynamicTableDivId}`, (defaultVisible ? "1" : "0"));
|
||||
column["visible"] = localPreferences.get(`column_${name}_visible_${this.dynamicTableDivId}`, (defaultVisible ? "1" : "0"));
|
||||
column["force_hide"] = false;
|
||||
column["caption"] = caption;
|
||||
column["style"] = style;
|
||||
column["width"] = LocalPreferences.get(`column_${name}_width_${this.dynamicTableDivId}`, defaultWidth);
|
||||
column["width"] = localPreferences.get(`column_${name}_width_${this.dynamicTableDivId}`, defaultWidth);
|
||||
column["dataProperties"] = [name];
|
||||
column["getRowValue"] = function(row, pos) {
|
||||
if (pos === undefined)
|
||||
@@ -600,7 +599,7 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
|
||||
loadColumnsOrder() {
|
||||
const columnsOrder = [];
|
||||
const val = LocalPreferences.get(`columns_order_${this.dynamicTableDivId}`);
|
||||
const val = localPreferences.get(`columns_order_${this.dynamicTableDivId}`);
|
||||
if ((val === null) || (val === undefined))
|
||||
return;
|
||||
for (const v of val.split(",")) {
|
||||
@@ -624,7 +623,7 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
val += ",";
|
||||
val += this.columns[i].name;
|
||||
}
|
||||
LocalPreferences.set(`columns_order_${this.dynamicTableDivId}`, val);
|
||||
localPreferences.set(`columns_order_${this.dynamicTableDivId}`, val);
|
||||
}
|
||||
|
||||
updateTableHeaders() {
|
||||
@@ -674,7 +673,7 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
}
|
||||
|
||||
getSortedColumn() {
|
||||
return LocalPreferences.get(`sorted_column_${this.dynamicTableDivId}`);
|
||||
return localPreferences.get(`sorted_column_${this.dynamicTableDivId}`);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -693,8 +692,8 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
this.reverseSort = reverse ?? (this.reverseSort === "0" ? "1" : "0");
|
||||
this.setSortedColumnIcon(column, null, (this.reverseSort === "1"));
|
||||
}
|
||||
LocalPreferences.set(`sorted_column_${this.dynamicTableDivId}`, column);
|
||||
LocalPreferences.set(`reverse_sort_${this.dynamicTableDivId}`, this.reverseSort);
|
||||
localPreferences.set(`sorted_column_${this.dynamicTableDivId}`, column);
|
||||
localPreferences.set(`reverse_sort_${this.dynamicTableDivId}`, this.reverseSort);
|
||||
this.updateTable(false);
|
||||
}
|
||||
|
||||
@@ -729,7 +728,7 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
}
|
||||
|
||||
setupAltRow() {
|
||||
const useAltRowColors = (LocalPreferences.get("use_alt_row_colors", "true") === "true");
|
||||
const useAltRowColors = (localPreferences.get("use_alt_row_colors", "true") === "true");
|
||||
if (useAltRowColors)
|
||||
document.getElementById(this.dynamicTableDivId).classList.add("altRowColors");
|
||||
}
|
||||
@@ -1807,7 +1806,7 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
? "dblclick_download"
|
||||
: "dblclick_complete";
|
||||
|
||||
if (LocalPreferences.get(prefKey, "1") !== "1")
|
||||
if (localPreferences.get(prefKey, "1") !== "1")
|
||||
return true;
|
||||
|
||||
if (state.includes("stopped"))
|
||||
@@ -2841,9 +2840,9 @@ window.qBittorrent.DynamicTable ??= (() => {
|
||||
|
||||
initColumns() {
|
||||
// Blocks saving header width (because window width isn't saved)
|
||||
LocalPreferences.remove(`column_checked_width_${this.dynamicTableDivId}`);
|
||||
LocalPreferences.remove(`column_original_width_${this.dynamicTableDivId}`);
|
||||
LocalPreferences.remove(`column_renamed_width_${this.dynamicTableDivId}`);
|
||||
localPreferences.remove(`column_checked_width_${this.dynamicTableDivId}`);
|
||||
localPreferences.remove(`column_original_width_${this.dynamicTableDivId}`);
|
||||
localPreferences.remove(`column_renamed_width_${this.dynamicTableDivId}`);
|
||||
this.newColumn("checked", "", "", 50, true);
|
||||
this.newColumn("original", "", "QBT_TR(Original)QBT_TR[CONTEXT=TrackerListWidget]", 270, true);
|
||||
this.newColumn("renamed", "", "QBT_TR(Renamed)QBT_TR[CONTEXT=TrackerListWidget]", 220, true);
|
||||
|
||||
@@ -108,8 +108,6 @@ window.qBittorrent.Dialog ??= (() => {
|
||||
})();
|
||||
Object.freeze(window.qBittorrent.Dialog);
|
||||
|
||||
const LocalPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
|
||||
let saveWindowSize = () => {};
|
||||
let loadWindowWidth = () => {};
|
||||
let loadWindowHeight = () => {};
|
||||
@@ -159,23 +157,25 @@ let setQueuePositionFN = () => {};
|
||||
let exportTorrentFN = () => {};
|
||||
|
||||
const initializeWindows = () => {
|
||||
const localPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
|
||||
saveWindowSize = (windowName, windowId = windowName) => {
|
||||
const windowInstance = MochaUI.Windows.instances[windowId];
|
||||
const size = windowInstance.contentWrapperEl.getSize();
|
||||
LocalPreferences.set(`window_${windowName}_width`, size.x);
|
||||
LocalPreferences.set(`window_${windowName}_height`, size.y);
|
||||
localPreferences.set(`window_${windowName}_width`, size.x);
|
||||
localPreferences.set(`window_${windowName}_height`, size.y);
|
||||
};
|
||||
|
||||
loadWindowWidth = (windowId, defaultValue, limitToViewportWidth = true) => {
|
||||
if (limitToViewportWidth)
|
||||
defaultValue = window.qBittorrent.Dialog.limitWidthToViewport(defaultValue);
|
||||
return LocalPreferences.get(`window_${windowId}_width`, defaultValue);
|
||||
return localPreferences.get(`window_${windowId}_width`, defaultValue);
|
||||
};
|
||||
|
||||
loadWindowHeight = (windowId, defaultValue, limitToViewportHeight = true) => {
|
||||
if (limitToViewportHeight)
|
||||
defaultValue = window.qBittorrent.Dialog.limitHeightToViewport(defaultValue);
|
||||
return LocalPreferences.get(`window_${windowId}_height`, defaultValue);
|
||||
return localPreferences.get(`window_${windowId}_height`, defaultValue);
|
||||
};
|
||||
|
||||
const addClickEvent = (el, fn) => {
|
||||
|
||||
@@ -46,6 +46,8 @@ window.qBittorrent.Search ??= (() => {
|
||||
};
|
||||
};
|
||||
|
||||
const localPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
|
||||
const searchTabIdPrefix = "Search-";
|
||||
let loadSearchPluginsTimer = -1;
|
||||
const searchPlugins = [];
|
||||
@@ -108,7 +110,7 @@ window.qBittorrent.Search ??= (() => {
|
||||
|
||||
const init = () => {
|
||||
// load "Search in" preference from local storage
|
||||
document.getElementById("searchInTorrentName").value = (LocalPreferences.get("search_in_filter") === "names") ? "names" : "everywhere";
|
||||
document.getElementById("searchInTorrentName").value = (localPreferences.get("search_in_filter") === "names") ? "names" : "everywhere";
|
||||
const searchResultsTableContextMenu = new window.qBittorrent.ContextMenu.ContextMenu({
|
||||
targets: "#searchResultsTableDiv tbody tr",
|
||||
menu: "searchResultsTableMenu",
|
||||
@@ -160,7 +162,7 @@ window.qBittorrent.Search ??= (() => {
|
||||
});
|
||||
|
||||
// restore search tabs
|
||||
const searchJobs = JSON.parse(LocalPreferences.get("search_jobs", "[]"));
|
||||
const searchJobs = JSON.parse(localPreferences.get("search_jobs", "[]"));
|
||||
for (const { id, pattern } of searchJobs)
|
||||
createSearchTab(id, pattern);
|
||||
};
|
||||
@@ -241,11 +243,11 @@ window.qBittorrent.Search ??= (() => {
|
||||
})
|
||||
});
|
||||
|
||||
const searchJobs = JSON.parse(LocalPreferences.get("search_jobs", "[]"));
|
||||
const searchJobs = JSON.parse(localPreferences.get("search_jobs", "[]"));
|
||||
const jobIndex = searchJobs.findIndex((job) => job.id === oldSearchId);
|
||||
if (jobIndex >= 0) {
|
||||
searchJobs[jobIndex].id = searchId;
|
||||
LocalPreferences.set("search_jobs", JSON.stringify(searchJobs));
|
||||
localPreferences.set("search_jobs", JSON.stringify(searchJobs));
|
||||
}
|
||||
|
||||
// update existing tab w/ new search id
|
||||
@@ -292,11 +294,11 @@ window.qBittorrent.Search ??= (() => {
|
||||
})
|
||||
});
|
||||
|
||||
const searchJobs = JSON.parse(LocalPreferences.get("search_jobs", "[]"));
|
||||
const searchJobs = JSON.parse(localPreferences.get("search_jobs", "[]"));
|
||||
const jobIndex = searchJobs.findIndex((job) => job.id === searchId);
|
||||
if (jobIndex >= 0) {
|
||||
searchJobs.splice(jobIndex, 1);
|
||||
LocalPreferences.set("search_jobs", JSON.stringify(searchJobs));
|
||||
localPreferences.set("search_jobs", JSON.stringify(searchJobs));
|
||||
}
|
||||
|
||||
if (numSearchTabs() === 0) {
|
||||
@@ -450,9 +452,9 @@ window.qBittorrent.Search ??= (() => {
|
||||
const searchId = responseJSON.id;
|
||||
createSearchTab(searchId, pattern);
|
||||
|
||||
const searchJobs = JSON.parse(LocalPreferences.get("search_jobs", "[]"));
|
||||
const searchJobs = JSON.parse(localPreferences.get("search_jobs", "[]"));
|
||||
searchJobs.push({ id: searchId, pattern: pattern });
|
||||
LocalPreferences.set("search_jobs", JSON.stringify(searchJobs));
|
||||
localPreferences.set("search_jobs", JSON.stringify(searchJobs));
|
||||
});
|
||||
};
|
||||
|
||||
@@ -802,7 +804,7 @@ window.qBittorrent.Search ??= (() => {
|
||||
};
|
||||
|
||||
const searchInTorrentName = () => {
|
||||
LocalPreferences.set("search_in_filter", getSearchInTorrentName());
|
||||
localPreferences.set("search_in_filter", getSearchInTorrentName());
|
||||
searchFilterChanged();
|
||||
};
|
||||
|
||||
|
||||
@@ -127,6 +127,8 @@
|
||||
};
|
||||
};
|
||||
|
||||
const localPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
|
||||
const formatUrls = (urls) => {
|
||||
return urls.split("\n").map(encodeURIComponent).join("|");
|
||||
};
|
||||
@@ -207,11 +209,11 @@
|
||||
comments: document.getElementById("comments").value,
|
||||
source: document.getElementById("source").value,
|
||||
};
|
||||
LocalPreferences.set("torrent_creator", JSON.stringify(preference));
|
||||
localPreferences.set("torrent_creator", JSON.stringify(preference));
|
||||
};
|
||||
|
||||
const loadPreference = () => {
|
||||
const preference = JSON.parse(LocalPreferences.get("torrent_creator") ?? "{}");
|
||||
const preference = JSON.parse(localPreferences.get("torrent_creator") ?? "{}");
|
||||
document.getElementById("sourcePath").value = preference.sourcePath ?? "";
|
||||
document.getElementById("torrentFormat").value = preference.torrentFormat ?? "hybrid";
|
||||
document.getElementById("pieceSize").value = preference.pieceSize ?? 0;
|
||||
|
||||
@@ -82,9 +82,11 @@
|
||||
};
|
||||
};
|
||||
|
||||
const localPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
|
||||
const toggleCategoryDisplay = (filterItemID) => {
|
||||
const filterItem = document.getElementById(filterItemID);
|
||||
LocalPreferences.set(`category_${filterItemID}_collapsed`, filterItem.classList.toggle("collapsedCategory").toString());
|
||||
localPreferences.set(`category_${filterItemID}_collapsed`, filterItem.classList.toggle("collapsedCategory").toString());
|
||||
};
|
||||
|
||||
new window.qBittorrent.ContextMenu.StatusesFilterContextMenu({
|
||||
@@ -222,16 +224,16 @@
|
||||
}
|
||||
});
|
||||
|
||||
if (LocalPreferences.get("filter_status_collapsed") === "true")
|
||||
if (localPreferences.get("filter_status_collapsed") === "true")
|
||||
toggleFilterDisplay("statusFilterList");
|
||||
|
||||
if (LocalPreferences.get("filter_category_collapsed") === "true")
|
||||
if (localPreferences.get("filter_category_collapsed") === "true")
|
||||
toggleFilterDisplay("categoryFilterList");
|
||||
|
||||
if (LocalPreferences.get("filter_tag_collapsed") === "true")
|
||||
if (localPreferences.get("filter_tag_collapsed") === "true")
|
||||
toggleFilterDisplay("tagFilterList");
|
||||
|
||||
if (LocalPreferences.get("filter_tracker_collapsed") === "true")
|
||||
if (localPreferences.get("filter_tracker_collapsed") === "true")
|
||||
toggleFilterDisplay("trackerFilterList");
|
||||
|
||||
document.getElementById("Filters_pad").addEventListener("click", (event) => {
|
||||
@@ -261,7 +263,7 @@
|
||||
});
|
||||
|
||||
document.getElementById("Filters_pad").addEventListener("dblclick", (event) => {
|
||||
if (LocalPreferences.get("dblclick_filter", "1") !== "1")
|
||||
if (localPreferences.get("dblclick_filter", "1") !== "1")
|
||||
return;
|
||||
|
||||
const filterItem = event.target.closest("li");
|
||||
|
||||
@@ -182,10 +182,12 @@
|
||||
}
|
||||
};
|
||||
|
||||
const localPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
|
||||
let logFilterTimer = -1;
|
||||
let inputtedFilterText = "";
|
||||
let selectBox;
|
||||
let selectedLogLevels = JSON.parse(LocalPreferences.get("qbt_selected_log_levels")) || ["1", "2", "4", "8"];
|
||||
let selectedLogLevels = JSON.parse(localPreferences.get("qbt_selected_log_levels")) || ["1", "2", "4", "8"];
|
||||
|
||||
const init = () => {
|
||||
for (const option of document.getElementById("logLevelSelect").options)
|
||||
@@ -275,7 +277,7 @@
|
||||
if (selectedLogLevels !== value) {
|
||||
tableInfo[currentSelectedTab].last_id = -1;
|
||||
selectedLogLevels = value;
|
||||
LocalPreferences.set("qbt_selected_log_levels", JSON.stringify(selectedLogLevels));
|
||||
localPreferences.set("qbt_selected_log_levels", JSON.stringify(selectedLogLevels));
|
||||
logFilterChanged();
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1797,6 +1797,8 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
|
||||
};
|
||||
};
|
||||
|
||||
const localPreferences = new window.qBittorrent.LocalPreferences.LocalPreferences();
|
||||
|
||||
// Behavior tab
|
||||
const numberInputLimiter = (input) => {
|
||||
const inputNumber = Number(input.value);
|
||||
@@ -2217,7 +2219,7 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
|
||||
|
||||
const updateColoSchemeSelect = () => {
|
||||
const combobox = document.getElementById("colorSchemeSelect");
|
||||
const colorScheme = LocalPreferences.get("color_scheme");
|
||||
const colorScheme = localPreferences.get("color_scheme");
|
||||
|
||||
if (colorScheme === "light")
|
||||
combobox.options[1].selected = true;
|
||||
@@ -2236,14 +2238,14 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
|
||||
updateColoSchemeSelect();
|
||||
document.getElementById("statusBarExternalIP").checked = pref.status_bar_external_ip;
|
||||
document.getElementById("performanceWarning").checked = pref.performance_warning;
|
||||
document.getElementById("displayFullURLTrackerColumn").checked = (LocalPreferences.get("full_url_tracker_column", "false") === "true");
|
||||
document.getElementById("useVirtualList").checked = (LocalPreferences.get("use_virtual_list", "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("dblclickCompleteSelect").value = LocalPreferences.get("dblclick_complete", "1");
|
||||
document.getElementById("dblclickFiltersSelect").value = LocalPreferences.get("dblclick_filter", "1");
|
||||
document.getElementById("displayFullURLTrackerColumn").checked = (localPreferences.get("full_url_tracker_column", "false") === "true");
|
||||
document.getElementById("useVirtualList").checked = (localPreferences.get("use_virtual_list", "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("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("useAltRowColorsInput").checked = (localPreferences.get("use_alt_row_colors", "true") === "true");
|
||||
document.getElementById("filelog_checkbox").checked = pref.file_log_enabled;
|
||||
document.getElementById("filelog_save_path_input").value = pref.file_log_path;
|
||||
document.getElementById("filelog_backup_checkbox").checked = pref.file_log_backup_enabled;
|
||||
@@ -2665,21 +2667,21 @@ Use ';' to split multiple entries. Can use wildcard '*'.)QBT_TR[CONTEXT=OptionsD
|
||||
settings["locale"] = document.getElementById("locale_select").value;
|
||||
const colorScheme = Number(document.getElementById("colorSchemeSelect").value);
|
||||
if (colorScheme === 0)
|
||||
LocalPreferences.remove("color_scheme");
|
||||
localPreferences.remove("color_scheme");
|
||||
else if (colorScheme === 1)
|
||||
LocalPreferences.set("color_scheme", "light");
|
||||
localPreferences.set("color_scheme", "light");
|
||||
else
|
||||
LocalPreferences.set("color_scheme", "dark");
|
||||
localPreferences.set("color_scheme", "dark");
|
||||
settings["status_bar_external_ip"] = document.getElementById("statusBarExternalIP").checked;
|
||||
settings["performance_warning"] = document.getElementById("performanceWarning").checked;
|
||||
LocalPreferences.set("full_url_tracker_column", document.getElementById("displayFullURLTrackerColumn").checked.toString());
|
||||
LocalPreferences.set("use_virtual_list", document.getElementById("useVirtualList").checked.toString());
|
||||
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);
|
||||
localPreferences.set("full_url_tracker_column", document.getElementById("displayFullURLTrackerColumn").checked.toString());
|
||||
localPreferences.set("use_virtual_list", document.getElementById("useVirtualList").checked.toString());
|
||||
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());
|
||||
localPreferences.set("use_alt_row_colors", document.getElementById("useAltRowColorsInput").checked.toString());
|
||||
settings["file_log_enabled"] = document.getElementById("filelog_checkbox").checked;
|
||||
settings["file_log_path"] = document.getElementById("filelog_save_path_input").value;
|
||||
settings["file_log_backup_enabled"] = document.getElementById("filelog_backup_checkbox").checked;
|
||||
|
||||
Reference in New Issue
Block a user