Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Unified Diff: ui/webui/resources/cr_elements/v1_0/policy/cr_policy_pref_indicator.js

Issue 1391433003: Extract policy indicator behavior (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@issue_521791_network_indicators_a
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/webui/resources/cr_elements/v1_0/policy/cr_policy_pref_indicator.js
diff --git a/ui/webui/resources/cr_elements/v1_0/policy/cr_policy_pref_indicator.js b/ui/webui/resources/cr_elements/v1_0/policy/cr_policy_pref_indicator.js
new file mode 100644
index 0000000000000000000000000000000000000000..1f01d5a96deb0297792707e12f726d2807358092
--- /dev/null
+++ b/ui/webui/resources/cr_elements/v1_0/policy/cr_policy_pref_indicator.js
@@ -0,0 +1,66 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+/**
+ * @fileoverview Polymer element for indicating policies that apply to an
+ * element controlling a settings preference.
+ *
+ * @element cr-policy-pref-indicator
+ */
+Polymer({
+ is: 'cr-policy-pref-indicator',
+
+ behaviors: [CrPolicyIndicatorBehavior, CrPolicyPrefBehavior],
+
+ properties: {
+ /**
+ * Optional preference object associated with the indicator. Initialized to
+ * null so that computed functions will get called if this is never set.
+ * @type {?chrome.settingsPrivate.PrefObject}
+ */
+ pref: {type: Object, value: null},
+
+ /**
+ * Optional email of the user controlling the setting when the setting does
+ * not correspond to a pref (Chrome OS only). Only used when pref is null.
+ * Initialized to '' so that computed functions will get called if this is
+ * never set.
+ */
+ controllingUser: {type: String, value: ''},
michaelpg 2015/10/07 18:18:35 TODO (for me or you): extract this to a separate i
stevenjb 2015/10/07 18:33:38 Done.
+
+ /**
+ * Which indicator type to show (or NONE).
+ * @type {CrPolicyIndicatorType}
+ */
+ indicatorType: {type: String, value: CrPolicyIndicatorType.NONE},
+ },
+
+ observers: ['prefPolicyChanged_(pref.policySource, pref.policyEnforcement)'],
+
+ /**
+ * Polymer observer for pref.
+ * @param {chrome.settingsPrivate.PolicySource} source
+ * @param {chrome.settingsPrivate.PolicyEnforcement} enforcement
+ * @private
+ */
+ prefPolicyChanged_: function(source, enforcement) {
+ this.indicatorType = this.getIndicatorType(source, enforcement);
+ },
+
+ /**
+ * @param {CrPolicyIndicatorType} type
+ * @param {?chrome.settingsPrivate.PrefObject} pref
+ * @return {string} The tooltip text for |type|.
+ * @private
+ */
+ getTooltip_: function(type, pref, controllingUser) {
+ if (type == CrPolicyIndicatorType.RECOMMENDED) {
+ if (pref && pref.value == pref.recommendedValue)
+ return this.i18n('controlledSettingRecommendedMatches');
+ return this.i18n('controlledSettingRecommendedDiffers');
+ }
+ var name = pref ? pref.policySourceName : controllingUser;
+ return this.getTooltipText(type, name);
+ }
+});

Powered by Google App Engine
This is Rietveld 408576698