| Index: options.js |
| =================================================================== |
| --- a/options.js |
| +++ b/options.js |
| @@ -316,6 +316,55 @@ |
| request.send(null); |
| } |
| + function onClick(e) |
| + { |
| + var element = e.target; |
| + while (true) |
| + { |
| + if (element === document.body) |
|
Sebastian Noack
2015/07/09 12:24:18
What if the click event occurs on the <html> eleme
Sebastian Noack
2015/07/09 12:24:19
Nit: We don't use the strict equality operator unl
Thomas Greiner
2015/07/09 13:55:06
I can't find that section in the Mozilla coding st
Thomas Greiner
2015/07/09 13:55:07
Done.
Note that it doesn't make a difference in th
Sebastian Noack
2015/07/09 15:16:56
Yes, we are, however if the "click" is is triggere
Sebastian Noack
2015/07/09 15:16:57
You are right, I thought it were the other way aro
|
| + return; |
| + |
| + if ("action" in element.dataset) |
| + break; |
| + |
| + element = element.parentNode; |
|
Sebastian Noack
2015/07/09 15:16:56
This should be |element.parentElement| as mentione
Thomas Greiner
2015/07/10 14:19:15
Done.
|
| + } |
| + |
| + switch (element.dataset.action) |
|
Sebastian Noack
2015/07/09 12:24:18
Older Safari versions don't have dataset.
Thomas Greiner
2015/07/09 13:55:06
According to caniuse.com it has been supported sin
Sebastian Noack
2015/07/09 15:16:56
Officially, we support Safari 6+. That is mostly b
saroyanm
2015/07/09 17:14:19
I will suggest to make that kind of modification i
Sebastian Noack
2015/07/10 07:58:19
Well, by relying on flexbox, the new option page a
Thomas Greiner
2015/07/10 14:19:15
Done.
I wouldn't consider IE support to be releva
|
| + { |
| + case "add-domain-exception": |
| + addWhitelistedDomain(); |
| + break; |
| + case "add-subscription": |
| + var dialog = E("dialog-content-addSubscription"); |
| + var title = dialog.querySelector("h3").textContent; |
| + var url = dialog.querySelector(".url").textContent; |
| + addEnableSubscription(url, title); |
| + delete document.body.dataset.dialog; |
| + break; |
| + case "cancel-domain-exception": |
| + E("whitelisting-textbox").value = ""; |
| + break; |
| + case "close-dialog": |
| + delete document.body.dataset.dialog; |
| + break; |
| + case "edit-custom-filters": |
| + editCustomFilters(); |
| + break; |
| + case "import-subscription": |
| + var url = E("blockingList-textbox").value; |
| + addEnableSubscription(url); |
| + delete document.body.dataset.dialog; |
| + break; |
| + case "open-language-dialog": |
| + openDialog("language"); |
| + break; |
| + case "open-subscription-dialog": |
| + openDialog("customlist"); |
| + break; |
| + } |
| + } |
| + |
| function onDOMLoaded() |
| { |
| var recommendationTemplate = document.querySelector("#recommend-list-table template"); |
| @@ -368,31 +417,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,12 +428,6 @@ |
| 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) |
| @@ -606,8 +628,10 @@ |
| function showAddSubscriptionDialog(subscription) |
| { |
| - E("blockingList-textbox").value = subscription.url; |
| - openDialog("customlist"); |
| + var dialog = E("dialog-content-addSubscription"); |
| + dialog.querySelector("h3").textContent = subscription.title || ""; |
| + dialog.querySelector(".url").textContent = subscription.url; |
| + openDialog("addSubscription"); |
| } |
| function updateShareLink() |