| OLD | NEW |
| 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 var OptionsPage = options.OptionsPage; | 6 var OptionsPage = options.OptionsPage; |
| 7 | 7 |
| 8 // The offset of the first profile in either the address list or the credit | 8 // The offset of the first profile in either the address list or the credit |
| 9 // card list. Consists of the header and the horizontal rule. | 9 // card list. Consists of the header and the horizontal rule. |
| 10 const profileOffset = 2; | 10 const profileOffset = 2; |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 cr.addSingletonGetter(AutoFillOptions); | 30 cr.addSingletonGetter(AutoFillOptions); |
| 31 | 31 |
| 32 AutoFillOptions.prototype = { | 32 AutoFillOptions.prototype = { |
| 33 __proto__: OptionsPage.prototype, | 33 __proto__: OptionsPage.prototype, |
| 34 | 34 |
| 35 initializePage: function() { | 35 initializePage: function() { |
| 36 OptionsPage.prototype.initializePage.call(this); | 36 OptionsPage.prototype.initializePage.call(this); |
| 37 | 37 |
| 38 var self = this; | 38 var self = this; |
| 39 $('profileList').onchange = function(event) { | 39 $('profileList').onchange = function(event) { |
| 40 self.updateRemoveButtonState_(); | 40 self.updateButtonState_(); |
| 41 }; | 41 }; |
| 42 $('addAddressButton').onclick = function(event) { | 42 $('addAddressButton').onclick = function(event) { |
| 43 OptionsPage.showOverlay('autoFillEditAddressOverlay'); | 43 self.showAddAddressOverlay_(); |
| 44 }; | 44 }; |
| 45 $('addCreditCardButton').onclick = function(event) { | 45 $('addCreditCardButton').onclick = function(event) { |
| 46 OptionsPage.showOverlay('autoFillEditCreditCardOverlay'); | 46 self.showAddCreditCardOverlay_(); |
| 47 }; | 47 }; |
| 48 | 48 |
| 49 Preferences.getInstance().addEventListener('autofill.enabled', | 49 Preferences.getInstance().addEventListener('autofill.enabled', |
| 50 cr.bind(self.updateButtonState_, self)); | 50 cr.bind(self.updateEnabledState_, self)); |
| 51 }, | 51 }, |
| 52 | 52 |
| 53 /** | 53 /** |
| 54 * Sets the enabled state of the button controls based on the current state | 54 * Sets the enabled state of the button controls based on the current state |
| 55 * of the |autoFillEnabled| checkbox. | 55 * of the |autoFillEnabled| checkbox. |
| 56 * @private | 56 * @private |
| 57 */ | 57 */ |
| 58 updateButtonState_: function() { | 58 updateEnabledState_: function() { |
| 59 var checkbox = $('autoFillEnabled'); | 59 var checkbox = $('autoFillEnabled'); |
| 60 $('addAddressButton').disabled = $('addCreditCardButton').disabled = | 60 $('addAddressButton').disabled = $('addCreditCardButton').disabled = |
| 61 $('editButton').disabled = $('autoFillRemoveButton').disabled = | 61 $('editButton').disabled = $('autoFillRemoveButton').disabled = |
| 62 !checkbox.checked; | 62 !checkbox.checked; |
| 63 }, | 63 }, |
| 64 | 64 |
| 65 /** | 65 /** |
| 66 * Shows the 'Add address' overlay, specifically by loading the |
| 67 * 'Edit address' overlay, emptying the input fields and modifying the |
| 68 * overlay title. |
| 69 * @private |
| 70 */ |
| 71 showAddAddressOverlay_: function() { |
| 72 var title = localStrings.getString('addAddressTitle'); |
| 73 AutoFillEditAddressOverlay.setTitle(title); |
| 74 AutoFillEditAddressOverlay.clearInputFields(); |
| 75 OptionsPage.showOverlay('autoFillEditAddressOverlay'); |
| 76 }, |
| 77 |
| 78 /** |
| 79 * Shows the 'Add credit card' overlay, specifically by loading the |
| 80 * 'Edit credit card' overlay, emptying the input fields and modifying the |
| 81 * overlay title. |
| 82 * @private |
| 83 */ |
| 84 showAddCreditCardOverlay_: function() { |
| 85 var title = localStrings.getString('addCreditCardTitle'); |
| 86 AutoFillEditCreditCardOverlay.setTitle(title); |
| 87 AutoFillEditCreditCardOverlay.clearInputFields(); |
| 88 OptionsPage.showOverlay('autoFillEditCreditCardOverlay'); |
| 89 }, |
| 90 |
| 91 /** |
| 66 * Resets the address list. This method leaves the header and horizontal | 92 * Resets the address list. This method leaves the header and horizontal |
| 67 * rule unchanged. | 93 * rule unchanged. |
| 68 * @private | 94 * @private |
| 69 */ | 95 */ |
| 70 resetAddresses_: function() { | 96 resetAddresses_: function() { |
| 71 var profiles = $('profileList'); | 97 var profiles = $('profileList'); |
| 72 for (var i = 0; i < this.numAddresses; ++i) | 98 for (var i = 0; i < this.numAddresses; ++i) |
| 73 profiles.remove(profileOffset); | 99 profiles.remove(profileOffset); |
| 74 }, | 100 }, |
| 75 | 101 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 95 profileList = $('profileList'); | 121 profileList = $('profileList'); |
| 96 var blankAddress = | 122 var blankAddress = |
| 97 profileList.options[profileOffset + this.numAddresses]; | 123 profileList.options[profileOffset + this.numAddresses]; |
| 98 this.numAddresses = addresses.length; | 124 this.numAddresses = addresses.length; |
| 99 for (var i = 0; i < this.numAddresses; i++) { | 125 for (var i = 0; i < this.numAddresses; i++) { |
| 100 var address = addresses[i]; | 126 var address = addresses[i]; |
| 101 var option = new Option(address['label']); | 127 var option = new Option(address['label']); |
| 102 profileList.add(option, blankAddress); | 128 profileList.add(option, blankAddress); |
| 103 } | 129 } |
| 104 | 130 |
| 105 this.updateRemoveButtonState_(); | 131 this.updateButtonState_(); |
| 106 }, | 132 }, |
| 107 | 133 |
| 108 /** | 134 /** |
| 109 * Updates the credit card list with the given entries. | 135 * Updates the credit card list with the given entries. |
| 110 * @private | 136 * @private |
| 111 * @param {Array} creditCards List of credit cards. | 137 * @param {Array} creditCards List of credit cards. |
| 112 */ | 138 */ |
| 113 updateCreditCards_: function(creditCards) { | 139 updateCreditCards_: function(creditCards) { |
| 114 this.resetCreditCards_(); | 140 this.resetCreditCards_(); |
| 115 profileList = $('profileList'); | 141 profileList = $('profileList'); |
| 116 this.numCreditCards = creditCards.length; | 142 this.numCreditCards = creditCards.length; |
| 117 for (var i = 0; i < this.numCreditCards; i++) { | 143 for (var i = 0; i < this.numCreditCards; i++) { |
| 118 var creditCard = creditCards[i]; | 144 var creditCard = creditCards[i]; |
| 119 var option = new Option(creditCard['label']); | 145 var option = new Option(creditCard['label']); |
| 120 profileList.add(option, null); | 146 profileList.add(option, null); |
| 121 } | 147 } |
| 122 | 148 |
| 123 this.updateRemoveButtonState_(); | 149 this.updateButtonState_(); |
| 124 }, | 150 }, |
| 125 | 151 |
| 126 /** | 152 /** |
| 127 * Sets the enabled state of the AutoFill Remove button based on the current | 153 * Sets the enabled state of the AutoFill Edit and Remove buttons based on |
| 128 * selection in the profile list. | 154 * the current selection in the profile list. |
| 129 * @private | 155 * @private |
| 130 */ | 156 */ |
| 131 updateRemoveButtonState_: function() { | 157 updateButtonState_: function() { |
| 132 $('autoFillRemoveButton').disabled = | 158 $('autoFillRemoveButton').disabled = $('autoFillEditButton').disabled = |
| 133 ($('profileList').selectedIndex == -1); | 159 ($('profileList').selectedIndex == -1); |
| 134 }, | 160 }, |
| 135 }; | 161 }; |
| 136 | 162 |
| 137 AutoFillOptions.updateAddresses = function(addresses) { | 163 AutoFillOptions.updateAddresses = function(addresses) { |
| 138 AutoFillOptions.getInstance().updateAddresses_(addresses); | 164 AutoFillOptions.getInstance().updateAddresses_(addresses); |
| 139 }; | 165 }; |
| 140 | 166 |
| 141 AutoFillOptions.updateCreditCards = function(creditCards) { | 167 AutoFillOptions.updateCreditCards = function(creditCards) { |
| 142 AutoFillOptions.getInstance().updateCreditCards_(creditCards); | 168 AutoFillOptions.getInstance().updateCreditCards_(creditCards); |
| 143 }; | 169 }; |
| 144 | 170 |
| 145 // Export | 171 // Export |
| 146 return { | 172 return { |
| 147 AutoFillOptions: AutoFillOptions | 173 AutoFillOptions: AutoFillOptions |
| 148 }; | 174 }; |
| 149 | 175 |
| 150 }); | 176 }); |
| 151 | 177 |
| OLD | NEW |