about summary refs log tree commit diff stats
path: root/src/pages/options/widgets
diff options
context:
space:
mode:
authorHygna <hygna@proton.me>2022-10-03 06:44:49 +0100
committerHygna <hygna@proton.me>2022-10-03 06:44:49 +0100
commitc1af086c2756f401d8403b259e29f1354c5e001f (patch)
treed1bc11a485199bc80314ea7719af75dfac0529d6 /src/pages/options/widgets
parentCorrected minor mistake (diff)
downloadlibredirect-c1af086c2756f401d8403b259e29f1354c5e001f.zip
Finished options upgrading
Diffstat (limited to 'src/pages/options/widgets')
-rw-r--r--src/pages/options/widgets/general.js25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/pages/options/widgets/general.js b/src/pages/options/widgets/general.js
index 1a2f44c6..92632f23 100644
--- a/src/pages/options/widgets/general.js
+++ b/src/pages/options/widgets/general.js
@@ -49,16 +49,16 @@ function setOption(option, multiChoice, event) {
 let exportSettingsElement = document.getElementById("export-settings")
 
 function exportSettings() {
-	browser.storage.local.get(null, result => {
-		let resultString = JSON.stringify(result, null, "  ")
-		exportSettingsElement.href = "data:application/json;base64," + btoa(encodeURI(resultString))
+	browser.storage.local.get("options", result => {
+		result.options.version = browser.runtime.getManifest().version
+		let resultString = JSON.stringify(result.options, null, "  ")
+		exportSettingsElement.href = "data:application/json;base64," + btoa(resultString)
 		exportSettingsElement.download = "libredirect-settings.json"
 	})
 }
 exportSettings()
 
 document.getElementById("general_page").addEventListener("click", exportSettings)
-document.getElementById("test").addEventListener("click", servicesHelper.upgradeOptions)
 
 let importSettingsElement = document.getElementById("import-settings")
 let importSettingsElementText = document.getElementById("import_settings_text")
@@ -70,7 +70,22 @@ importSettingsElement.addEventListener("change", () => {
 	reader.onload = async () => {
 		const data = JSON.parse(reader.result)
 		if ("theme" in data && "disableImgur" in data && "imgurRedirects" in data) {
-			browser.storage.local.clear(() => browser.storage.local.set({ ...data }, () => location.reload()))
+			browser.storage.local.clear(() =>
+				browser.storage.local.set({ ...data }, () => {
+					fetch("/instances/blacklist.json")
+						.then(response => response.text())
+						.then(async data => {
+							browser.storage.local.set({ blacklists: JSON.parse(data) }, async () => {
+								await generalHelper.initDefaults()
+								await servicesHelper.initDefaults()
+								await servicesHelper.upgradeOptions()
+								location.reload()
+							})
+						})
+				})
+			)
+		} else if ("version" in data) {
+			browser.storage.local.clear(() => browser.storage.local.set({ options: data }, () => location.reload()))
 		} else {
 			console.log("incompatible settings")
 			importError()