diff options
author | Soispha <soispha@vhack.eu> | 2023-12-09 12:55:10 +0100 |
---|---|---|
committer | Soispha <soispha@vhack.eu> | 2023-12-09 12:55:10 +0100 |
commit | 5f2088c0bb7ea5ee1f18bc5b3ce15d707e043751 (patch) | |
tree | 0aa576cf0559dbdca25fa69f5b3a664365e6a428 /src/pages/options | |
parent | chore(manifest.json): Bump version number (diff) | |
parent | Added toggle for bookmarks menu in settings https://github.com/libredirect/br... (diff) | |
download | libredirect-5f2088c0bb7ea5ee1f18bc5b3ce15d707e043751.zip |
chore(Merge): remote-tracking branch 'origin/master'
Diffstat (limited to 'src/pages/options')
-rw-r--r-- | src/pages/options/index.js | 21 | ||||
-rw-r--r-- | src/pages/options/widgets/general.js | 22 | ||||
-rw-r--r-- | src/pages/options/widgets/general.pug | 18 |
3 files changed, 53 insertions, 8 deletions
diff --git a/src/pages/options/index.js b/src/pages/options/index.js index dd1a6ff8..fcc51298 100644 --- a/src/pages/options/index.js +++ b/src/pages/options/index.js @@ -17,6 +17,9 @@ for (const a of document.getElementById("links").getElementsByTagName("a")) { config = await utils.getConfig() options = await utils.getOptions() +/** + * @param {string} service + */ async function changeFrontendsSettings(service) { options = await utils.getOptions() const opacityDiv = document.getElementById(`${service}-opacity`) @@ -95,6 +98,9 @@ async function changeFrontendsSettings(service) { frontend_name_element.href = config.services[service].frontends[divs[service].frontend.value].url } +/** + * @param {string} path + */ async function loadPage(path) { options = await utils.getOptions() for (const section of document.getElementById("pages").getElementsByTagName("section")) section.style.display = "none" @@ -251,6 +257,13 @@ async function processCustomInstances(frontend, document) { }) } +/** + * @param {string} frontend + * @param {*} networks + * @param {*} document + * @param {*} redirects + * @param {*} blacklist + */ async function createList(frontend, networks, document, redirects, blacklist) { const pingCache = await utils.getPingCache() const options = await utils.getOptions() @@ -331,6 +344,9 @@ const r = window.location.href.match(/#(.*)/) if (r) loadPage(r[1]) else loadPage("general") +/** + * @param {string} frontend + */ async function ping(frontend) { const instanceElements = [ ...document.getElementById(frontend).getElementsByClassName("custom-checklist")[0].getElementsByTagName('x'), @@ -357,6 +373,9 @@ async function ping(frontend) { } } +/** + * @param {number} time + */ function processTime(time) { let text let color @@ -377,4 +396,4 @@ function processTime(time) { return { color, text } -} \ No newline at end of file +} diff --git a/src/pages/options/widgets/general.js b/src/pages/options/widgets/general.js index ed61440b..6f2852a9 100644 --- a/src/pages/options/widgets/general.js +++ b/src/pages/options/widgets/general.js @@ -64,7 +64,6 @@ importSettingsElement.addEventListener("change", () => { } }) - const exportSettingsSync = document.getElementById("export-settings-sync") const importSettingsSync = document.getElementById("import-settings-sync") const importSettingsSyncText = document.getElementById("import_settings_sync_text") @@ -99,12 +98,29 @@ resetSettings.addEventListener("click", async () => { location.reload() }) -let fetchInstancesElement = document.getElementById('fetch-instances') +const fetchInstancesElement = document.getElementById('fetch-instances') fetchInstancesElement.addEventListener('change', event => { setOption('fetchInstances', 'select', event) location.reload() }) +const redirectOnlyInIncognitoElement = document.getElementById('redirectOnlyInIncognito') +redirectOnlyInIncognitoElement.addEventListener('change', event => { + setOption('redirectOnlyInIncognito', 'checkbox', event) +}) + +const bookmarksMenuElement = document.getElementById('bookmarksMenu') +bookmarksMenuElement.addEventListener('change', async event => { + if (event.target.checked) + bookmarksMenuElement.checked = await browser.permissions.request({ + permissions: ["bookmarks"] + }) + else + bookmarksMenuElement.checked = !await browser.permissions.remove({ + permissions: ["bookmarks"] + }) +}) + let themeElement = document.getElementById("theme") themeElement.addEventListener("change", event => { setOption("theme", "select", event) @@ -132,6 +148,8 @@ for (const service in config.services) { let options = await utils.getOptions() themeElement.value = options.theme fetchInstancesElement.value = options.fetchInstances +redirectOnlyInIncognitoElement.checked = options.redirectOnlyInIncognito +bookmarksMenuElement.checked = await browser.permissions.contains({ permissions: ["bookmarks"] }) for (const service in config.services) document.getElementById(service).checked = options.popupServices.includes(service) instanceTypeElement.addEventListener("change", event => { diff --git a/src/pages/options/widgets/general.pug b/src/pages/options/widgets/general.pug index 2e7c07da..70316473 100644 --- a/src/pages/options/widgets/general.pug +++ b/src/pages/options/widgets/general.pug @@ -18,6 +18,14 @@ section(class="block-option" id="general_page") option(value="disable" data-localise="__MSG_disable__") Disable div(class="block block-option") + label(for='redirectOnlyInIncognito' data-localise="__MSG_redirectOnlyInIncognito__") Redirect Only in Incognito + input(id='redirectOnlyInIncognito' type="checkbox") + + div(class="block block-option") + label(for='bookmarksMenu' data-localise="__MSG_bookmarksMenu__") Bookmarks menu + input(id='bookmarksMenu' type="checkbox") + + div(class="block block-option") label(data-localise="__MSG_excludeFromRedirecting__") Excluded from redirecting form(id="custom-exceptions-instance-form") @@ -44,15 +52,15 @@ section(class="block-option" id="general_page") | x(data-localise="__MSG_importSettings__") Import Settings input(id="import-settings" type="file" style="display: none") - + | - + a(class="button button-inline" id="export-settings") svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") path(d="M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z") | x(data-localise="__MSG_exportSettings__") Export Settings - + | button(class="button button-inline" id="export-settings-sync") @@ -60,7 +68,7 @@ section(class="block-option" id="general_page") path(d="M10.09 15.59L11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z") | x() Export Settings to Sync - + | button(class="button button-inline" id="import-settings-sync") @@ -70,7 +78,7 @@ section(class="block-option" id="general_page") x(id="import_settings_sync_text") Import Settings from Sync | - + button(class="button button-inline" id="reset-settings") svg(xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor") path(d="M12,5V2L8,6l4,4V7c3.31,0,6,2.69,6,6c0,2.97-2.17,5.43-5,5.91v2.02c3.95-0.49,7-3.85,7-7.93C20,8.58,16.42,5,12,5z") |