about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2022-05-19 11:03:22 +0300
committerManeraKai <manerakai@protonmail.com>2022-05-19 11:03:22 +0300
commit5aa8f7a56a4b7a2bb988dcf681ca58f9c2d48357 (patch)
treefa8e740e6d0c3dfd1a1c1ada8f304e08d046bc09
parentFixed redirections not appearing in Brave #253 (diff)
downloadlibredirect-5aa8f7a56a4b7a2bb988dcf681ca58f9c2d48357.zip
Fixed Import Tool not working #242
-rw-r--r--src/assets/javascripts/helpers/common.js2
-rw-r--r--src/pages/options/general/general.html2
-rw-r--r--src/pages/options/general/general.js24
-rw-r--r--src/pages/options/general/general.pug2
4 files changed, 24 insertions, 6 deletions
diff --git a/src/assets/javascripts/helpers/common.js b/src/assets/javascripts/helpers/common.js
index 5ab3d2bf..5adee5c8 100644
--- a/src/assets/javascripts/helpers/common.js
+++ b/src/assets/javascripts/helpers/common.js
@@ -48,7 +48,7 @@ async function updateInstances() {
     await wholeInit();
     const instances = JSON.parse(http.responseText);
 
-    brwoser.storage.local.get(
+    browser.storage.local.get(
       [
         'youtubeRedirects'
       ],
diff --git a/src/pages/options/general/general.html b/src/pages/options/general/general.html
index 51011816..cb0c11ff 100644
--- a/src/pages/options/general/general.html
+++ b/src/pages/options/general/general.html
@@ -91,7 +91,7 @@
           <path d="M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"></path>
         </svg>
         <x data-localise="__MSG_updateInstances__">Update Instances</x></a>&nbsp; &nbsp;
-      <label class="button button-inline" for="import-settings"> 
+      <label class="button button-inline" id="import_settings_text" for="import-settings"> 
         <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
           <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path>
         </svg>&nbsp;
diff --git a/src/pages/options/general/general.js b/src/pages/options/general/general.js
index 89302d5c..bcf7a521 100644
--- a/src/pages/options/general/general.js
+++ b/src/pages/options/general/general.js
@@ -37,16 +37,34 @@ exportSettings();
 browser.storage.onChanged.addListener(exportSettings);
 
 let importSettingsElement = document.getElementById("import-settings");
+let importSettingsElementText = document.getElementById('import_settings_text');
 importSettingsElement.addEventListener("change",
   () => {
     let file = importSettingsElement.files[0];
     const reader = new FileReader();
     reader.readAsText(file);
-    reader.onload = () => browser.storage.local.set({ ...JSON.parse(reader.result) })
-    reader.onerror = error => reject(error);
-    location.reload();
+    reader.onload = async () => {
+      const data = JSON.parse(reader.result)
+      if (
+        "theme" in data &&
+        "disableImgur" in data &&
+        "cloudflareList" in data &&
+        "imgurRedirects" in data
+      ) {
+        console.log('importing a valid file...');
+        await browser.storage.local.set({ ...data })
+        location.reload();
+      } else
+        importError()
+    }
+    reader.onerror = error => importError();
   }
 );
+function importError() {
+  const oldHTML = importSettingsElementText.innerHTML;
+  importSettingsElementText.innerHTML = '<span style="color:red;">Error!</span>';
+  setTimeout(() => importSettingsElementText.innerHTML = oldHTML, 1000);
+}
 
 let resetSettingsElement = document.getElementById("reset-settings");
 resetSettingsElement.addEventListener("click",
diff --git a/src/pages/options/general/general.pug b/src/pages/options/general/general.pug
index 13e18be6..6a3b1370 100644
--- a/src/pages/options/general/general.pug
+++ b/src/pages/options/general/general.pug
@@ -44,7 +44,7 @@ body.option(dir="auto")
 
             |&nbsp; &nbsp;
 
-            label.button.button-inline(for="import-settings") 
+            label#import_settings_text.button.button-inline(for="import-settings") 
                 svg(xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor")
                     path(d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z")
                 |&nbsp;