about summary refs log tree commit diff stats
path: root/src/pages/options/widgets
diff options
context:
space:
mode:
authorHygna <hygna@proton.me>2022-09-19 17:30:39 +0100
committerHygna <hygna@proton.me>2022-09-19 17:30:39 +0100
commit0c1595ec3a0f8f38f322f2e70598dbe208151554 (patch)
tree58d65a33dc8f18fb09f096a5b587592371153d0d /src/pages/options/widgets
parentConverted index.html to ejs (diff)
downloadlibredirect-0c1595ec3a0f8f38f322f2e70598dbe208151554.zip
Changes
Made get_instances.py more efficient

Further work to get widgets/services.js to work properly
Diffstat (limited to 'src/pages/options/widgets')
-rw-r--r--src/pages/options/widgets/general.ejs12
-rw-r--r--src/pages/options/widgets/services.ejs61
-rw-r--r--src/pages/options/widgets/services.js58
3 files changed, 68 insertions, 63 deletions
diff --git a/src/pages/options/widgets/general.ejs b/src/pages/options/widgets/general.ejs
index 05ef0959..d68a2280 100644
--- a/src/pages/options/widgets/general.ejs
+++ b/src/pages/options/widgets/general.ejs
@@ -14,10 +14,10 @@
   <div class="some-block option-block">
     <h4 data-localise="__MSG_protocol__"></h4>
     <select id="protocol">
