Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: js/desktop-options.js

Issue 29712664: Issue 6432 - Hide remove button for additional filter lists (Closed)
Patch Set: Version with no callback hell Created March 8, 2018, 2:20 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « desktop-options.html ('k') | skin/icons/checkbox.svg » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: js/desktop-options.js
===================================================================
--- a/js/desktop-options.js
+++ b/js/desktop-options.js
@@ -26,6 +26,7 @@
let acceptableAdsUrl = null;
let acceptableAdsPrivacyUrl = null;
let isCustomFiltersLoaded = false;
+let additionalSubscriptions = [];
let {getMessage} = browser.i18n;
let {setElementText} = ext.i18n;
let customFilters = [];
@@ -237,7 +238,17 @@
{
control.setAttribute("aria-checked", item.disabled == false);
if (isAcceptableAds(item.url) && this == collections.filterLists)
+ {
control.disabled = true;
+ }
+ }
+ if (additionalSubscriptions.includes(item.url))
+ {
+ element.classList.add("preconfigured");
+ let disablePreconfigures =
+ element.querySelectorAll("[data-disable~='preconfigured']");
+ for (let disablePreconfigure of disablePreconfigures)
+ disablePreconfigure.disabled = true;
}
let lastUpdateElement = element.querySelector(".last-update");
@@ -939,7 +950,7 @@
});
for (let key of customize)
{
- getPref(key, (value) =>
+ getHidePref(key, (value) =>
{
onPrefMessage(key, value, true);
});
@@ -1119,7 +1130,7 @@
let acceptableAdsForm = E("acceptable-ads");
if (hasPrivacyConflict())
{
- getPref("ui_warn_tracking", (showTrackingWarning) =>
+ getHidePref("ui_warn_tracking", (showTrackingWarning) =>
{
acceptableAdsForm.classList.toggle("show-warning", showTrackingWarning);
});
@@ -1154,35 +1165,24 @@
});
});
loadRecommendations();
- browser.runtime.sendMessage({
- type: "prefs.get",
- key: "subscriptions_exceptionsurl"
- },
- (url) =>
+ let preloadPrefs = ["subscriptions_exceptionsurl",
+ "subscriptions_exceptionsurl_privacy",
+ "additional_subscriptions"];
+ getPrefs(preloadPrefs).then(prefs =>
{
- acceptableAdsUrl = url;
+ [acceptableAdsUrl, acceptableAdsPrivacyUrl,
+ additionalSubscriptions] = prefs;
- browser.runtime.sendMessage({
- type: "prefs.get",
- key: "subscriptions_exceptionsurl_privacy"
- },
- (urlPrivacy) =>
- {
- acceptableAdsPrivacyUrl = urlPrivacy;
+ return browser.runtime.sendMessage({
+ type: "subscriptions.get",
+ downloadable: true
+ });
+ }).then((subscriptions) =>
+ {
+ for (let subscription of subscriptions)
+ onSubscriptionMessage("added", subscription);
- // Load user subscriptions
- browser.runtime.sendMessage({
- type: "subscriptions.get",
- downloadable: true
- },
- (subscriptions) =>
- {
- for (let subscription of subscriptions)
- onSubscriptionMessage("added", subscription);
-
- setAcceptableAds();
- });
- });
+ setAcceptableAds();
});
}
@@ -1342,9 +1342,17 @@
element.setAttribute("aria-hidden", value);
}
-function getPref(key, callback)
+function getPrefs(prefKeys)
{
- let checkPref = getPref.checks[key] || getPref.checkNone;
+ prefKeys = prefKeys.map(key => browser.runtime.sendMessage({
+ type: "prefs.get", key
+ }));
+ return Promise.all(prefKeys);
+}
+
+function getHidePref(key, callback)
+{
+ let checkPref = getHidePref.checks[key] || getHidePref.checkNone;
checkPref((isActive) =>
{
if (!isActive)
@@ -1360,16 +1368,16 @@
});
}
-getPref.checkNone = function(callback)
+getHidePref.checkNone = function(callback)
{
callback(true);
};
-getPref.checks =
+getHidePref.checks =
{
notifications_ignoredcategories(callback)
{
- getPref("notifications_showui", callback);
+ getHidePref("notifications_showui", callback);
}
};
« no previous file with comments | « desktop-options.html ('k') | skin/icons/checkbox.svg » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld