| Index: options.js |
| =================================================================== |
| --- a/options.js |
| +++ b/options.js |
| @@ -53,10 +53,10 @@ |
| var text = item.title || item.url || item.text; |
| var listItem = document.createElement("li"); |
| listItem.appendChild(document.importNode(template.content, true)); |
| - listItem.dataset.access = item.url || item.text; |
| + listItem.setAttribute("data-access", item.url || item.text); |
| listItem.querySelector(".display").textContent = text; |
| if (text) |
| - listItem.dataset.search = text.toLowerCase(); |
| + listItem.setAttribute("data-search", text.toLowerCase()); |
| var control = listItem.querySelector(".control"); |
| if (control) |
| @@ -105,7 +105,7 @@ |
| function onToggleSubscriptionClick(e) |
| { |
| e.preventDefault(); |
| - var subscriptionUrl = e.target.parentNode.dataset.access; |
| + var subscriptionUrl = e.target.parentNode.getAttribute("data-access"); |
| if (!e.target.checked) |
| removeSubscription(subscriptionUrl); |
| else |
| @@ -115,13 +115,13 @@ |
| function onAddLanguageSubscriptionClick(e) |
| { |
| e.preventDefault(); |
| - var url = this.parentNode.dataset.access; |
| + var url = this.parentNode.getAttribute("data-access"); |
| addEnableSubscription(url); |
| } |
| function onRemoveFilterClick() |
| { |
| - var filter = this.parentNode.dataset.access; |
| + var filter = this.parentNode.getAttribute("data-access"); |
| removeFilter(filter); |
| } |
| @@ -316,6 +316,59 @@ |
| request.send(null); |
| } |
| + function onClick(e) |
| + { |
| + var element = e.target; |
| + while (true) |
| + { |
| + if (!element) |
| + return; |
| + |
| + if (element.hasAttribute("data-action")) |
| + break; |
| + |
| + element = element.parentElement; |
| + } |
| + |
| + switch (element.getAttribute("data-action")) |
| + { |
| + case "add-domain-exception": |
| + addWhitelistedDomain(); |
| + break; |
| + case "add-subscription": |
| + var dialog = E("dialog-content-predefined"); |
| + var title = dialog.querySelector("h3").textContent; |
| + var url = dialog.querySelector(".url").textContent; |
| + addEnableSubscription(url, title); |
| + document.body.removeAttribute("data-dialog"); |
| + break; |
| + case "cancel-domain-exception": |
| + E("whitelisting-textbox").value = ""; |
| + break; |
| + case "close-dialog": |
| + document.body.removeAttribute("data-dialog"); |
| + break; |
| + case "edit-custom-filters": |
| + editCustomFilters(); |
| + break; |
| + case "import-subscription": |
| + var url = E("blockingList-textbox").value; |
| + addEnableSubscription(url); |
| + document.body.removeAttribute("data-dialog"); |
| + break; |
| + case "open-language-dialog": |
| + openDialog("language"); |
| + break; |
| + case "open-subscription-dialog": |
| + openDialog("custom"); |
| + break; |
| + case "switch-tab": |
| + document.body.setAttribute("data-tab", |
| + element.getAttribute("data-tab")); |
| + break; |
| + } |
| + } |
| + |
| function onDOMLoaded() |
| { |
| var recommendationTemplate = document.querySelector("#recommend-list-table template"); |
| @@ -327,15 +380,6 @@ |
| populateLists(); |
| - var tabList = document.querySelectorAll("#main-navigation-tabs li"); |
| - for (var i = 0; i < tabList.length; i++) |
| - { |
| - tabList[i].addEventListener("click", function(e) |
| - { |
| - document.body.dataset.tab = e.currentTarget.dataset.show; |
| - }, false); |
| - } |
| - |
| function onFindLanguageKeyUp() |
| { |
| var searchStyle = E("search-style"); |
| @@ -368,31 +412,10 @@ |
| updateShareLink(); |
| // Initialize interactive UI elements |
| + document.body.addEventListener("click", onClick, false); |
| var placeholderValue = ext.i18n.getMessage("options_dialog_language_find"); |
| E("find-language").setAttribute("placeholder", placeholderValue); |
| - E("add-blocking-list").addEventListener("click", function() |
| - { |
| - openDialog("customlist"); |
| - }, false); |
| - E("add-website-language").addEventListener("click", function() |
| - { |
| - openDialog("language"); |
| - }, false); |
| - E("dialog-close").addEventListener("click", function() |
| - { |
| - delete document.body.dataset.dialog; |
| - }, false); |
| - E("edit-ownBlockingList-button").addEventListener("click", editCustomFilters, false); |
| E("find-language").addEventListener("keyup", onFindLanguageKeyUp, false); |
| - E("whitelisting").addEventListener("click", function(e) |
| - { |
| - var id = e.target.id; |
| - if (id == "whitelisting-add-icon" || id == "whitelisting-enter-icon") |
| - addWhitelistedDomain(); |
| - else if (id == "whitelisting-cancel-button") |
| - E("whitelisting-textbox").value = ""; |
| - }, false); |
| - E("whitelisting-add-button").addEventListener("click", addWhitelistedDomain, false); |
| E("whitelisting-textbox").addEventListener("keypress", function(e) |
| { |
| // e.keyCode has been deprecated so we attempt to use e.key |
| @@ -400,17 +423,11 @@ |
| if ((e.key && e.key == "Enter") || (!e.key && e.keyCode == 13)) |
| addWhitelistedDomain(); |
| }, false); |
| - E("import-blockingList-button").addEventListener("click", function() |
| - { |
| - var url = E("blockingList-textbox").value; |
| - addEnableSubscription(url); |
| - delete document.body.dataset.dialog; |
| - }, false); |
| } |
| function openDialog(name) |
| { |
| - document.body.dataset.dialog = name; |
| + document.body.setAttribute("data-dialog", name); |
| } |
| function populateLists() |
| @@ -606,8 +623,10 @@ |
| function showAddSubscriptionDialog(subscription) |
|
saroyanm
2015/07/14 11:03:38
Make sense to rename the method as well,
ex.: "sh
Thomas Greiner
2015/07/14 11:37:33
Done. Removed the function since it's only been us
|
| { |
| - E("blockingList-textbox").value = subscription.url; |
| - openDialog("customlist"); |
| + var dialog = E("dialog-content-predefined"); |
| + dialog.querySelector("h3").textContent = subscription.title || ""; |
| + dialog.querySelector(".url").textContent = subscription.url; |
| + openDialog("predefined"); |
| } |
| function updateShareLink() |