mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-12 08:16:16 -07:00
WebUI: Add RSS functionality
Implemented RSS Reader and AutoDownloader in reference WebUI.
This commit is contained in:
parent
a1faef0a3c
commit
2b3c92a4a8
18 changed files with 2902 additions and 27 deletions
|
@ -34,6 +34,7 @@ let queueing_enabled = true;
|
|||
let serverSyncMainDataInterval = 1500;
|
||||
let customSyncMainDataInterval = null;
|
||||
let searchTabInitialized = false;
|
||||
let rssTabInitialized = false;
|
||||
|
||||
let syncRequestInProgress = false;
|
||||
|
||||
|
@ -171,8 +172,20 @@ window.addEvent('load', function() {
|
|||
$("searchTabColumn").addClass("invisible");
|
||||
};
|
||||
|
||||
const buildRssTab = function() {
|
||||
new MochaUI.Column({
|
||||
id: 'rssTabColumn',
|
||||
placement: 'main',
|
||||
width: null
|
||||
});
|
||||
|
||||
// start off hidden
|
||||
$("rssTabColumn").addClass("invisible");
|
||||
};
|
||||
|
||||
buildTransfersTab();
|
||||
buildSearchTab();
|
||||
buildRssTab();
|
||||
MochaUI.initializeTabs('mainWindowTabsList');
|
||||
|
||||
setCategoryFilter = function(hash) {
|
||||
|
@ -275,12 +288,7 @@ window.addEvent('load', function() {
|
|||
|
||||
// After showing/hiding the toolbar + status bar
|
||||
let showSearchEngine = LocalPreferences.get('show_search_engine') !== "false";
|
||||
if (!showSearchEngine) {
|
||||
// uncheck menu option
|
||||
$('showSearchEngineLink').firstChild.style.opacity = '0';
|
||||
// hide tabs
|
||||
$('mainWindowTabs').addClass('invisible');
|
||||
}
|
||||
let showRssReader = LocalPreferences.get('show_rss_reader') !== "false";
|
||||
|
||||
// After Show Top Toolbar
|
||||
MochaUI.Desktop.setDesktopSize();
|
||||
|
@ -860,22 +868,48 @@ window.addEvent('load', function() {
|
|||
$('showSearchEngineLink').addEvent('click', function(e) {
|
||||
showSearchEngine = !showSearchEngine;
|
||||
LocalPreferences.set('show_search_engine', showSearchEngine.toString());
|
||||
updateTabDisplay();
|
||||
});
|
||||
|
||||
$('showRssReaderLink').addEvent('click', function(e) {
|
||||
showRssReader = !showRssReader;
|
||||
LocalPreferences.set('show_rss_reader', showRssReader.toString());
|
||||
updateTabDisplay();
|
||||
});
|
||||
|
||||
const updateTabDisplay = function() {
|
||||
if (showRssReader) {
|
||||
$('showRssReaderLink').firstChild.style.opacity = '1';
|
||||
$('mainWindowTabs').removeClass('invisible');
|
||||
$('rssTabLink').removeClass('invisible');
|
||||
if (!MochaUI.Panels.instances.RssPanel)
|
||||
addRssPanel();
|
||||
}
|
||||
else {
|
||||
$('showRssReaderLink').firstChild.style.opacity = '0';
|
||||
$('rssTabLink').addClass('invisible');
|
||||
if ($('rssTabLink').hasClass('selected'))
|
||||
$("transfersTabLink").click();
|
||||
}
|
||||
|
||||
if (showSearchEngine) {
|
||||
$('showSearchEngineLink').firstChild.style.opacity = '1';
|
||||
$('mainWindowTabs').removeClass('invisible');
|
||||
|
||||
addMainWindowTabsEventListener();
|
||||
$('searchTabLink').removeClass('invisible');
|
||||
if (!MochaUI.Panels.instances.SearchPanel)
|
||||
addSearchPanel();
|
||||
}
|
||||
else {
|
||||
$('showSearchEngineLink').firstChild.style.opacity = '0';
|
||||
$('mainWindowTabs').addClass('invisible');
|
||||
$("transfersTabLink").click();
|
||||
|
||||
removeMainWindowTabsEventListener();
|
||||
$('searchTabLink').addClass('invisible');
|
||||
if ($('searchTabLink').hasClass('selected'))
|
||||
$("transfersTabLink").click();
|
||||
}
|
||||
});
|
||||
|
||||
// display no tabs
|
||||
if (!showRssReader && !showSearchEngine)
|
||||
$('mainWindowTabs').addClass('invisible');
|
||||
};
|
||||
|
||||
$('StatisticsLink').addEvent('click', StatisticsLinkFN);
|
||||
|
||||
|
@ -890,6 +924,7 @@ window.addEvent('load', function() {
|
|||
syncData(100);
|
||||
|
||||
hideSearchTab();
|
||||
hideRssTab();
|
||||
};
|
||||
|
||||
const hideTransfersTab = function() {
|
||||
|
@ -908,6 +943,7 @@ window.addEvent('load', function() {
|
|||
$("searchTabColumn").removeClass("invisible");
|
||||
customSyncMainDataInterval = 30000;
|
||||
hideTransfersTab();
|
||||
hideRssTab();
|
||||
};
|
||||
|
||||
const hideSearchTab = function() {
|
||||
|
@ -915,14 +951,25 @@ window.addEvent('load', function() {
|
|||
MochaUI.Desktop.resizePanels();
|
||||
};
|
||||
|
||||
const addMainWindowTabsEventListener = function() {
|
||||
$('transfersTabLink').addEvent('click', showTransfersTab);
|
||||
$('searchTabLink').addEvent('click', showSearchTab);
|
||||
const showRssTab = function() {
|
||||
if (!rssTabInitialized) {
|
||||
window.qBittorrent.Rss.init();
|
||||
rssTabInitialized = true;
|
||||
}
|
||||
else {
|
||||
window.qBittorrent.Rss.load();
|
||||
}
|
||||
|
||||
$("rssTabColumn").removeClass("invisible");
|
||||
customSyncMainDataInterval = 30000;
|
||||
hideTransfersTab();
|
||||
hideSearchTab();
|
||||
};
|
||||
|
||||
const removeMainWindowTabsEventListener = function() {
|
||||
$('transfersTabLink').removeEvent('click', showTransfersTab);
|
||||
$('searchTabLink').removeEvent('click', showSearchTab);
|
||||
const hideRssTab = function() {
|
||||
$("rssTabColumn").addClass("invisible");
|
||||
window.qBittorrent.Rss.unload();
|
||||
MochaUI.Desktop.resizePanels();
|
||||
};
|
||||
|
||||
const addSearchPanel = function() {
|
||||
|
@ -944,6 +991,25 @@ window.addEvent('load', function() {
|
|||
});
|
||||
};
|
||||
|
||||
const addRssPanel = function() {
|
||||
new MochaUI.Panel({
|
||||
id: 'RssPanel',
|
||||
title: 'Rss',
|
||||
header: false,
|
||||
padding: {
|
||||
top: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
left: 0
|
||||
},
|
||||
loadMethod: 'xhr',
|
||||
contentURL: 'views/rss.html',
|
||||
content: '',
|
||||
column: 'rssTabColumn',
|
||||
height: null
|
||||
});
|
||||
};
|
||||
|
||||
new MochaUI.Panel({
|
||||
id: 'transferList',
|
||||
title: 'Panel',
|
||||
|
@ -1081,10 +1147,10 @@ window.addEvent('load', function() {
|
|||
}
|
||||
});
|
||||
|
||||
if (showSearchEngine) {
|
||||
addMainWindowTabsEventListener();
|
||||
addSearchPanel();
|
||||
}
|
||||
$('transfersTabLink').addEvent('click', showTransfersTab);
|
||||
$('searchTabLink').addEvent('click', showSearchTab);
|
||||
$('rssTabLink').addEvent('click', showRssTab);
|
||||
updateTabDisplay();
|
||||
});
|
||||
|
||||
function registerMagnetHandler() {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue