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

Side by Side Diff: chrome/browser/resources/options/pref_ui.js

Issue 3170042: dom-ui options: Fix incorrect handling of undefined values in pref UI.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 4 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 6
7 var Preferences = options.Preferences; 7 var Preferences = options.Preferences;
8 ///////////////////////////////////////////////////////////////////////////// 8 /////////////////////////////////////////////////////////////////////////////
9 // PrefCheckbox class: 9 // PrefCheckbox class:
10 10
11 // Define a constructor that uses an input element as its underlying element. 11 // Define a constructor that uses an input element as its underlying element.
12 var PrefCheckbox = cr.ui.define('input'); 12 var PrefCheckbox = cr.ui.define('input');
13 13
14 PrefCheckbox.prototype = { 14 PrefCheckbox.prototype = {
15 // Set up the prototype chain 15 // Set up the prototype chain
16 __proto__: HTMLInputElement.prototype, 16 __proto__: HTMLInputElement.prototype,
17 17
18 /** 18 /**
19 * Initialization function for the cr.ui framework. 19 * Initialization function for the cr.ui framework.
20 */ 20 */
21 decorate: function() { 21 decorate: function() {
22 this.type = 'checkbox'; 22 this.type = 'checkbox';
23 var self = this; 23 var self = this;
24 24
25 // Listen to pref changes. 25 // Listen to pref changes.
26 Preferences.getInstance().addEventListener(this.pref, 26 Preferences.getInstance().addEventListener(this.pref,
27 function(event) { 27 function(event) {
28 self.checked = event.value['value'] ? event.value['value'] 28 self.checked = event.value['value'] != undefined ?
29 : event.value; 29 event.value['value'] : event.value;
30 self.managed = event.value['managed'] ? event.value['managed'] 30 self.managed = event.value['managed'] != undefined ?
31 : false; 31 event.value['managed'] : false;
32 self.disabled = self.managed; 32 self.disabled = self.managed;
33 }); 33 });
34 34
35 // Listen to user events. 35 // Listen to user events.
36 this.addEventListener('click', 36 this.addEventListener('click',
37 function(e) { 37 function(e) {
38 Preferences.setBooleanPref(self.pref, self.checked, self.metric); 38 Preferences.setBooleanPref(self.pref, self.checked, self.metric);
39 }); 39 });
40 } 40 }
41 }; 41 };
(...skipping 23 matching lines...) Expand all
65 /** 65 /**
66 * Initialization function for the cr.ui framework. 66 * Initialization function for the cr.ui framework.
67 */ 67 */
68 decorate: function() { 68 decorate: function() {
69 this.type = 'radio'; 69 this.type = 'radio';
70 var self = this; 70 var self = this;
71 71
72 // Listen to pref changes. 72 // Listen to pref changes.
73 Preferences.getInstance().addEventListener(this.pref, 73 Preferences.getInstance().addEventListener(this.pref,
74 function(event) { 74 function(event) {
75 var value = event.value['value'] ? event.value['value'] 75 var value = event.value['value'] != undefined ?
76 : event.value; 76 event.value['value'] : event.value;
77 self.managed = event.value['managed'] ? event.value['managed'] 77 self.managed = event.value['managed'] != undefined ?
78 : false; 78 event.value['managed'] : false;
79 self.checked = String(value) == self.value; 79 self.checked = String(value) == self.value;
80 self.disabled = self.managed; 80 self.disabled = self.managed;
81 }); 81 });
82 82
83 // Listen to user events. 83 // Listen to user events.
84 this.addEventListener('change', 84 this.addEventListener('change',
85 function(e) { 85 function(e) {
86 if(self.value == 'true' || self.value == 'false') { 86 if(self.value == 'true' || self.value == 'false') {
87 Preferences.setBooleanPref(self.pref, 87 Preferences.setBooleanPref(self.pref,
88 self.value == 'true', self.metric); 88 self.value == 'true', self.metric);
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 125
126 /** 126 /**
127 * Initialization function for the cr.ui framework. 127 * Initialization function for the cr.ui framework.
128 */ 128 */
129 decorate: function() { 129 decorate: function() {
130 var self = this; 130 var self = this;
131 131
132 // Listen to pref changes. 132 // Listen to pref changes.
133 Preferences.getInstance().addEventListener(this.pref, 133 Preferences.getInstance().addEventListener(this.pref,
134 function(event) { 134 function(event) {
135 self.value = event.value['value'] ? event.value['value'] 135 self.value = event.value['value'] != undefined ?
136 : event.value; 136 event.value['value'] : event.value;
137 self.managed = event.value['managed'] ? event.value['managed'] 137 self.managed = event.value['managed'] != undefined ?
138 : false; 138 event.value['managed'] : false;
139 self.disabled = self.managed; 139 self.disabled = self.managed;
140 }); 140 });
141 141
142 // Listen to user events. 142 // Listen to user events.
143 this.addEventListener('change', 143 this.addEventListener('change',
144 function(e) { 144 function(e) {
145 Preferences.setIntegerPref(self.pref, self.value, self.metric); 145 Preferences.setIntegerPref(self.pref, self.value, self.metric);
146 }); 146 });
147 } 147 }
148 }; 148 };
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
208 __proto__: HTMLSelectElement.prototype, 208 __proto__: HTMLSelectElement.prototype,
209 209
210 /** 210 /**
211 * Initialization function for the cr.ui framework. 211 * Initialization function for the cr.ui framework.
212 */ 212 */
213 decorate: function() { 213 decorate: function() {
214 var self = this; 214 var self = this;
215 // Listen to pref changes. 215 // Listen to pref changes.
216 Preferences.getInstance().addEventListener(this.pref, 216 Preferences.getInstance().addEventListener(this.pref,
217 function(event) { 217 function(event) {
218 var value = event.value['value'] ? event.value['value'] 218 var value = event.value['value'] != undefined ?
219 : event.value; 219 event.value['value'] : event.value;
220 self.managed = event.value['managed'] ? event.value['managed'] 220 self.managed = event.value['managed'] != undefined ?
221 : false; 221 event.value['managed'] : false;
222 self.disabled = self.managed; 222 self.disabled = self.managed;
223 for (var i = 0; i < self.options.length; i++) { 223 for (var i = 0; i < self.options.length; i++) {
224 if (self.options[i].value == value) { 224 if (self.options[i].value == value) {
225 self.selectedIndex = i; 225 self.selectedIndex = i;
226 return; 226 return;
227 } 227 }
228 } 228 }
229 // Item not found, select first item. 229 // Item not found, select first item.
230 self.selectedIndex = 0; 230 self.selectedIndex = 0;
231 }); 231 });
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
300 300
301 /** 301 /**
302 * Initialization function for the cr.ui framework. 302 * Initialization function for the cr.ui framework.
303 */ 303 */
304 decorate: function() { 304 decorate: function() {
305 var self = this; 305 var self = this;
306 306
307 // Listen to pref changes. 307 // Listen to pref changes.
308 Preferences.getInstance().addEventListener(this.pref, 308 Preferences.getInstance().addEventListener(this.pref,
309 function(event) { 309 function(event) {
310 self.value = event.value['value'] ? event.value['value'] 310 self.value = event.value['value'] != undefined ?
311 : event.value; 311 event.value['value'] : event.value;
312 self.managed = event.value['managed'] ? event.value['managed'] 312 self.managed = event.value['managed'] != undefined ?
313 : false; 313 event.value['managed'] : false;
314 self.disabled = self.managed; 314 self.disabled = self.managed;
315 }); 315 });
316 316
317 // Listen to user events. 317 // Listen to user events.
318 this.addEventListener('change', 318 this.addEventListener('change',
319 function(e) { 319 function(e) {
320 Preferences.setStringPref(self.pref, self.value, self.metric); 320 Preferences.setStringPref(self.pref, self.value, self.metric);
321 }); 321 });
322 322
323 window.addEventListener('unload', 323 window.addEventListener('unload',
(...skipping 22 matching lines...) Expand all
346 PrefNumber: PrefNumber, 346 PrefNumber: PrefNumber,
347 PrefNumeric: PrefNumeric, 347 PrefNumeric: PrefNumeric,
348 PrefRadio: PrefRadio, 348 PrefRadio: PrefRadio,
349 PrefRange: PrefRange, 349 PrefRange: PrefRange,
350 PrefSelect: PrefSelect, 350 PrefSelect: PrefSelect,
351 PrefTextField: PrefTextField 351 PrefTextField: PrefTextField
352 }; 352 };
353 353
354 }); 354 });
355 355
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698