diff options
author | Nicholas Tay <nick@windblume.net> | 2023-02-22 20:47:39 +0100 |
---|---|---|
committer | Nicholas Tay <nick@windblume.net> | 2023-02-22 20:47:39 +0100 |
commit | d538892da62ce2614b9493e64b79f8bac1438fb6 (patch) | |
tree | 316841b4773e04721bfc530c574a1421ac153ec3 /options.js | |
parent | 79d89b63e0a75f94d88d55e41fc123c5bf46e38c (diff) | |
download | certain-d538892da62ce2614b9493e64b79f8bac1438fb6.tar.gz certain-d538892da62ce2614b9493e64b79f8bac1438fb6.tar.bz2 certain-d538892da62ce2614b9493e64b79f8bac1438fb6.zip |
Somewhat working options page
Need to fix per tab thing
Diffstat (limited to '')
-rw-r--r-- | options.js | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/options.js b/options.js new file mode 100644 index 0000000..2d42932 --- /dev/null +++ b/options.js @@ -0,0 +1,41 @@ +function addCertField() { + let elem = document.getElementById("certs"); + elem.insertAdjacentHTML("beforeend", `<li><input type="text"></li>`) +} + +function saveOptions() { + let certs = []; + for (let child of document.getElementById("certs").children) { + let cert = child.children[0].value; + if (!cert) + continue; + certs.push(cert); + } + browser.storage.sync.set({ + certs: certs + }).then(() => { + restoreOptions(); // reload list + alert("Saved"); + }); +} + +function restoreOptions() { + let getting = browser.storage.sync.get("certs"); + getting.then(saved => { + let certs = saved.certs || []; + let elem = document.getElementById("certs"); + elem.innerHTML = ""; + for (let cert of certs) { + let li = document.createElement("li"); + let input = document.createElement("input"); + input.type = "text"; + input.value = cert; + li.appendChild(input); + elem.appendChild(li); + } + }, console.error); +} + +document.addEventListener("DOMContentLoaded", restoreOptions); +document.getElementById("save").addEventListener("click", saveOptions); +document.getElementById("addCert").addEventListener("click", addCertField)
\ No newline at end of file |