summaryrefslogtreecommitdiffstats
path: root/src/pages/options
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/options')
-rw-r--r--src/pages/options/options.html29
-rw-r--r--src/pages/options/options.js25
2 files changed, 54 insertions, 0 deletions
diff --git a/src/pages/options/options.html b/src/pages/options/options.html
index 7a577a5..65da7f0 100644
--- a/src/pages/options/options.html
+++ b/src/pages/options/options.html
@@ -184,6 +184,25 @@
</table>
</section>
<section class="settings-block">
+ <table class="option" aria-label="Toggle Wikipedia redirects">
+ <tbody>
+ <tr>
+ <td>
+ <h1 data-localise="__MSG_disableWikipedia__">Wikipedia Redirects</h1>
+ </td>
+ <td>
+ <input
+ aria-hidden="true"
+ id="disable-wikipedia"
+ type="checkbox"
+ />&nbsp;
+ <label for="disable-wikipedia" class="checkbox-label"></label>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </section>
+ <section class="settings-block">
<h1 data-localise="__MSG_nitterInstance__">Nitter Instance</h1>
<div class="autocomplete">
<input
@@ -259,6 +278,16 @@
</div>
</section>
<section class="settings-block">
+ <h1 data-localise="__MSG_wikipediaInstance__">Wikipedia Instance</h1>
+ <div class="autocomplete">
+ <input
+ id="wikipedia-instance"
+ type="url"
+ placeholder="https://wikiless.org"
+ />
+ </div>
+ </section>
+ <section class="settings-block">
<h1 data-localise="__MSG_theme__">Theme</h1>
<select id="theme">
<option value="">System</option>
diff --git a/src/pages/options/options.js b/src/pages/options/options.js
index cfe3a26..91e7ac0 100644
--- a/src/pages/options/options.js
+++ b/src/pages/options/options.js
@@ -8,6 +8,7 @@ import mapsHelper from "../../assets/javascripts/helpers/google-maps.js";
import redditHelper from "../../assets/javascripts/helpers/reddit.js";
import searchHelper from "../../assets/javascripts/helpers/google-search.js";
import googleTranslateHelper from "../../assets/javascripts/helpers/google-translate.js";
+import wikipediaHelper from "../../assets/javascripts/helpers/wikipedia.js";
const nitterInstances = twitterHelper.redirects;
const invidiousInstances = youtubeHelper.redirects;
@@ -16,6 +17,7 @@ const osmInstances = mapsHelper.redirects;
const redditInstances = redditHelper.redirects;
const searchEngineInstances = searchHelper.redirects;
const simplyTranslateInstances = googleTranslateHelper.redirects;
+const wikipediaInstances = wikipediaHelper.redirects;
const autocompletes = [
{ id: "nitter-instance", instances: nitterInstances },
{ id: "invidious-instance", instances: invidiousInstances },
@@ -27,6 +29,7 @@ const autocompletes = [
instances: searchEngineInstances.map((instance) => instance.link),
},
{ id: "simply-translate-instance", instances: simplyTranslateInstances },
+ { id: "wikipedia-instance", instances: wikipediaInstances },
];
const domparser = new DOMParser();
@@ -39,6 +42,7 @@ let searchEngineInstance = document.getElementById("search-engine-instance");
let simplyTranslateInstance = document.getElementById(
"simply-translate-instance"
);
+let wikipediaInstance = document.getElementById("wikipedia-instance");
let disableNitter = document.getElementById("disable-nitter");
let disableInvidious = document.getElementById("disable-invidious");
let disableBibliogram = document.getElementById("disable-bibliogram");
@@ -48,6 +52,7 @@ let disableSearchEngine = document.getElementById("disable-search-engine");
let disableSimplyTranslate = document.getElementById(
"disable-simply-translate"
);
+let disableWikipedia = document.getElementById("disable-wikipedia");
let alwaysProxy = document.getElementById("always-proxy");
let onlyEmbeddedVideo = document.getElementById("only-embed");
let videoQuality = document.getElementById("video-quality");
@@ -100,6 +105,7 @@ browser.storage.sync.get(
"redditInstance",
"searchEngineInstance",
"simplyTranslateInstance",
+ "wikipediaInstance",
"disableNitter",
"disableInvidious",
"disableBibliogram",
@@ -107,6 +113,7 @@ browser.storage.sync.get(
"disableReddit",
"disableSearchEngine",
"disableSimplyTranslate",
+ "disableWikipedia",
"alwaysProxy",
"onlyEmbeddedVideo",
"videoQuality",
@@ -135,6 +142,7 @@ browser.storage.sync.get(
searchEngineInstance.value =
(result.searchEngineInstance && result.searchEngineInstance.link) || "";
simplyTranslateInstance.value = result.simplyTranslateInstance || "";
+ wikipediaInstance.value = result.wikipediaInstance || "";
disableNitter.checked = !result.disableNitter;
disableInvidious.checked = !result.disableInvidious;
disableBibliogram.checked = !result.disableBibliogram;
@@ -142,6 +150,7 @@ browser.storage.sync.get(
disableReddit.checked = !result.disableReddit;
disableSearchEngine.checked = !result.disableSearchEngine;
disableSimplyTranslate.checked = !result.disableSimplyTranslate;
+ disableWikipedia.checked = !result.disableWikipedia;
alwaysProxy.checked = result.alwaysProxy;
onlyEmbeddedVideo.checked = result.onlyEmbeddedVideo;
videoQuality.value = result.videoQuality || "";
@@ -328,6 +337,18 @@ simplyTranslateInstance.addEventListener(
simplyTranslateInstanceChange
);
+const wikipediaInstanceChange = debounce(() => {
+ if (wikipediaInstance.checkValidity()) {
+ browser.storage.sync.set({
+ wikipediaInstance: parseURL(wikipediaInstance.value),
+ });
+ }
+}, 500);
+wikipediaInstance.addEventListener(
+ "input",
+ wikipediaInstanceChange
+);
+
disableNitter.addEventListener("change", (event) => {
browser.storage.sync.set({ disableNitter: !event.target.checked });
});
@@ -356,6 +377,10 @@ disableSimplyTranslate.addEventListener("change", (event) => {
browser.storage.sync.set({ disableSimplyTranslate: !event.target.checked });
});
+disableWikipedia.addEventListener("change", (event) => {
+ browser.storage.sync.set({ disableWikipedia: !event.target.checked });
+});
+
alwaysProxy.addEventListener("change", (event) => {
browser.storage.sync.set({ alwaysProxy: event.target.checked });
});