| /*******************/ | |||||
| /* EVENT LISTENERS */ | |||||
| /*******************/ | |||||
| /**********/ | |||||
| /* EVENTS */ | |||||
| /**********/ | |||||
| document.querySelectorAll("button").forEach(button => { | |||||
| button.addActivateEvent((event) => { | |||||
| event.target.blur(); | |||||
| if (button.classList.contains("save-button")) | |||||
| saveChanges(); | |||||
| else | |||||
| resetChanges(); | |||||
| }); | |||||
| }); | |||||
| document.querySelectorAll("textarea").forEach(textarea => { | |||||
| textarea.addEventListener("input", (event) => { | |||||
| setButtonsActive(true); | |||||
| }); | |||||
| }); | |||||
| document.querySelector("input[type='checkbox']").addEventListener("change", (event) => { | |||||
| modeSelectorInputReceived(); | |||||
| }); | |||||
| document.querySelectorAll(".mode-select-container span").forEach(span => { | |||||
| span.addActivateEvent((event) => { | |||||
| modeSelectorInputReceived(); | |||||
| }); | |||||
| }); | |||||
| function modeSelectorInputReceived() { | function modeSelectorInputReceived() { | ||||
| toggleModeSelectorState(); | toggleModeSelectorState(); | ||||
| window.currentMode = (window.currentMode == "whitelist") ? "blacklist" : "whitelist"; | window.currentMode = (window.currentMode == "whitelist") ? "blacklist" : "whitelist"; | ||||
| let divToFocus = (result.mode == "whitelist") ? "#exclusionPatterns" : "#matchingPatterns"; | let divToFocus = (result.mode == "whitelist") ? "#exclusionPatterns" : "#matchingPatterns"; | ||||
| document.querySelector(`${divToFocus} textarea`).focus(); | document.querySelector(`${divToFocus} textarea`).focus(); | ||||
| }); | }); | ||||
| // Listeners for Reset and Save buttons. | |||||
| document.querySelectorAll("button").forEach(button => { | |||||
| button.addActivateEvent((event) => { | |||||
| event.target.blur(); | |||||
| if (button.classList.contains("save-button")) | |||||
| saveChanges(); | |||||
| else | |||||
| resetChanges(); | |||||
| }); | |||||
| }); | |||||
| // Listeners to activate Reset/Save buttons when textareas get input. | |||||
| document.querySelectorAll("textarea").forEach(textarea => { | |||||
| textarea.addEventListener("input", (event) => { | |||||
| setButtonsActive(true); | |||||
| }); | |||||
| }); | |||||
| // Listeners for mode select switch. | |||||
| document.querySelector("input[type='checkbox']").addEventListener("change", (event) => { | |||||
| modeSelectorInputReceived(); | |||||
| }); | |||||
| document.querySelectorAll(".mode-select-container span").forEach(span => { | |||||
| span.addActivateEvent((event) => { | |||||
| modeSelectorInputReceived(); | |||||
| }); | |||||
| }); | |||||
| } | } | ||||
| initialize(); | initialize(); |