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

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

Issue 3119038: yRevert 57093 - dom-ui options: record user metrics for pref changes.... (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
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
(...skipping 15 matching lines...) Expand all
26 Preferences.getInstance().addEventListener(this.pref, 26 Preferences.getInstance().addEventListener(this.pref,
27 function(event) { 27 function(event) {
28 self.managed = event.value['managed'] 28 self.managed = event.value['managed']
29 self.disabled = self.managed; 29 self.disabled = self.managed;
30 self.checked = event.value['value']; 30 self.checked = event.value['value'];
31 }); 31 });
32 32
33 // Listen to user events. 33 // Listen to user events.
34 this.addEventListener('click', 34 this.addEventListener('click',
35 function(e) { 35 function(e) {
36 Preferences.setBooleanPref(self.pref, self.checked, self.metric); 36 Preferences.setBooleanPref(self.pref, self.checked);
37 }); 37 });
38 } 38 }
39 }; 39 };
40 40
41 /** 41 /**
42 * The preference name. 42 * The preference name.
43 * @type {string} 43 * @type {string}
44 */ 44 */
45 cr.defineProperty(PrefCheckbox, 'pref', cr.PropertyKind.ATTR); 45 cr.defineProperty(PrefCheckbox, 'pref', cr.PropertyKind.ATTR);
46 46
47 /**
48 * The user metric string.
49 * @type {string}
50 */
51 cr.defineProperty(PrefCheckbox, 'metric', cr.PropertyKind.ATTR);
52
53 ///////////////////////////////////////////////////////////////////////////// 47 /////////////////////////////////////////////////////////////////////////////
54 // PrefRadio class: 48 // PrefRadio class:
55 49
56 //Define a constructor that uses an input element as its underlying element. 50 //Define a constructor that uses an input element as its underlying element.
57 var PrefRadio = cr.ui.define('input'); 51 var PrefRadio = cr.ui.define('input');
58 52
59 PrefRadio.prototype = { 53 PrefRadio.prototype = {
60 // Set up the prototype chain 54 // Set up the prototype chain
61 __proto__: HTMLInputElement.prototype, 55 __proto__: HTMLInputElement.prototype,
62 56
(...skipping 10 matching lines...) Expand all
73 self.managed = event.value['managed'] 67 self.managed = event.value['managed']
74 self.disabled = self.managed; 68 self.disabled = self.managed;
75 self.checked = String(event.value['value']) == self.value; 69 self.checked = String(event.value['value']) == self.value;
76 }); 70 });
77 71
78 // Listen to user events. 72 // Listen to user events.
79 this.addEventListener('change', 73 this.addEventListener('change',
80 function(e) { 74 function(e) {
81 if(self.value == 'true' || self.value == 'false') { 75 if(self.value == 'true' || self.value == 'false') {
82 Preferences.setBooleanPref(self.pref, 76 Preferences.setBooleanPref(self.pref,
83 self.value == 'true', self.metric); 77 self.value == 'true');
84 } else { 78 } else {
85 Preferences.setIntegerPref(self.pref, 79 Preferences.setIntegerPref(self.pref,
86 parseInt(self.value, 10), self.metric); 80 parseInt(self.value, 10));
87 } 81 }
88 }); 82 });
89 }, 83 },
90 84
91 /** 85 /**
92 * Getter for preference name attribute. 86 * Getter for preference name attribute.
93 */ 87 */
94 get pref() { 88 get pref() {
95 return this.getAttribute('pref'); 89 return this.getAttribute('pref');
96 }, 90 },
97 91
98 /** 92 /**
99 * Setter for preference name attribute. 93 * Setter for preference name attribute.
100 */ 94 */
101 set pref(name) { 95 set pref(name) {
102 this.setAttribute('pref', name); 96 this.setAttribute('pref', name);
103 } 97 }
104 }; 98 };
105 99
106 /**
107 * The user metric string.
108 * @type {string}
109 */
110 cr.defineProperty(PrefRadio, 'metric', cr.PropertyKind.ATTR);
111 100
112 ///////////////////////////////////////////////////////////////////////////// 101 /////////////////////////////////////////////////////////////////////////////
113 // PrefNumeric class: 102 // PrefNumeric class:
114 103
115 // Define a constructor that uses an input element as its underlying element. 104 // Define a constructor that uses an input element as its underlying element.
116 var PrefNumeric = function() {}; 105 var PrefNumeric = function() {};
117 PrefNumeric.prototype = { 106 PrefNumeric.prototype = {
118 // Set up the prototype chain 107 // Set up the prototype chain
119 __proto__: HTMLInputElement.prototype, 108 __proto__: HTMLInputElement.prototype,
120 109
121 /** 110 /**
122 * Initialization function for the cr.ui framework. 111 * Initialization function for the cr.ui framework.
123 */ 112 */
124 decorate: function() { 113 decorate: function() {
125 var self = this; 114 var self = this;
126 115
127 // Listen to pref changes. 116 // Listen to pref changes.
128 Preferences.getInstance().addEventListener(this.pref, 117 Preferences.getInstance().addEventListener(this.pref,
129 function(event) { 118 function(event) {
130 self.managed = event.value['managed'] 119 self.managed = event.value['managed']
131 self.disabled = self.managed; 120 self.disabled = self.managed;
132 self.value = event.value['value']; 121 self.value = event.value['value'];
133 }); 122 });
134 123
135 // Listen to user events. 124 // Listen to user events.
136 this.addEventListener('change', 125 this.addEventListener('change',
137 function(e) { 126 function(e) {
138 Preferences.setIntegerPref(self.pref, self.value, self.metric); 127 Preferences.setIntegerPref(self.pref, self.value);
139 }); 128 });
140 } 129 }
141 }; 130 };
142 131
143 /** 132 /**
144 * The preference name. 133 * The preference name.
145 * @type {string} 134 * @type {string}
146 */ 135 */
147 cr.defineProperty(PrefNumeric, 'pref', cr.PropertyKind.ATTR); 136 cr.defineProperty(PrefNumeric, 'pref', cr.PropertyKind.ATTR);
148 137
149 /**
150 * The user metric string.
151 * @type {string}
152 */
153 cr.defineProperty(PrefNumeric, 'metric', cr.PropertyKind.ATTR);
154
155 ///////////////////////////////////////////////////////////////////////////// 138 /////////////////////////////////////////////////////////////////////////////
156 // PrefNumber class: 139 // PrefNumber class:
157 140
158 // Define a constructor that uses an input element as its underlying element. 141 // Define a constructor that uses an input element as its underlying element.
159 var PrefNumber = cr.ui.define('input'); 142 var PrefNumber = cr.ui.define('input');
160 143
161 PrefNumber.prototype = { 144 PrefNumber.prototype = {
162 // Set up the prototype chain 145 // Set up the prototype chain
163 __proto__: PrefNumeric.prototype, 146 __proto__: PrefNumeric.prototype,
164 147
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 // Item not found, select first item. 202 // Item not found, select first item.
220 self.selectedIndex = 0; 203 self.selectedIndex = 0;
221 }); 204 });
222 205
223 // Listen to user events. 206 // Listen to user events.
224 this.addEventListener('change', 207 this.addEventListener('change',
225 function(e) { 208 function(e) {
226 switch(self.dataType) { 209 switch(self.dataType) {
227 case 'number': 210 case 'number':
228 Preferences.setIntegerPref(self.pref, 211 Preferences.setIntegerPref(self.pref,
229 self.options[self.selectedIndex].value, self.metric); 212 self.options[self.selectedIndex].value);
230 break; 213 break;
231 case 'boolean': 214 case 'boolean':
232 Preferences.setBooleanValue(self.pref, 215 Preferences.setBooleanValue(self.pref,
233 self.options[self.selectedIndex].value, self.metric); 216 self.options[self.selectedIndex].value);
234 break; 217 break;
235 case 'string': 218 case 'string':
236 Preferences.setStringPref(self.pref, 219 Preferences.setStringPref(self.pref,
237 self.options[self.selectedIndex].value, self.metric); 220 self.options[self.selectedIndex].value);
238 break; 221 break;
239 } 222 }
240 }); 223 });
241 224
242 // Initialize options. 225 // Initialize options.
243 this.ownerDocument.addEventListener('DOMContentLoaded', 226 this.ownerDocument.addEventListener('DOMContentLoaded',
244 function() { 227 function() {
245 var values = self.getAttribute('data-values'); 228 var values = self.getAttribute('data-values');
246 if (values) { 229 if (values) {
247 self.initializeValues(templateData[values]); 230 self.initializeValues(templateData[values]);
(...skipping 17 matching lines...) Expand all
265 }, this); 248 }, this);
266 } 249 }
267 }; 250 };
268 251
269 /** 252 /**
270 * The preference name. 253 * The preference name.
271 * @type {string} 254 * @type {string}
272 */ 255 */
273 cr.defineProperty(PrefSelect, 'pref', cr.PropertyKind.ATTR); 256 cr.defineProperty(PrefSelect, 'pref', cr.PropertyKind.ATTR);
274 257
275 /**
276 * The user metric string.
277 * @type {string}
278 */
279 cr.defineProperty(PrefSelect, 'metric', cr.PropertyKind.ATTR);
280
281 ///////////////////////////////////////////////////////////////////////////// 258 /////////////////////////////////////////////////////////////////////////////
282 // PrefTextField class: 259 // PrefTextField class:
283 260
284 // Define a constructor that uses an input element as its underlying element. 261 // Define a constructor that uses an input element as its underlying element.
285 var PrefTextField = cr.ui.define('input'); 262 var PrefTextField = cr.ui.define('input');
286 263
287 PrefTextField.prototype = { 264 PrefTextField.prototype = {
288 // Set up the prototype chain 265 // Set up the prototype chain
289 __proto__: HTMLInputElement.prototype, 266 __proto__: HTMLInputElement.prototype,
290 267
291 /** 268 /**
292 * Initialization function for the cr.ui framework. 269 * Initialization function for the cr.ui framework.
293 */ 270 */
294 decorate: function() { 271 decorate: function() {
295 var self = this; 272 var self = this;
296 273
297 // Listen to pref changes. 274 // Listen to pref changes.
298 Preferences.getInstance().addEventListener(this.pref, 275 Preferences.getInstance().addEventListener(this.pref,
299 function(event) { 276 function(event) {
300 self.managed = event.value['managed'] 277 self.managed = event.value['managed']
301 self.disabled = self.managed; 278 self.disabled = self.managed;
302 self.value = event.value['value']; 279 self.value = event.value['value'];
303 }); 280 });
304 281
305 // Listen to user events. 282 // Listen to user events.
306 this.addEventListener('change', 283 this.addEventListener('change',
307 function(e) { 284 function(e) {
308 Preferences.setStringPref(self.pref, self.value, self.metric); 285 Preferences.setStringPref(self.pref, self.value);
309 }); 286 });
310 287
311 window.addEventListener('unload', 288 window.addEventListener('unload',
312 function() { 289 function() {
313 if (document.activeElement == self) 290 if (document.activeElement == self)
314 self.blur(); 291 self.blur();
315 }); 292 });
316 } 293 }
317 }; 294 };
318 295
319 /** 296 /**
320 * The preference name. 297 * The preference name.
321 * @type {string} 298 * @type {string}
322 */ 299 */
323 cr.defineProperty(PrefTextField, 'pref', cr.PropertyKind.ATTR); 300 cr.defineProperty(PrefTextField, 'pref', cr.PropertyKind.ATTR);
324 301
325 /**
326 * The user metric string.
327 * @type {string}
328 */
329 cr.defineProperty(PrefTextField, 'metric', cr.PropertyKind.ATTR);
330
331 // Export 302 // Export
332 return { 303 return {
333 PrefCheckbox: PrefCheckbox, 304 PrefCheckbox: PrefCheckbox,
334 PrefNumber: PrefNumber, 305 PrefNumber: PrefNumber,
335 PrefNumeric: PrefNumeric, 306 PrefNumeric: PrefNumeric,
336 PrefRadio: PrefRadio, 307 PrefRadio: PrefRadio,
337 PrefRange: PrefRange, 308 PrefRange: PrefRange,
338 PrefSelect: PrefSelect, 309 PrefSelect: PrefSelect,
339 PrefTextField: PrefTextField 310 PrefTextField: PrefTextField
340 }; 311 };
341 312
342 }); 313 });
343 314
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/personal_options.js ('k') | chrome/browser/resources/options/preferences.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698