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 | |
parent | c3b304c51a3386ea09527a479a883253ea35243a (diff) |
Updated extensions list for v60
Diffstat (limited to 'data/extensions/https-everywhere@eff.org/pages/debugging-rulesets')
3 files changed, 109 insertions, 0 deletions
diff --git a/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/index.html b/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/index.html new file mode 100644 index 0000000..bd6f743 --- /dev/null +++ b/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/index.html @@ -0,0 +1,25 @@ +<!doctype html> +<html> + <head> + <meta charset="utf-8"> + <title></title> + <link href="style.css" rel="stylesheet"> + <script src="/external/codemirror/codemirror-5.31.0.min.js"></script> + <link href="/external/codemirror/codemirror-5.31.0.min.css" rel="stylesheet"> + <script src="/external/codemirror/codemirror-5.31.0.xml.min.js"></script> + </head> + <body> + <div class="section-header"><span class="section-header-span">Debugging Rulesets</span></div> + <div class="section-explainer"> + Enter ruleset XML below and click save when ready. These rulesets will be immediately activated upon saving, and will persist across restarts.<br> + <i>Warning</i>: This should only be used for debugging rulesets. This feature is not guaranteed to work reliably for regular usage.<br> + <i>Note</i>: Due to a bug in Chromium, it may be necessary to close the options ui before saving. + </div> + <div id="unsaved-text">There are unsaved changes! Be sure to save them for them to take effect.</div> + <textarea id="codemirror-textarea"></textarea> + <button type="button" id="save-button">Save</button> + <div id="saved-text">Saved!</div> + <script src="../send-message.js"></script> + <script src="ux.js"></script> + </body> +</html> diff --git a/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/style.css b/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/style.css new file mode 100644 index 0000000..e424c70 --- /dev/null +++ b/data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/style.css @@ -0,0 +1,40 @@ +.cm-s-main{ + width: 100%; + height: 500px; +} + +.cm-s-saved{ + border: 1px solid black; +} + +.cm-s-unsaved{ + border: 1px solid red; +} + +.section-explainer{ + margin-bottom: 5px; +} + +.section-header{ + margin-bottom: 10px; +} + +.section-header-span{ + border-bottom: 1px solid #ccc; + font-size: 15px; +} + +#saved-text{ + display: none; + color: green; + font-weight: bold; + margin: 30px; +} + +#unsaved-text{ + font-weight: bold; + margin: 10px 0px; + color: red; + visibility: hidden; + text-align: center; +} 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"; + }); +}); |