diff options
Diffstat (limited to 'src/pages/options/general')
-rw-r--r-- | src/pages/options/general/general.html | 4 | ||||
-rw-r--r-- | src/pages/options/general/general.js | 200 | ||||
-rw-r--r-- | src/pages/options/general/general.pug | 2 |
3 files changed, 125 insertions, 81 deletions
diff --git a/src/pages/options/general/general.html b/src/pages/options/general/general.html index cb0c11ff..8239f7c8 100644 --- a/src/pages/options/general/general.html +++ b/src/pages/options/general/general.html @@ -30,7 +30,7 @@ <ellipse cx="1682" cy="502" rx="88" ry="424"></ellipse> </svg><a href="../medium/medium.html" data-localise="__MSG_medium__">Medium</a> </div> - <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">Peertube</a></div> + <div class="title"> <img src="../../../assets/images/peertube-icon.svg"><a href="../peertube/peertube.html" data-localise="__MSG_peertube__">PeerTube</a></div> <div class="title"> <img src="../../../assets/images/lbry-icon.png"><a href="../lbry/lbry.html" data-localise="__MSG_lbry__">LBRY/Odysee</a></div> <div class="title"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"> @@ -180,7 +180,7 @@ <input id="medium" type="checkbox"> </div> <div> - <div> <img src="../../../assets/images/peertube-icon.svg">Peertube</div> + <div> <img src="../../../assets/images/peertube-icon.svg">PeerTube</div> <input id="peertube" type="checkbox"> </div> <div> diff --git a/src/pages/options/general/general.js b/src/pages/options/general/general.js index c8a600ce..f2690209 100644 --- a/src/pages/options/general/general.js +++ b/src/pages/options/general/general.js @@ -4,7 +4,21 @@ window.browser = window.browser || window.chrome; import utils from "../../../assets/javascripts/helpers/utils.js"; import generalHelper from "../../../assets/javascripts/helpers/general.js"; - +import youtubeHelper from "../../../assets/javascripts/helpers/youtube/youtube.js"; +import youtubeMusicHelper from "../../../assets/javascripts/helpers/youtubeMusic.js"; +import twitterHelper from "../../../assets/javascripts/helpers/twitter.js"; +import instagramHelper from "../../../assets/javascripts/helpers/instagram.js"; +import redditHelper from "../../../assets/javascripts/helpers/reddit.js"; +import searchHelper from "../../../assets/javascripts/helpers/search.js"; +import translateHelper from "../../../assets/javascripts/helpers/translate/translate.js"; +import mapsHelper from "../../../assets/javascripts/helpers/maps.js"; +import wikipediaHelper from "../../../assets/javascripts/helpers/wikipedia.js"; +import mediumHelper from "../../../assets/javascripts/helpers/medium.js"; +import imgurHelper from "../../../assets/javascripts/helpers/imgur.js"; +import tiktokHelper from "../../../assets/javascripts/helpers/tiktok.js"; +import sendTargetsHelper from "../../../assets/javascripts/helpers/sendTargets.js"; +import peertubeHelper from "../../../assets/javascripts/helpers/peertube.js"; +import lbryHelper from "../../../assets/javascripts/helpers/lbry.js"; let updateInstancesElement = document.getElementById("update-instances"); updateInstancesElement.addEventListener("click", () => { @@ -68,21 +82,41 @@ function importError() { let resetSettingsElement = document.getElementById("reset-settings"); resetSettingsElement.addEventListener("click", - () => { + async () => { console.log("reset"); - browser.storage.local.clear(); - location.reload(); + await browser.storage.local.clear(); + fetch('/instances/blocklist.json').then(response => response.text()).then(async data => { + await browser.storage.local.set({ cloudflareList: JSON.parse(data) }) + await generalHelper.initDefaults(); + await youtubeHelper.initDefaults(); + await youtubeMusicHelper.initDefaults(); + await twitterHelper.initDefaults(); + await instagramHelper.initDefaults(); + await mapsHelper.initDefaults(); + await searchHelper.initDefaults(); + await translateHelper.initDefaults(); + await mediumHelper.initDefaults(); + await redditHelper.initDefaults(); + await wikipediaHelper.initDefaults(); + await imgurHelper.initDefaults(); + await tiktokHelper.initDefaults(); + await sendTargetsHelper.initDefaults(); + await peertubeHelper.initDefaults(); + await lbryHelper.initDefaults(); + location.reload(); + }) } ); let autoRedirectElement = document.getElementById("auto-redirect") autoRedirectElement.addEventListener("change", - event => generalHelper.setAutoRedirect(event.target.checked) + event => browser.storage.local.set({ autoRedirect: event.target.checked }) ); + let themeElement = document.getElementById("theme"); themeElement.addEventListener("change", event => { const value = event.target.options[theme.selectedIndex].value; - generalHelper.setTheme(value); + browser.storage.local.set({ theme: value }); }) let nameCustomInstanceInput = document.getElementById("exceptions-custom-instance"); @@ -99,84 +133,94 @@ for (const frontend of generalHelper.allPopupFrontends) var index = popupFrontends.indexOf(frontend); if (index !== -1) popupFrontends.splice(index, 1); } - generalHelper.setPopupFrontends(popupFrontends); + browser.storage.local.set({ popupFrontends }) } ) -generalHelper.init().then(() => { - autoRedirectElement.checked = generalHelper.getAutoRedirect(); - themeElement.value = generalHelper.getTheme(); - instanceTypeElement.addEventListener("change", - event => { - instanceType = event.target.options[instanceTypeElement.selectedIndex].value - if (instanceType == 'url') { - nameCustomInstanceInput.setAttribute("type", "url"); - nameCustomInstanceInput.setAttribute("placeholder", "https://www.google.com"); - } - else if (instanceType == 'regex') { - nameCustomInstanceInput.setAttribute("type", "text"); - nameCustomInstanceInput.setAttribute("placeholder", "https?:\/\/(www\.|)youtube\.com\/"); + +browser.storage.local.get( + [ + 'theme', + 'autoRedirect', + 'exceptions' + ], + r => { + autoRedirectElement.checked = r.autoRedirect; + themeElement.value = r.theme; + instanceTypeElement.addEventListener("change", + event => { + instanceType = event.target.options[instanceTypeElement.selectedIndex].value + if (instanceType == 'url') { + nameCustomInstanceInput.setAttribute("type", "url"); + nameCustomInstanceInput.setAttribute("placeholder", "https://www.google.com"); + } + else if (instanceType == 'regex') { + nameCustomInstanceInput.setAttribute("type", "text"); + nameCustomInstanceInput.setAttribute("placeholder", "https?:\/\/(www\.|)youtube\.com\/"); + } } - } - ) - let exceptionsCustomInstances = generalHelper.getExceptions(); - function calcExceptionsCustomInstances() { - document.getElementById("exceptions-custom-checklist").innerHTML = - [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex].map( - (x) => `<div> - ${x} - <button class="add" id="clear-${x}"> - <svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" - fill="currentColor"> - <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z" /> - </svg> - </button> - </div> - <hr>` - ).join('\n'); - - for (const x of [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex]) { - document.getElementById(`clear-${x}`).addEventListener("click", - () => { - console.log(x); - let index; - index = exceptionsCustomInstances.url.indexOf(x); - if (index > -1) - exceptionsCustomInstances.url.splice(index, 1); - else { - index = exceptionsCustomInstances.regex.indexOf(x); + ) + let exceptionsCustomInstances = r.exceptions; + function calcExceptionsCustomInstances() { + document.getElementById("exceptions-custom-checklist").innerHTML = + [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex].map( + (x) => `<div> + ${x} + <button class="add" id="clear-${x}"> + <svg xmlns="http://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" + fill="currentColor"> + <path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z" /> + </svg> + </button> + </div> + <hr>` + ).join('\n'); + + for (const x of [...exceptionsCustomInstances.url, ...exceptionsCustomInstances.regex]) { + document.getElementById(`clear-${x}`).addEventListener("click", + () => { + console.log(x); + let index; + index = exceptionsCustomInstances.url.indexOf(x); if (index > -1) - exceptionsCustomInstances.regex.splice(index, 1); - } - generalHelper.setExceptions(exceptionsCustomInstances); - calcExceptionsCustomInstances(); - }); - } - } - calcExceptionsCustomInstances(); - document.getElementById("custom-exceptions-instance-form").addEventListener("submit", (event) => { - event.preventDefault(); - - let val - if (instanceType == 'url') { - if (nameCustomInstanceInput.validity.valid) { - let url = new URL(nameCustomInstanceInput.value); - val = `${url.protocol}//${url.host}` - if (!exceptionsCustomInstances.url.includes(val)) exceptionsCustomInstances.url.push(val) + exceptionsCustomInstances.url.splice(index, 1); + else { + index = exceptionsCustomInstances.regex.indexOf(x); + if (index > -1) + exceptionsCustomInstances.regex.splice(index, 1); + } + browser.storage.local.set({ exceptions: exceptionsCustomInstances }) + calcExceptionsCustomInstances(); + }); } - } else if (instanceType == 'regex') { - val = nameCustomInstanceInput.value - if (val.trim() != '' && !exceptionsCustomInstances.regex.includes(val)) exceptionsCustomInstances.regex.push(val) - } - if (val) { - generalHelper.setExceptions(exceptionsCustomInstances); - console.log("exceptionsCustomInstances", exceptionsCustomInstances) - nameCustomInstanceInput.value = ''; } calcExceptionsCustomInstances(); - }) + document.getElementById("custom-exceptions-instance-form").addEventListener("submit", (event) => { + event.preventDefault(); - popupFrontends = generalHelper.getPopupFrontends(); - for (const frontend of generalHelper.allPopupFrontends) - document.getElementById(frontend).checked = popupFrontends.includes(frontend); -}) \ No newline at end of file + let val + if (instanceType == 'url') { + if (nameCustomInstanceInput.validity.valid) { + let url = new URL(nameCustomInstanceInput.value); + val = `${url.protocol}//${url.host}` + if (!exceptionsCustomInstances.url.includes(val)) exceptionsCustomInstances.url.push(val) + } + } else if (instanceType == 'regex') { + val = nameCustomInstanceInput.value + if (val.trim() != '' && !exceptionsCustomInstances.regex.includes(val)) exceptionsCustomInstances.regex.push(val) + } + if (val) { + browser.storage.local.set({ exceptions: exceptionsCustomInstances }) + nameCustomInstanceInput.value = ''; + } + calcExceptionsCustomInstances(); + }) + + browser.storage.local.get('popupFrontends', + r => { + popupFrontends = r.popupFrontends; + for (const frontend of generalHelper.allPopupFrontends) + document.getElementById(frontend).checked = popupFrontends.includes(frontend); + } + ) + }) diff --git a/src/pages/options/general/general.pug b/src/pages/options/general/general.pug index 6a3b1370..0cef8025 100644 --- a/src/pages/options/general/general.pug +++ b/src/pages/options/general/general.pug @@ -151,7 +151,7 @@ body.option(dir="auto") div div img(src="../../../assets/images/peertube-icon.svg") - |Peertube + |PeerTube input#peertube(type="checkbox") div |