Add save / restore for accountsTree

This commit is contained in:
Ximi1970
2020-01-11 17:17:01 +01:00
parent 5ad7ecf007
commit 86fe0b67e3
2 changed files with 50 additions and 0 deletions

View File

@@ -72,6 +72,7 @@ SysTrayX.Accounts = {
typeInput.setAttribute("type", "checkbox");
typeInput.setAttribute("name", accounts[prop][i].name);
typeInput.setAttribute("value", accounts[prop][i].id);
typeInput.setAttribute("checked", "true");
typeLi.appendChild(typeInput);
let typeText = document.createTextNode(" " + accounts[prop][i].name);
typeLi.appendChild(typeText);
@@ -81,6 +82,31 @@ SysTrayX.Accounts = {
}
treeBase.appendChild(typeLi);
// Restore saved selection
function setAccounts(result) {
console.debug("Restore account selection");
let treeBase = document.getElementById("accountsTree");
let accounts = result.accounts || [];
for (let i = 0; i < accounts.length; ++i) {
let checkbox = treeBase.querySelector(
`input[value=${accounts[i].id}]`
);
if (checkbox) {
checkbox.checked = accounts[i].checked;
}
}
console.debug("Restore account selection done");
}
function onError(error) {
console.log(`GetAccounts Error: ${error}`);
}
let getAccounts = browser.storage.sync.get("accounts");
getAccounts.then(setAccounts, onError);
}
/*

View File

@@ -11,6 +11,30 @@ function saveOptions(e) {
optionsCheck2: document.querySelector('input[name="check2"]').checked,
optionsCheck3: document.querySelector('input[name="check3"]').checked
});
/*
* Get accounts
*/
console.debug("Store accounts");
let treeBase = document.getElementById("accountsTree");
let inputs = treeBase.querySelectorAll("input");
let accounts = [];
for (let i = 0; i < inputs.length; ++i) {
accounts.push({
id: inputs[i].value,
name: inputs[i].name,
checked: inputs[i].checked
});
}
// Store accounts
browser.storage.sync.set({
accounts: accounts
});
console.debug("Store accounts done");
}
function restoreOptions() {