aboutsummaryrefslogtreecommitdiffstats
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
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
-rw-r--r--src/assets/javascripts/services.js1
-rw-r--r--src/pages/options/widgets/services.pug6
-rw-r--r--src/pages/popup/popup.js35
-rw-r--r--src/pages/popup/popup.pug14
-rw-r--r--src/pages/popup/style.css16
-rw-r--r--src/pages/popup/switches.pug6
-rw-r--r--src/pages/stylesheets/styles.css4
7 files changed, 53 insertions, 29 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index cdaf76f9..883054b8 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -601,7 +601,6 @@ async function reverse(url) {
let protocolHost = utils.protocolHost(url)
for (const service in config.services) {
let frontend = options[service].frontend
- console.log(protocolHost)
if (options[frontend] == undefined) continue
if (!options[frontend].includes(protocolHost) && protocolHost != `http://${frontend}.localhost:8080`) continue
switch (service) {
diff --git a/src/pages/options/widgets/services.pug b/src/pages/options/widgets/services.pug
index a93a6902..e08bb001 100644
--- a/src/pages/options/widgets/services.pug
+++ b/src/pages/options/widgets/services.pug
@@ -7,12 +7,12 @@ each val, service in services
hr
div(class="block block-option")
- label(data-localise="__MSG_enable__") Enable
- input(id=`${service}-enabled` type="checkbox" aria-label="Enable checkbox")
+ label(for=`${service}-enabled` data-localise="__MSG_enable__") Enable
+ input(id=`${service}-enabled` type="checkbox")
div(class="block block-option")
label(for=service data-localise="__MSG_showInPopup__") Show in popup
- input(id=service type="checkbox" aria-label="Show in popup toggle")
+ input(id=service type="checkbox")
div(id=service+"-opacity")
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
diff --git a/src/pages/popup/popup.pug b/src/pages/popup/popup.pug
index f5ee0618..f145fe5d 100644
--- a/src/pages/popup/popup.pug
+++ b/src/pages/popup/popup.pug
@@ -17,31 +17,31 @@ html(lang="en")
hr
div(class="block" id="change_instance_div" style="display: none")
- button(class="title button prevent" id="change_instance")
+ button(class="title button bottom-button" id="change_instance")
label(data-localise="__MSG_switchInstance__") Switch Instance
svg(xmlns="http://www.w3.org/2000/svg" height="26px" width="26px" fill="currentColor")
path(d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z")
div(class="block" id="copy_original_div" title="Copy the original redirected link" style="display: none")
- button(class="title button prevent" id="copy_original")
- label() Copy Origin
+ button(class="title button bottom-button" id="copy_original")
+ label() Copy Original
svg(xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" fill="currentColor")
path(d="M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z")
div(class="block" id="redirect_div" style="display: none")
- button(class="title button prevent" id="redirect")
+ button(class="title button bottom-button" id="redirect")
label Redirect
svg(xmlns="http://www.w3.org/2000/svg" height="24" width="24" fill="currentColor")
path(d="M7 20v-9q0-.825.588-1.413Q8.175 9 9 9h8.2l-1.6-1.6L17 6l4 4-4 4-1.4-1.4 1.6-1.6H9v9Z")
div(class="block" id="redirect_to_original_div" style="display: none")
- button(class="title button prevent" id="redirect_to_original")
- label Redirect To Origin
+ button(class="title button bottom-button" id="redirect_to_original")
+ label Redirect To Original
svg(xmlns="http://www.w3.org/2000/svg" height="24px" width="24px" fill="currentColor")
path(d="M 17,20 V 11 Q 17,10.175 16.412,9.587 15.825,9 15,9 H 6.8 L 8.4,7.4 7,6 3,10 7,14 8.4,12.6 6.8,11 H 15 v 9 z" id="path2")
div(class="block")
- button(class="title button prevent" id="more-options")
+ button(class="title button bottom-button" id="more-options")
label(data-localise="__MSG_settings__") Settings
svg(xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="26px" width="26px" fill="currentColor")
path(d="m9.25 22-.4-3.2q-.325-.125-.612-.3-.288-.175-.563-.375L4.7 19.375l-2.75-4.75 2.575-1.95Q4.5 12.5 4.5 12.337v-.675q0-.162.025-.337L1.95 9.375l2.75-4.75 2.975 1.25q.275-.2.575-.375.3-.175.6-.3l.4-3.2h5.5l.4 3.2q.325.125.613.3.287.175.562.375l2.975-1.25 2.75 4.75-2.575 1.95q.025.175.025.337v.675q0 .163-.05.338l2.575 1.95-2.75 4.75-2.95-1.25q-.275.2-.575.375-.3.175-.6.3l-.4 3.2Zm2.8-6.5q1.45 0 2.475-1.025Q15.55 13.45 15.55 12q0-1.45-1.025-2.475Q13.5 8.5 12.05 8.5q-1.475 0-2.488 1.025Q8.55 10.55 8.55 12q0 1.45 1.012 2.475Q10.575 15.5 12.05 15.5Z")
diff --git a/src/pages/popup/style.css b/src/pages/popup/style.css
index 82adfded..6c258d75 100644
--- a/src/pages/popup/style.css
+++ b/src/pages/popup/style.css
@@ -1,5 +1,5 @@
body {
- width: 230px;
+ width: 270px;
min-height: auto;
}
@@ -16,6 +16,14 @@ body {
display: flex;
margin: 0 auto;
justify-content: space-between;
+}
+
+.button svg {
+ width: 26px;
+ height: 26px;
+}
+
+.bottom-button {
width: 100%;
}
@@ -33,9 +41,13 @@ div.block label {
margin: 0;
font-size: 18px;
font-weight: bold;
- max-width: 160px;
+ max-width: 180px;
}
div.block label:hover {
cursor: pointer;
+}
+
+div.block div {
+ display: flex;
} \ No newline at end of file
diff --git a/src/pages/popup/switches.pug b/src/pages/popup/switches.pug
index 5037bac2..bea107d2 100644
--- a/src/pages/popup/switches.pug
+++ b/src/pages/popup/switches.pug
@@ -7,4 +7,8 @@ each _, service in services
else
img(src=`/assets/images/${service}-icon.${services[service].imageType}`)
label=services[service].name
- input(class=`${service}-enabled` type="checkbox" aria-label=`${services[service].name} toggle`) \ No newline at end of file
+ div
+ input(class=`${service}-enabled` type="checkbox" aria-label=`toggle ${services[service].name}`)
+ button(class=`${service}-change_instance title button` aria-label=`change instance for ${services[service].name}`)
+ svg(xmlns="http://www.w3.org/2000/svg" height="26px" width="26px" fill="currentColor")
+ path(d="M12 4V1L8 5l4 4V6c3.31 0 6 2.69 6 6 0 1.01-.25 1.97-.7 2.8l1.46 1.46C19.54 15.03 20 13.57 20 12c0-4.42-3.58-8-8-8zm0 14c-3.31 0-6-2.69-6-6 0-1.01.25-1.97.7-2.8L5.24 7.74C4.46 8.97 4 10.43 4 12c0 4.42 3.58 8 8 8v3l4-4-4-4v3z") \ No newline at end of file
diff --git a/src/pages/stylesheets/styles.css b/src/pages/stylesheets/styles.css
index 5ae8f71d..43b7ba83 100644
--- a/src/pages/stylesheets/styles.css
+++ b/src/pages/stylesheets/styles.css
@@ -123,14 +123,14 @@ section.block-option h2 {
body.option {
display: flex;
padding: 40px;
- width: 1150px;
+ width: 1160px;
}
section.links {
display: flex;
flex-wrap: wrap;
flex-direction: column;
- width: 300px;
+ width: 350px;
max-height: 800px;
}