diff options
author | Hygna <hygna@proton.me> | 2022-09-19 17:30:39 +0100 |
---|---|---|
committer | Hygna <hygna@proton.me> | 2022-09-19 17:30:39 +0100 |
commit | 0c1595ec3a0f8f38f322f2e70598dbe208151554 (patch) | |
tree | 58d65a33dc8f18fb09f096a5b587592371153d0d /src/pages/options/widgets | |
parent | Converted index.html to ejs (diff) | |
download | libredirect-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.ejs | 12 | ||||
-rw-r--r-- | src/pages/options/widgets/services.ejs | 61 | ||||
-rw-r--r-- | src/pages/options/widgets/services.js | 58 |
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) } } |