From fa5c0b073214191e6996ba0b5bc8e61560ff822c Mon Sep 17 00:00:00 2001 From: Mark H Weaver Date: Wed, 27 Sep 2023 00:53:30 -0400 Subject: Update the JShelter extension to 0.15.2. --- .../jsr@javascriptrestrictor/options_advanced.js | 35 +++++++++++++++++++--- 1 file changed, 31 insertions(+), 4 deletions(-) (limited to 'data/extensions/jsr@javascriptrestrictor/options_advanced.js') diff --git a/data/extensions/jsr@javascriptrestrictor/options_advanced.js b/data/extensions/jsr@javascriptrestrictor/options_advanced.js index ad36623..cf327d4 100644 --- a/data/extensions/jsr@javascriptrestrictor/options_advanced.js +++ b/data/extensions/jsr@javascriptrestrictor/options_advanced.js @@ -20,27 +20,54 @@ // along with this program. If not, see . // -function load_config_to_text() { +let original_config = undefined; +document.getElementById("levels-storage-undo").classList.add("hidden"); + +function load_config_to_text(keep_config = false) { browser.storage.sync.get(null).then(function (item) { document.getElementById("levels-storage-text").value = JSON.stringify(item, null, '\t'); + if (keep_config) { + original_config = item; + } }); } window.addEventListener("DOMContentLoaded", function() { - load_config_to_text(); + load_config_to_text(true); }); document.getElementById("levels-storage-load").addEventListener("click", function() { load_config_to_text(); }); -document.getElementById("levels-storage-save").addEventListener("click", function() { +document.getElementById("levels-storage-save").addEventListener("click", async function() { try { - checkAndSaveConfig(JSON.parse(document.getElementById("levels-storage-text").value)); + await checkAndSaveConfig(JSON.parse(document.getElementById("levels-storage-text").value)); } catch (e) { alert("The configuration is not valid."); return; } load_config_to_text(); + document.getElementById("levels-storage-undo").classList.remove("hidden"); +}); + +document.getElementById("levels-storage-reset").addEventListener("click", async function() { + await checkAndSaveConfig({}); + load_config_to_text(); + document.getElementById("levels-storage-undo").classList.remove("hidden"); +}); + +document.getElementById("levels-storage-undo").addEventListener("click", async function() { + if (original_config !== undefined) { + try { + let current_config = await browser.storage.sync.get(null); + await checkAndSaveConfig(original_config); + load_config_to_text(); + original_config = current_config; + } + catch (e) { + alert("An unexpected error during configuration restore. Please check and fix the configuration manually."); + } + } }); -- cgit v1.2.3