From 8a6ccab606b2a03eb0ea08d192fc30a6c6cd95da Mon Sep 17 00:00:00 2001 From: Aurelien David Date: Fri, 4 Dec 2020 17:33:58 +0100 Subject: [PATCH] add option to open feeds in new tabs or not (#62) --- manifest.json | 2 +- popup/popup.js | 31 +++++++++++++++++++++++++++---- rsspreview.js | 3 ++- settings/options.html | 2 ++ settings/options.js | 8 +++++--- 5 files changed, 37 insertions(+), 9 deletions(-) diff --git a/manifest.json b/manifest.json index ee59870..9a9142d 100644 --- a/manifest.json +++ b/manifest.json @@ -2,7 +2,7 @@ "manifest_version": 2, "name": "RSSPreview", - "version": "3.14", + "version": "3.15", "author": "Aurelien David", "homepage_url": "https://github.com/aureliendavid/rsspreview", diff --git a/popup/popup.js b/popup/popup.js index 797edb4..879e7f9 100644 --- a/popup/popup.js +++ b/popup/popup.js @@ -1,3 +1,18 @@ + +var options = { + newTab: true, +}; + +function onOptions(opts) { + options = opts; +} + +function onError(error) { + console.log(`Error on get options: ${error}`); +} + +browser.storage.sync.get(options).then(onOptions, onError); + document.addEventListener("DOMContentLoaded", function(event) { @@ -24,16 +39,24 @@ document.addEventListener("DOMContentLoaded", function(event) { document.querySelectorAll(".panel-list-item").forEach( (elem) => { + function onUpdated(tab) { + } + + function onError(error) { + } + elem.addEventListener('click', (event) => { let url = elem.getAttribute("data-href"); - if (url) - browser.tabs.create({url: url}); - + if (url) { + if (options.newTab) + browser.tabs.create({url: url}); + else + browser.tabs.update({url: url}).then(onUpdated, onError); + } }); }); }); - diff --git a/rsspreview.js b/rsspreview.js index e7477c1..74d3882 100644 --- a/rsspreview.js +++ b/rsspreview.js @@ -21,7 +21,8 @@ fullPreview: false, doAuthor: false, enableCss: false, - customCss: null + customCss: null, + newTab: true }; let xml_parser = new XMLSerializer(); diff --git a/settings/options.html b/settings/options.html index ba5c5ed..0078513 100644 --- a/settings/options.html +++ b/settings/options.html @@ -9,6 +9,8 @@
+ +

diff --git a/settings/options.js b/settings/options.js index ed5f1fc..4441d39 100644 --- a/settings/options.js +++ b/settings/options.js @@ -12,14 +12,14 @@ function saveOptions(e) { doAuthor: document.querySelector("#doAuthor").checked, orangeIcon: document.querySelector("#orangeIcon").checked, enableCss: document.querySelector("#enableCss").checked, - customCss: document.querySelector("#customCss").value + customCss: document.querySelector("#customCss").value, + newTab: document.querySelector("#newTab").checked }); } function restoreOptions() { - function onResult(result) { document.querySelector("#doThumb").checked = result.doThumb; document.querySelector("#doMaxWidth").checked = result.doMaxWidth; @@ -31,6 +31,7 @@ function restoreOptions() { document.querySelector("#orangeIcon").checked = result.orangeIcon; document.querySelector("#enableCss").checked = result.enableCss; document.querySelector("#customCss").value = result.customCss; + document.querySelector("#newTab").checked = result.newTab; } function onError(error) { @@ -47,7 +48,8 @@ function restoreOptions() { doAuthor: false, orangeIcon: false, enableCss: false, - customCss: null + customCss: null, + newTab: true }); getting.then(onResult, onError);