diff options
author | Ruben Rodriguez <ruben@gnu.org> | 2018-09-13 20:39:48 -0400 |
---|---|---|
committer | Ruben Rodriguez <ruben@gnu.org> | 2018-09-13 21:02:13 -0400 |
commit | d26b319fd6f98517cc3421f10bf18698b953e4d2 (patch) | |
tree | bc70c4e472a2eaf514d411dba5067d530e5bbea9 /data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/ux.js | |
parent | c3b304c51a3386ea09527a479a883253ea35243a (diff) |
Updated extensions list for v60
Diffstat (limited to 'data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/ux.js')
-rw-r--r-- | data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/ux.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/ux.js b/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/ux.js new file mode 100644 index 0000000..be6c8b5 --- /dev/null +++ b/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/ux.js @@ -0,0 +1,44 @@ +/* global sendMessage, CodeMirror */ + +"use strict"; + +const savedTextElement = document.getElementById("saved-text"); +const unsavedTextElement = document.getElementById("unsaved-text"); +const savedTitle = "Debugging Rulesets"; +const unsavedTitle = "* Debugging Rulesets"; + +document.title = savedTitle; + +const cm = CodeMirror.fromTextArea( + document.getElementById("codemirror-textarea"), + { + mode: "xml", + theme: "default main saved" + } +); + +let valueHasChanged = false; +sendMessage("get_option", { debugging_rulesets: "" }, item => { + cm.setValue(item.debugging_rulesets); + cm.on("change", cm => { + if (!(valueHasChanged)) { + valueHasChanged = true; + document.title = unsavedTitle; + cm.setOption("theme", "default main unsaved"); + unsavedTextElement.style.visibility = "visible"; + } + }); +}); + +document.getElementById("save-button").addEventListener("click", e => { + e.preventDefault(); + sendMessage("set_option", { debugging_rulesets: cm.getValue() }, () => { + savedTextElement.style.display = "block"; + setTimeout(() => { savedTextElement.style.display = "none" }, 1000); + + valueHasChanged = false; + document.title = savedTitle; + cm.setOption("theme", "default main saved"); + unsavedTextElement.style.visibility = "hidden"; + }); +}); |