From d26b319fd6f98517cc3421f10bf18698b953e4d2 Mon Sep 17 00:00:00 2001 From: Ruben Rodriguez Date: Thu, 13 Sep 2018 20:39:48 -0400 Subject: Updated extensions list for v60 --- .../pages/debugging-rulesets/index.html | 25 ++++++++++++ .../pages/debugging-rulesets/style.css | 40 ++++++++++++++++++++ .../pages/debugging-rulesets/ux.js | 44 ++++++++++++++++++++++ 3 files changed, 109 insertions(+) create mode 100644 data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/index.html create mode 100644 data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/style.css create mode 100644 data/extensions/https-everywhere@eff.org/pages/debugging-rulesets/ux.js (limited to 'data/extensions/https-everywhere@eff.org/pages/debugging-rulesets') 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 @@ + + + + + + + + + + + +
Debugging Rulesets
+
+ Enter ruleset XML below and click save when ready. These rulesets will be immediately activated upon saving, and will persist across restarts.
+ Warning: This should only be used for debugging rulesets. This feature is not guaranteed to work reliably for regular usage.
+ Note: Due to a bug in Chromium, it may be necessary to close the options ui before saving. +
+
There are unsaved changes! Be sure to save them for them to take effect.
+ + +
Saved!
+ + + + 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"; + }); +}); -- cgit v1.2.3