-      <% for (const network in config.networks) { %>
-      <option value="<%= network %>"><%= config.networks[network].name %></option>
+      <% for (const network in config.networks) { -%>
+<option value="<%= network %>"><%= config.networks[network].name %></option>
       <% }; %>
-    </select>
+</select>
   </div>
   <div id="protocol-fallback">
     <div class="some-block option-block">
@@ -84,14 +84,14 @@
     <h4 data-localise="__MSG_customPopup__">Customize Popup</h4>
   </div>
   <div class="checklist-popup" id="popup-frontends-checklist">
-    <% for (const service in config.services) { %>
-    <div>
+    <% for (const service in config.services) { -%>
+<div>
       <div><img src="../../../assets/images/<%= service %>-icon.<%= config.services[service].imageType %>">
         <x data-localise="__MSG_<%= service %>__"><%= service %></x>
       </div>
       <input id="<%= service %>" type="checkbox">
     </div>
     <% }; %>
-  </div>
+</div>
   <script type="module" src="./widgets/general.js"></script>
 </section>
diff --git a/src/pages/options/widgets/services.ejs b/src/pages/options/widgets/services.ejs
index aed5872b..bc75f288 100644
--- a/src/pages/options/widgets/services.ejs
+++ b/src/pages/options/widgets/services.ejs
@@ -1,4 +1,4 @@
-<% for (const service in config.services) { %>
+<% for (const service in config.services) { -%>
 <section class="option-block" id="<%= service %>_page">
   <div class="some-block option-block">
     <h1 data-localise="__MSG_<%= service %>__"><%= config.services[service].name %></h1>
@@ -6,47 +6,47 @@
   <hr>
   <div class="some-block option-block">
     <h4 data-localise="__MSG_enable__">Enable</h4>
-    <input id="<%= service %>-enable" type="checkbox">
+    <input id="<%= service %>-enabled" type="checkbox">
   </div>
-  <% if ((Object.keys(config.services[service].frontends).length > 1) || config.services[service].singleInstanceFrontends) { %>
+  <% if (Object.keys(config.services[service].frontends).length > 1) { %>
   <div class="some-block option-block">
-  <h4 data-localise="__MSG_frontend__">Frontend</h4>
-  <select id="<%= service %>-frontend">
-    <% for (const frontend in config.services[service].frontends) { %>
-    <option value="<%= frontend %>"><%= frontend %></option>
-    <% }; %>
-    <% for (const frontend in config.services[service].singleInstanceFrontends){ %>
-    <option value="<%= config.services[service].singleInstanceFrontends[frontend] %>"><%= config.services[service].singleInstanceFrontends[frontend] %></option>
-    <% }; %>
-  </select>
+    <h4 data-localise="__MSG_frontend__">Frontend</h4>
+    <select id="<%= service %>-frontend">
+      <% for (const frontend in config.services[service].frontends) { -%>
+      <option value="<%= frontend %>"><%= config.services[service].frontends[frontend].name %></option>
+      <% } %>
+    </select>
   </div>
-  <% } %>
-  <% if ((config.services[service].singleInstanceFrontends) && (Object.keys(config.services[service].frontends).length > 1)) { %>
-  <div id="<%= service %>-embedded_frontend">
+  <% if (config.services[service].embeddable) { _%>
+  <div id="<%= service %>-embedFrontend">
     <div class="some-block option-block">
       <h4 data-localise="__MSG_embed_frontend__">Embed Frontend</h4>
       <select id="<%= service %>-embed_frontend">
-        <% for (const frontend in config.services[service].frontends) { %>
+        <% for (const frontend in config.services[service].frontends) { -%>
+        <% if (config.services[service].frontends[frontend].embeddable) { _%>
         <option value="<%= frontend %>"><%= frontend %></option>
-        <% }; %>
+        <% } _%>
+        <% } %>
       </select>
     </div>
   </div>
-  <% } %>
-  <% if (config.services[service].embeddable) { %>
+  <% } _%>
+  <% } _%>
+  <% if (config.services[service].embeddable) { _%>
   <div class="some-block option-block">
     <h4 data-localise="__MSG_redirectType__">Redirect Type</h4>
-    <select id="<%= service %>-redirect_type">
+    <select id="<%= service %>-redirectType">
       <option value="both" data-localise="__MSG_both__">both</option>
-      <option value="onlyEmbedded" data-localise="__MSG_onlyEmbedded__">Only Embedded</option>
-      <option value="onlyNotEmbedded" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option>
+      <option value="sub_frame" data-localise="__MSG_onlyEmbedded__">Only Embedded</option>
+      <option value="main_frame" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option>
     </select>
   </div>
-  <% } %>
+  <% } _%>
   <hr>
-  <% for (const frontend in config.services[service].frontends) { %>
+  <% for (const frontend in config.services[service].frontends) { -%>
+  <% if (config.services[service].frontends[frontend].instanceList) { _%>
   <div id="<%= frontend %>">
-    <% for (const network in config.networks) { %>
+    <% for (const network in config.networks) { -%>
     <div class="<%= network %>">
       <div class="some-block option-block">
         <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4>
@@ -67,7 +67,7 @@
         </div>
       </form>
       <div class="checklist custom-checklist"></div>
-      <% if (network == "clearnet") { %>
+      <% if (network == "clearnet") { _%>
       <div class="buttons buttons-inline">
         <label class="button button-inline" id="latency-<%= frontend %>-label" for="latency-<%= frontend %>"> 
           <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor">
@@ -77,11 +77,12 @@
         </label>
         <input class="button button-inline" id="latency-<%= frontend %>" style="display:none;">
       </div>
-      <% } %>
+      <% } _%>
     </div>
-    <% }; %>
+    <% } %>
   </div>
-  <% }; %>
+  <% } _%>
+  <% } %>
 </section>
-<% }; %>
+<% } %>
 <script type="module" src="./widgets/services.js"></script>
diff --git a/src/pages/options/widgets/services.js b/src/pages/options/widgets/services.js
index c7955b40..4a53a749 100644
--- a/src/pages/options/widgets/services.js
+++ b/src/pages/options/widgets/services.js
@@ -1,13 +1,10 @@
 import utils from "../../../assets/javascripts/utils.js"
 
-// const frontends = new Array("librarian")
-// const protocols = new Array("clearnet", "tor", "i2p", "loki")
-
 let config,
 	network,
 	divs = {}
 
-async function getConfig() {
+function getConfig() {
 	return new Promise(resolve => {
 		fetch("/config/config.json")
 			.then(response => response.text())
@@ -19,7 +16,7 @@ async function getConfig() {
 	})
 }
 
-getConfig()
+await getConfig()
 
 browser.storage.local.get("network", r => {
 	network = r.network
@@ -27,45 +24,50 @@ browser.storage.local.get("network", r => {
 
 function changeFrontendsSettings(service) {
 	for (const frontend in config.services[service].frontends) {
-		const frontendDiv = document.getElementById(frontend)
-		if (frontend == divs[service].frontend.value) {
-			frontendDiv.style.display = "block"
-		} else {
-			frontendDiv.style.display = "none"
+		if (config.services[service].frontends[frontend].instanceList && config.services[service].frontends.length > 1) {
+			const frontendDiv = document.getElementById(frontend)
+			if (divs[service].frontend == null) {
+				console.log(frontend)
+			}
+			if (frontend == divs[service].frontend.value) {
+				frontendDiv.style.display = "block"
+			} else {
+				frontendDiv.style.display = "none"
+			}
 		}
 	}
 }
 
 function changeNetworkSettings(selectedNetwork) {
 	for (const frontend in config.frontends) {
-		const frontendDiv = document.getElementById(frontend)
-		for (const network in config.networks) {
-			const networkDiv = frontendDiv.getElementsByClassName(network)[0]
-			if (network == selectedNetwork) {
-				networkDiv.style.display = "block"
-			} else {
-				networkDiv.style.display = "none"
+		if (config.services[service].frontends[frontend].instanceList) {
+			const frontendDiv = document.getElementById(frontend)
+			for (const network in config.networks) {
+				const networkDiv = frontendDiv.getElementsByClassName(network)[0]
+				if (network == selectedNetwork) {
+					networkDiv.style.display = "block"
+				} else {
+					networkDiv.style.display = "none"
+				}
 			}
 		}
 	}
 }
 
-for (service in config.services) {
+for (const service in config.services) {
+	divs[service] = {}
 	divs[service][service] = document.getElementById(`${service}_page`)
 	for (const option in config.services[service].options) {
 		divs[service][option] = document.getElementById(`${service}-${option}`)
 
 		browser.storage.local.get([`${service + utils.camelCase(option)}`], r => {
-			if (typeof config.services[service].options[option] == "boollean") divs[service][option].checked = !r[service + utils.camelCase(option)]
+			if (typeof config.services[service].options[option] == "boollean") divs[service][option].checked = r[service + utils.camelCase(option)]
 			else divs[service][option].value = !r[service + utils.camelCase(option)]
 		})
 
 		divs[service][option].addEventListener("change", () => {
-			if (typeof config.services[service].options[option] == "boollean") {
-				browser.storage.local.set({ [service + utils.camelCase(option)]: !divs[service][option].checked })
-			} else {
-				browser.storage.local.set({ [service + utils.camelCase(option)]: divs[service][option].value })
-			}
+			if (typeof config.services[service].options[option] == "boollean") browser.storage.local.set({ [service + utils.camelCase(option)]: divs[service][option].checked })
+			else browser.storage.local.set({ [service + utils.camelCase(option)]: divs[service][option].value })
 			changeFrontendsSettings()
 		})
 	}
@@ -74,9 +76,11 @@ for (service in config.services) {
 	changeNetworkSettings(network)
 
 	for (const frontend in config.services[service].frontends) {
-		for (const network in config.networks) {
-			utils.processDefaultCustomInstances(service, frontend, network, document)
+		if (config.services[service].frontends[frontend].instanceList) {
+			for (const network in config.networks) {
+				utils.processDefaultCustomInstances(service, frontend, network, document)
+			}
+			utils.latency(service, frontend, document, location)
 		}
-		utils.latency(service, frontend, document, location)
 	}
 }