about summary refs log tree commit diff stats
path: root/src/pages/popup/popup.js
diff options
context:
space:
mode:
authorManeraKai <manerakai@protonmail.com>2023-09-18 13:12:00 +0300
committerManeraKai <manerakai@protonmail.com>2023-09-18 13:12:09 +0300
commit2e1de247ee7d1d3cb14b9e6a03b3e429a13b53ac (patch)
tree6417e4fe245d491d28ae9a4f1cbe7427b1f49a45 /src/pages/popup/popup.js
parentAdded cache for ping https://github.com/libredirect/browser_extension/issues/773 (diff)
downloadlibredirect-2e1de247ee7d1d3cb14b9e6a03b3e429a13b53ac.zip
Add "Redirect (frontend) to Prefferred" https://github.com/libredirect/browser_extension/issues/767
Diffstat (limited to 'src/pages/popup/popup.js')
-rw-r--r--src/pages/popup/popup.js35
1 files changed, 22 insertions, 13 deletions
diff --git a/src/pages/popup/popup.js b/src/pages/popup/popup.js
index f6d0a4ba..5eeb18c2 100644
--- a/src/pages/popup/popup.js
+++ b/src/pages/popup/popup.js
@@ -19,19 +19,37 @@ for (const service in config.services) {
 	divs[service].all = allSites.getElementsByClassName(service)[0]
 	divs[service].current = currSite.getElementsByClassName(service)[0]
 
-	divs[service].all_toggle = allSites.getElementsByClassName(service + "-enabled")[0]
-	divs[service].current_toggle = currSite.getElementsByClassName(service + "-enabled")[0]
-
+	divs[service].all_toggle = allSites.getElementsByClassName(`${service}-enabled`)[0]
 	divs[service].all_toggle.addEventListener("change", async () => {
 		const options = await utils.getOptions()
 		options[service].enabled = divs[service].all_toggle.checked
 		browser.storage.local.set({ options })
 	})
+
+	allSites.getElementsByClassName(`${service}-change_instance`)[0].addEventListener("click", () => {
+		browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+			if (tabs[0].url) {
+				const url = new URL(tabs[0].url)
+				browser.tabs.update({ url: await servicesHelper.switchInstance(url, service) })
+			}
+		})
+	})
+
+	divs[service].current_toggle = currSite.getElementsByClassName(`${service}-enabled`)[0]
 	divs[service].current_toggle.addEventListener("change", async () => {
 		const options = await utils.getOptions()
 		options[service].enabled = divs[service].current_toggle.checked
 		browser.storage.local.set({ options })
 	})
+
+	currSite.getElementsByClassName(`${service}-change_instance`)[0].addEventListener("click", () => {
+		browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
+			if (tabs[0].url) {
+				const url = new URL(tabs[0].url)
+				browser.tabs.update({ url: await servicesHelper.switchInstance(url, service) })
+			}
+		})
+	})
 }
 
 browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
@@ -92,13 +110,4 @@ browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
 			currentSiteDivider.style.display = ""
 		}
 	}
-})
-
-for (const a of document.getElementsByTagName("a")) {
-	a.addEventListener("click", e => {
-		if (!a.classList.contains("prevent")) {
-			browser.tabs.create({ url: a.getAttribute("href") })
-			e.preventDefault()
-		}
-	})
-}
+})
\ No newline at end of file