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: chrome/browser/resources/settings/checkbox/checkbox.js

Issue 1310373008: Add cr_policy_indicator for settings controls (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@md_settings_compiled_resources_3
Patch Set: Rebase + Feedback Created 5 years, 3 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: chrome/browser/resources/settings/checkbox/checkbox.js
diff --git a/chrome/browser/resources/settings/checkbox/checkbox.js b/chrome/browser/resources/settings/checkbox/checkbox.js
index 2109aba704b116f176e0fb79a4e7f9dc2c25dd2f..12edb099ea68b2d8626a92c7bbb94e40c9a982d7 100644
--- a/chrome/browser/resources/settings/checkbox/checkbox.js
+++ b/chrome/browser/resources/settings/checkbox/checkbox.js
@@ -24,25 +24,35 @@ Polymer({
pref: {
type: Object,
notify: true,
- value: null
+ value: null,
},
+ /** Whether the checkbox should represent the inverted value. */
inverted: {
type: Boolean,
- value: false
+ value: false,
},
+ /** Whether the checkbox is checked. */
checked: {
type: Boolean,
value: false,
- observer: 'checkedChanged_'
+ observer: 'checkedChanged_',
+ },
+
+ /** Disabled property for the element. */
+ disabled: {
+ type: Boolean,
+ value: false,
},
+ /** Checkbox label. */
label: {
type: String,
value: '',
},
+ /** Additional sub-label for the checkbox. */
subLabel: {
type: String,
value: '',
@@ -58,23 +68,43 @@ Polymer({
this.$.events.forward(this.$.checkbox, ['change']);
},
- /** @private */
+ /**
+ * Polymer observer for pref.value
+ * @param {?chrome.settingsPrivate.PrefObject} prefValue
+ * @private
+ */
prefValueChanged_: function(prefValue) {
// prefValue is initially undefined when Polymer initializes pref.
- if (prefValue !== undefined) {
+ if (prefValue !== undefined)
this.checked = this.getNewValue_(prefValue);
- }
},
- /** @private */
+ /**
+ * Polymer observer for checked.
+ * @private
+ */
checkedChanged_: function() {
- if (this.pref) {
- this.set('pref.value', this.getNewValue_(this.checked));
- }
+ this.set('pref.value', this.getNewValue_(this.checked));
+ },
+
+ /**
+ * @param {*} value
+ * @return {boolean} The value as a boolean, inverted if |inverted| is true.
+ * @private
+ */
+ getNewValue_: function(value) {
+ return this.inverted ? !value : !!value;
},
- /** @private */
- getNewValue_: function(val) {
- return this.inverted ? !val : val;
- }
+ /**
+ * @param {boolean} disabled
+ * @param {?chrome.settingsPrivate.PrefObject} pref
+ * @return {boolean} Whether the checkbox should be disabled.
+ * @private
+ */
+ checkboxDisabled_: function(disabled, pref) {
+ return disabled || (!!pref &&
+ pref.policyEnforcement ==
+ chrome.settingsPrivate.PolicyEnforcement.ENFORCED);
+ },
});

Powered by Google App Engine
This is Rietveld 408576698