summaryrefslogtreecommitdiff
path: root/options.js
diff options
context:
space:
mode:
authorNicholas Tay <nick@windblume.net>2023-02-22 20:47:39 +0100
committerNicholas Tay <nick@windblume.net>2023-02-22 20:47:39 +0100
commitd538892da62ce2614b9493e64b79f8bac1438fb6 (patch)
tree316841b4773e04721bfc530c574a1421ac153ec3 /options.js
parent79d89b63e0a75f94d88d55e41fc123c5bf46e38c (diff)
downloadcertain-d538892da62ce2614b9493e64b79f8bac1438fb6.tar.gz
certain-d538892da62ce2614b9493e64b79f8bac1438fb6.tar.bz2
certain-d538892da62ce2614b9493e64b79f8bac1438fb6.zip
Somewhat working options page
Need to fix per tab thing
Diffstat (limited to 'options.js')
-rw-r--r--options.js41
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