| Index: options.js |
| =================================================================== |
| --- a/options.js |
| +++ b/options.js |
| @@ -671,6 +671,16 @@ |
| } |
| } |
| + function disableButtonWhenInvalid(button, input) |
| + { |
| + function checkValidity() |
| + { |
| + button.disabled = !input.checkValidity(); |
| + } |
| + checkValidity(); |
| + input.addEventListener("input", checkValidity, false); |
| + } |
| + |
| function onDOMLoaded() |
| { |
| populateLists(); |
| @@ -720,9 +730,14 @@ |
| // Initialize interactive UI elements |
| document.body.addEventListener("click", onClick, false); |
| + var findLanuage = E("find-language"); |
| var placeholderValue = getMessage("options_dialog_language_find"); |
| - E("find-language").setAttribute("placeholder", placeholderValue); |
| - E("find-language").addEventListener("keyup", onFindLanguageKeyUp, false); |
| + findLanuage.setAttribute("placeholder", placeholderValue); |
| + findLanuage.addEventListener("keyup", onFindLanguageKeyUp, false); |
| + disableButtonWhenInvalid( |
| + document.querySelector("[data-action=import-subscription]"), |
| + E("blockingList-textbox") |
| + ); |
| E("whitelisting-textbox").addEventListener("keypress", function(e) |
| { |
| if (getKey(e) == "Enter") |
| @@ -760,11 +775,14 @@ |
| )); |
| }); |
| - var filterTextbox = document.querySelector("#custom-filters-add input"); |
| + var filterControl = E("custom-filters-add"); |
| + var filterTextbox = filterControl.querySelector("input"); |
| placeholderValue = getMessage("options_customFilters_textbox_placeholder"); |
| filterTextbox.setAttribute("placeholder", placeholderValue); |
| - function addCustomFilters() |
| + disableButtonWhenInvalid(filterControl.querySelector("button"), filterTextbox); |
| + filterControl.addEventListener("submit", function(e) |
| { |
| + e.preventDefault(); |
| var filterText = filterTextbox.value; |
| sendMessageHandleErrors( |
| { |
| @@ -775,11 +793,6 @@ |
| { |
| filterTextbox.value = ""; |
| }); |
| - } |
| - E("custom-filters-add").addEventListener("submit", function(e) |
| - { |
| - e.preventDefault(); |
| - addCustomFilters(); |
| }, false); |
| var customFilterEditButtons = document.querySelectorAll("#custom-filters-edit-wrapper button"); |
| @@ -831,6 +844,7 @@ |
| dialog.setAttribute("aria-hidden", true); |
| dialog.removeAttribute("aria-labelledby"); |
| document.body.removeAttribute("data-dialog"); |
| + E("blockingList-textbox").value = ""; |
|
Sebastian Noack
2016/04/06 22:46:01
This is kinda unrelated, but it seems to have been
|
| focusedBeforeDialog.focus(); |
| } |