aboutsummaryrefslogtreecommitdiffstats
path: root/src/pages/options/widgets
diff options
context:
space:
mode:
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)
}
}