Converted options page to new config system.

This commit is contained in:
Ajay Ramachandran 2020-01-07 22:02:16 -05:00
parent 267132cdde
commit da8a1376a7

View file

@ -3,38 +3,33 @@ window.addEventListener('DOMContentLoaded', init);
async function init() {
localizeHtmlPage();
await wait(() => SB.config !== undefined);
// Set all of the toggle options to the correct option
let optionsContainer = document.getElementById("options");
let optionsElements = optionsContainer.children;
// How many checks are left to be done
let checksLeft = 0;
for (let i = 0; i < optionsElements.length; i++) {
switch (optionsElements[i].getAttribute("option-type")) {
case "toggle":
let option = optionsElements[i].getAttribute("sync-option");
chrome.storage.sync.get([option], function(result) {
let optionResult = result[option];
if (optionResult != undefined) {
let checkbox = optionsElements[i].querySelector("input");
checkbox.checked = optionResult;
let optionResult = SB.config[option];
let checkbox = optionsElements[i].querySelector("input");
let reverse = optionsElements[i].getAttribute("toggle-type") === "reverse";
if (optionResult != undefined) {
checkbox.checked = optionResult;
if (reverse) {
optionsElements[i].querySelector("input").checked = !optionResult;
}
}
checkbox.addEventListener("click", () =>{
SB.config[option] = reverse ? !checkbox.checked : checkbox.checked;
});
}
checksLeft--;
});
checksLeft++;
break;
case "text-change":
let button = optionsElements[i].querySelector(".trigger-button");
@ -49,8 +44,6 @@ async function init() {
}
}
await wait(() => checksLeft == 0, 1000, 50);
optionsContainer.classList.remove("hidden");
optionsContainer.classList.add("animated");
}
@ -68,21 +61,19 @@ function activateKeybindChange(element) {
let option = element.getAttribute("sync-option");
chrome.storage.sync.get([option], function(result) {
let currentlySet = result[option] !== null ? chrome.i18n.getMessage("keybindCurrentlySet") : "";
let currentlySet = SB.config[option] !== null ? chrome.i18n.getMessage("keybindCurrentlySet") : "";
let status = element.querySelector(".option-hidden-section > .keybind-status");
status.innerText = chrome.i18n.getMessage("keybindDescription") + currentlySet;
if (result[option] !== null) {
if (SB.config[option] !== null) {
let statusKey = element.querySelector(".option-hidden-section > .keybind-status-key");
statusKey.innerText = result[option];
statusKey.innerText = SB.config[option];
}
element.querySelector(".option-hidden-section").classList.remove("hidden");
document.addEventListener("keydown", (e) => keybindKeyPressed(element, e), {once: true});
});
}
/**
@ -97,7 +88,7 @@ function keybindKeyPressed(element, e) {
let option = element.getAttribute("sync-option");
chrome.storage.sync.set({[option]: key});
SB.config[option] = key;
let status = element.querySelector(".option-hidden-section > .keybind-status");
status.innerText = chrome.i18n.getMessage("keybindDescriptionComplete");