File: options.js

package info (click to toggle)
folder-account 12.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 136 kB
  • sloc: javascript: 223; makefile: 26; sh: 7
file content (38 lines) | stat: -rw-r--r-- 1,017 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
const DEFAULT_PREFERENCES = {
  sortIdentities: false,
  useForArchive: false,
};

async function restore_options() {
  let prefs = await messenger.storage.local.get(DEFAULT_PREFERENCES);
  for (let key of Object.keys(prefs)) {
    let elem = document.getElementById(key);
    if (!elem) continue;
    if (elem.type == "checkbox") {
      elem.checked = prefs[key];
    }
  }
}

function change_options(event) {
  let node = event.target;
  let defaultPrefs = Object.keys(DEFAULT_PREFERENCES);
  let isPreference =
    defaultPrefs.includes(node.id) || defaultPrefs.includes(node.name);
  if (!node.id || node.localName != "input" || !isPreference) {
    return;
  }

  if (node.getAttribute("type") == "checkbox") {
    messenger.storage.local.set({
      [node.id]: node.checked,
    });
  }
}

function setup_listeners() {
  document.body.addEventListener("change", change_options);
}

document.addEventListener("DOMContentLoaded", setup_listeners);
document.addEventListener("DOMContentLoaded", restore_options);