| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 cr.define('options', function() { | 5 cr.define('options', function() { |
| 6 var Preferences = options.Preferences; | 6 var Preferences = options.Preferences; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * A controlled setting indicator that can be placed on a setting as an | 9 * A controlled setting indicator that can be placed on a setting as an |
| 10 * indicator that the value is controlled by some external entity such as | 10 * indicator that the value is controlled by some external entity such as |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 91 | 91 |
| 92 // Apply text overrides. | 92 // Apply text overrides. |
| 93 if (self.hasAttribute('text' + self.controlledBy)) | 93 if (self.hasAttribute('text' + self.controlledBy)) |
| 94 text = self.getAttribute('text' + self.controlledBy); | 94 text = self.getAttribute('text' + self.controlledBy); |
| 95 | 95 |
| 96 // Create the DOM tree. | 96 // Create the DOM tree. |
| 97 var bubbleText = doc.createElement('p'); | 97 var bubbleText = doc.createElement('p'); |
| 98 bubbleText.className = 'controlled-setting-bubble-text'; | 98 bubbleText.className = 'controlled-setting-bubble-text'; |
| 99 bubbleText.textContent = text; | 99 bubbleText.textContent = text; |
| 100 | 100 |
| 101 var pref = self.getAttribute('pref'); | 101 var allowReset = self.getAttribute('allow-reset'); |
| 102 if (self.controlledBy == 'recommended' && pref) { | 102 if (self.controlledBy == 'recommended' && allowReset) { |
| 103 var container = doc.createElement('div'); | 103 var container = doc.createElement('div'); |
| 104 var action = doc.createElement('button'); | 104 var action = doc.createElement('button'); |
| 105 action.classList.add('link-button'); | 105 action.classList.add('link-button'); |
| 106 action.classList.add('controlled-setting-bubble-action'); | 106 action.classList.add('controlled-setting-bubble-action'); |
| 107 action.textContent = | 107 action.textContent = |
| 108 localStrings.getString('controlledSettingApplyRecommendation'); | 108 localStrings.getString('controlledSettingApplyRecommendation'); |
| 109 action.addEventListener( | 109 action.addEventListener( |
| 110 'click', | 110 'click', |
| 111 function(e) { | 111 function(e) { |
| 112 Preferences.clearPref(pref); | 112 // Fire the reset event, falling back to just resetting the pref. |
| 113 if (!cr.dispatchSimpleEvent(self, 'reset', true, true)) { |
| 114 var pref = self.getAttribute('pref'); |
| 115 if (pref) |
| 116 Preferences.clearPref(pref); |
| 117 } |
| 113 }); | 118 }); |
| 114 container.appendChild(action); | 119 container.appendChild(action); |
| 115 bubbleText.appendChild(container); | 120 bubbleText.appendChild(container); |
| 116 } | 121 } |
| 117 | 122 |
| 118 bubbleContainer.appendChild(bubbleText); | 123 bubbleContainer.appendChild(bubbleText); |
| 119 | 124 |
| 120 // One-time bubble-closing event handler. | 125 // One-time bubble-closing event handler. |
| 121 self.closeHandler_ = this.close.bind(this); | 126 self.closeHandler_ = this.close.bind(this); |
| 122 doc.addEventListener('click', self.closeHandler_, true); | 127 doc.addEventListener('click', self.closeHandler_, true); |
| 123 } | 128 } |
| 124 }; | 129 }; |
| 125 | 130 |
| 126 /** | 131 /** |
| 127 * The controlling entity of the setting. Can take the values "policy", | 132 * The controlling entity of the setting. Can take the values "policy", |
| 128 * "extension", "recommended" or be unset. | 133 * "extension", "recommended" or be unset. |
| 129 */ | 134 */ |
| 130 cr.defineProperty(ControlledSettingIndicator, 'controlledBy', | 135 cr.defineProperty(ControlledSettingIndicator, 'controlledBy', |
| 131 cr.PropertyKind.ATTR, | 136 cr.PropertyKind.ATTR, |
| 132 ControlledSettingIndicator.prototype.close); | 137 ControlledSettingIndicator.prototype.close); |
| 133 | 138 |
| 134 // Export. | 139 // Export. |
| 135 return { | 140 return { |
| 136 ControlledSettingIndicator : ControlledSettingIndicator | 141 ControlledSettingIndicator : ControlledSettingIndicator |
| 137 }; | 142 }; |
| 138 }); | 143 }); |
| OLD | NEW |