| OLD | NEW | 
|    1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |    1 // Copyright (c) 2012 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 // TODO(jhawkins): Add dialog-pref support to all preference controls. |    5 // TODO(jhawkins): Add dialog-pref support to all preference controls. | 
|    6  |    6  | 
|    7 cr.define('options', function() { |    7 cr.define('options', function() { | 
|    8  |    8  | 
|    9   var Preferences = options.Preferences; |    9   var Preferences = options.Preferences; | 
|   10  |   10  | 
| (...skipping 13 matching lines...) Expand all  Loading... | 
|   24     if (el.disabled && (Object.keys(el.disabledReasons).length == 0)) { |   24     if (el.disabled && (Object.keys(el.disabledReasons).length == 0)) { | 
|   25       // The element has been previously disabled without a reason, so we add |   25       // The element has been previously disabled without a reason, so we add | 
|   26       // one to keep it disabled. |   26       // one to keep it disabled. | 
|   27       el.disabledReasons['other'] = true; |   27       el.disabledReasons['other'] = true; | 
|   28     } |   28     } | 
|   29     if (!el.disabled) { |   29     if (!el.disabled) { | 
|   30       // If the element is not disabled, there should be no reason, except for |   30       // If the element is not disabled, there should be no reason, except for | 
|   31       // 'other'. |   31       // 'other'. | 
|   32       delete el.disabledReasons['other']; |   32       delete el.disabledReasons['other']; | 
|   33       if (Object.keys(el.disabledReasons).length > 0) |   33       if (Object.keys(el.disabledReasons).length > 0) | 
|   34         console.error("Element is not disabled but should be"); |   34         console.error('Element is not disabled but should be'); | 
|   35     } |   35     } | 
|   36     if (disabled) { |   36     if (disabled) { | 
|   37       el.disabledReasons[reason] = true; |   37       el.disabledReasons[reason] = true; | 
|   38     } else { |   38     } else { | 
|   39       delete el.disabledReasons[reason]; |   39       delete el.disabledReasons[reason]; | 
|   40     } |   40     } | 
|   41     el.disabled = Object.keys(el.disabledReasons).length > 0; |   41     el.disabled = Object.keys(el.disabledReasons).length > 0; | 
|   42   } |   42   } | 
|   43  |   43  | 
|   44   /** |   44   /** | 
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   96             updateElementState_(self, event); |   96             updateElementState_(self, event); | 
|   97           }); |   97           }); | 
|   98  |   98  | 
|   99       // Listen to user events. |   99       // Listen to user events. | 
|  100       this.addEventListener( |  100       this.addEventListener( | 
|  101           'change', |  101           'change', | 
|  102           function(e) { |  102           function(e) { | 
|  103             if (self.customChangeHandler(e)) |  103             if (self.customChangeHandler(e)) | 
|  104               return; |  104               return; | 
|  105             var value = self.inverted_pref ? !self.checked : self.checked; |  105             var value = self.inverted_pref ? !self.checked : self.checked; | 
|  106             switch(self.valueType) { |  106             switch (self.valueType) { | 
|  107               case 'number': |  107               case 'number': | 
|  108                 Preferences.setIntegerPref(self.pref, |  108                 Preferences.setIntegerPref(self.pref, | 
|  109                     Number(value), self.metric); |  109                     Number(value), self.metric); | 
|  110                 break; |  110                 break; | 
|  111               case 'boolean': |  111               case 'boolean': | 
|  112                 Preferences.setBooleanPref(self.pref, |  112                 Preferences.setBooleanPref(self.pref, | 
|  113                     value, self.metric); |  113                     value, self.metric); | 
|  114                 break; |  114                 break; | 
|  115             } |  115             } | 
|  116           }); |  116           }); | 
| (...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  536           }); |  536           }); | 
|  537  |  537  | 
|  538       // Listen to user events. |  538       // Listen to user events. | 
|  539       this.addEventListener('change', |  539       this.addEventListener('change', | 
|  540           function(e) { |  540           function(e) { | 
|  541             if (!self.dataType) { |  541             if (!self.dataType) { | 
|  542               console.error('undefined data type for <select> pref'); |  542               console.error('undefined data type for <select> pref'); | 
|  543               return; |  543               return; | 
|  544             } |  544             } | 
|  545  |  545  | 
|  546             switch(self.dataType) { |  546             switch (self.dataType) { | 
|  547               case 'number': |  547               case 'number': | 
|  548                 Preferences.setIntegerPref(self.pref, |  548                 Preferences.setIntegerPref(self.pref, | 
|  549                     self.options[self.selectedIndex].value, self.metric); |  549                     self.options[self.selectedIndex].value, self.metric); | 
|  550                 break; |  550                 break; | 
|  551               case 'double': |  551               case 'double': | 
|  552                 Preferences.setDoublePref(self.pref, |  552                 Preferences.setDoublePref(self.pref, | 
|  553                     self.options[self.selectedIndex].value, self.metric); |  553                     self.options[self.selectedIndex].value, self.metric); | 
|  554                 break; |  554                 break; | 
|  555               case 'boolean': |  555               case 'boolean': | 
|  556                 var option = self.options[self.selectedIndex]; |  556                 var option = self.options[self.selectedIndex]; | 
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  622           function(event) { |  622           function(event) { | 
|  623             self.value = event.value && event.value['value'] != undefined ? |  623             self.value = event.value && event.value['value'] != undefined ? | 
|  624                 event.value['value'] : event.value; |  624                 event.value['value'] : event.value; | 
|  625  |  625  | 
|  626             updateElementState_(self, event); |  626             updateElementState_(self, event); | 
|  627           }); |  627           }); | 
|  628  |  628  | 
|  629       // Listen to user events. |  629       // Listen to user events. | 
|  630       this.addEventListener('change', |  630       this.addEventListener('change', | 
|  631           function(e) { |  631           function(e) { | 
|  632             switch(self.dataType) { |  632             switch (self.dataType) { | 
|  633               case 'number': |  633               case 'number': | 
|  634                 Preferences.setIntegerPref(self.pref, self.value, self.metric); |  634                 Preferences.setIntegerPref(self.pref, self.value, self.metric); | 
|  635                 break; |  635                 break; | 
|  636               case 'double': |  636               case 'double': | 
|  637                 Preferences.setDoublePref(self.pref, self.value, self.metric); |  637                 Preferences.setDoublePref(self.pref, self.value, self.metric); | 
|  638                 break; |  638                 break; | 
|  639               case 'url': |  639               case 'url': | 
|  640                 Preferences.setURLPref(self.pref, self.value, self.metric); |  640                 Preferences.setURLPref(self.pref, self.value, self.metric); | 
|  641                 break; |  641                 break; | 
|  642               default: |  642               default: | 
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  745     PrefNumber: PrefNumber, |  745     PrefNumber: PrefNumber, | 
|  746     PrefNumeric: PrefNumeric, |  746     PrefNumeric: PrefNumeric, | 
|  747     PrefRadio: PrefRadio, |  747     PrefRadio: PrefRadio, | 
|  748     PrefRange: PrefRange, |  748     PrefRange: PrefRange, | 
|  749     PrefSelect: PrefSelect, |  749     PrefSelect: PrefSelect, | 
|  750     PrefTextField: PrefTextField, |  750     PrefTextField: PrefTextField, | 
|  751     PrefButton: PrefButton |  751     PrefButton: PrefButton | 
|  752   }; |  752   }; | 
|  753  |  753  | 
|  754 }); |  754 }); | 
| OLD | NEW |