about summary refs log tree commit diff stats
path: root/src/pages/options/general
diff options
context:
space:
mode:
Diffstat (limited to 'src/pages/options/general')
-rw-r--r--src/pages/options/general/general.html4
-rw-r--r--src/pages/options/general/general.js200
-rw-r--r--src/pages/options/general/general.pug2
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