Chromium Code Reviews| 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 const OptionsPage = options.OptionsPage; | 6 const OptionsPage = options.OptionsPage; |
| 7 | 7 |
| 8 // The GUID of the loaded address. | 8 // The GUID of the loaded address. |
| 9 var guid; | 9 var guid; |
| 10 | 10 |
| (...skipping 22 matching lines...) Expand all Loading... | |
| 33 var self = this; | 33 var self = this; |
| 34 $('autoFillEditAddressCancelButton').onclick = function(event) { | 34 $('autoFillEditAddressCancelButton').onclick = function(event) { |
| 35 self.dismissOverlay_(); | 35 self.dismissOverlay_(); |
| 36 } | 36 } |
| 37 $('autoFillEditAddressApplyButton').onclick = function(event) { | 37 $('autoFillEditAddressApplyButton').onclick = function(event) { |
| 38 self.saveAddress_(); | 38 self.saveAddress_(); |
| 39 self.dismissOverlay_(); | 39 self.dismissOverlay_(); |
| 40 } | 40 } |
| 41 | 41 |
| 42 self.guid = ''; | 42 self.guid = ''; |
| 43 self.populateCountryList_(); | |
| 43 self.clearInputFields_(); | 44 self.clearInputFields_(); |
| 44 self.connectInputEvents_(); | 45 self.connectInputEvents_(); |
| 45 }, | 46 }, |
| 46 | 47 |
| 47 /** | 48 /** |
| 48 * Clears any uncommitted input, resets the stored GUID and dismisses the | 49 * Clears any uncommitted input, resets the stored GUID and dismisses the |
| 49 * overlay. | 50 * overlay. |
| 50 * @private | 51 * @private |
| 51 */ | 52 */ |
| 52 dismissOverlay_: function() { | 53 dismissOverlay_: function() { |
| 53 this.clearInputFields_(); | 54 this.clearInputFields_(); |
| 54 this.guid = ''; | 55 this.guid = ''; |
| 55 OptionsPage.closeOverlay(); | 56 OptionsPage.closeOverlay(); |
| 56 }, | 57 }, |
| 57 | 58 |
| 58 /** | 59 /** |
| 59 * Aggregates the values in the input fields into an array and sends the | 60 * Aggregates the values in the input fields into an array and sends the |
| 60 * array to the AutoFill handler. | 61 * array to the AutoFill handler. |
| 61 * @private | 62 * @private |
| 62 */ | 63 */ |
| 63 saveAddress_: function() { | 64 saveAddress_: function() { |
| 64 var address = new Array(); | 65 var address = new Array(); |
| 65 address[0] = this.guid; | 66 address[0] = this.guid; |
| 66 address[1] = $('fullName').value; | 67 address[1] = $('fullName').value; |
| 67 address[2] = $('companyName').value; | 68 address[2] = $('companyName').value; |
| 68 address[3] = $('addrLine1').value; | 69 address[3] = $('addrLine1').value; |
| 69 address[4] = $('addrLine2').value; | 70 address[4] = $('addrLine2').value; |
| 70 address[5] = $('city').value; | 71 address[5] = $('city').value; |
| 71 address[6] = $('state').value; | 72 address[6] = $('state').value; |
| 72 address[7] = $('zipCode').value; | 73 address[7] = $('postalCode').value; |
| 73 address[8] = $('country').value; | 74 address[8] = $('country').value; |
| 74 address[9] = $('phone').value; | 75 address[9] = $('phone').value; |
| 75 address[10] = $('fax').value; | 76 address[10] = $('fax').value; |
| 76 address[11] = $('email').value; | 77 address[11] = $('email').value; |
| 77 | 78 |
| 78 chrome.send('setAddress', address); | 79 chrome.send('setAddress', address); |
| 79 }, | 80 }, |
| 80 | 81 |
| 81 /** | 82 /** |
| 82 * Connects each input field to the inputFieldChanged_() method that enables | 83 * Connects each input field to the inputFieldChanged_() method that enables |
| 83 * or disables the 'Ok' button based on whether all the fields are empty or | 84 * or disables the 'Ok' button based on whether all the fields are empty or |
| 84 * not. | 85 * not. |
| 85 * @private | 86 * @private |
| 86 */ | 87 */ |
| 87 connectInputEvents_: function() { | 88 connectInputEvents_: function() { |
| 88 var self = this; | 89 var self = this; |
| 89 $('fullName').oninput = $('companyName').oninput = | 90 $('fullName').oninput = $('companyName').oninput = |
| 90 $('addrLine1').oninput = $('addrLine2').oninput = $('city').oninput = | 91 $('addrLine1').oninput = $('addrLine2').oninput = $('city').oninput = |
| 91 $('state').oninput = $('country').oninput = $('zipCode').oninput = | 92 $('state').oninput = $('country').oninput = $('postalCode').oninput = |
| 92 $('phone').oninput = $('fax').oninput = | 93 $('phone').oninput = $('fax').oninput = |
| 93 $('email').oninput = function(event) { | 94 $('email').oninput = function(event) { |
| 94 self.inputFieldChanged_(); | 95 self.inputFieldChanged_(); |
| 95 } | 96 } |
| 97 | |
| 98 $('country').onchange = function(event) { | |
| 99 self.countryChanged_(event); | |
| 100 } | |
| 96 }, | 101 }, |
| 97 | 102 |
| 98 /** | 103 /** |
| 99 * Checks the values of each of the input fields and disables the 'Ok' | 104 * Checks the values of each of the input fields and disables the 'Ok' |
| 100 * button if all of the fields are empty. | 105 * button if all of the fields are empty. |
| 101 * @private | 106 * @private |
| 102 */ | 107 */ |
| 103 inputFieldChanged_: function() { | 108 inputFieldChanged_: function() { |
| 104 var disabled = | 109 var disabled = |
| 105 !$('fullName').value && !$('companyName').value && | 110 !$('fullName').value && !$('companyName').value && |
| 106 !$('addrLine1').value && !$('addrLine2').value && !$('city').value && | 111 !$('addrLine1').value && !$('addrLine2').value && !$('city').value && |
| 107 !$('state').value && !$('zipCode').value && !('country').value && | 112 !$('state').value && !$('postalCode').value && !('country').value && |
| 108 !$('phone').value && !$('fax').value && !$('email').value; | 113 !$('phone').value && !$('fax').value && !$('email').value; |
| 109 $('autoFillEditAddressApplyButton').disabled = disabled; | 114 $('autoFillEditAddressApplyButton').disabled = disabled; |
| 110 }, | 115 }, |
| 111 | 116 |
| 112 /** | 117 /** |
| 118 * Updates the postal code and state field labels appropriately for the | |
| 119 * selected country. | |
| 120 * @private | |
| 121 */ | |
| 122 countryChanged_: function(event) { | |
| 123 var country_code = $('country').value; | |
|
arv (Not doing code reviews)
2011/02/11 22:55:37
No underscores in JS
Ilya Sherman
2011/02/12 07:33:02
Done.
| |
| 124 var details = templateData.autofillCountryData[country_code]; | |
| 125 $('postalCodeLabel').textContent = details['postalCodeLabel']; | |
| 126 $('stateLabel').textContent = details['stateLabel']; | |
| 127 }, | |
| 128 | |
| 129 /** | |
| 130 * Populates the country <select> list. | |
| 131 * @private | |
| 132 */ | |
| 133 populateCountryList_: function() { | |
| 134 var countryList = $('country'); | |
| 135 var countries = templateData.autofillCountryData; | |
| 136 for (country_code in countries) { | |
|
arv (Not doing code reviews)
2011/02/11 22:55:37
missing var
Ilya Sherman
2011/02/12 07:33:02
Done.
| |
| 137 var option = document.createElement('option'); | |
| 138 option.value = country_code; | |
| 139 option.textContent = countries[country_code]['name']; | |
| 140 countryList.appendChild(option) | |
| 141 } | |
| 142 }, | |
| 143 | |
| 144 /** | |
| 113 * Clears the value of each input field. | 145 * Clears the value of each input field. |
| 114 * @private | 146 * @private |
| 115 */ | 147 */ |
| 116 clearInputFields_: function() { | 148 clearInputFields_: function() { |
| 117 $('fullName').value = ''; | 149 $('fullName').value = ''; |
| 118 $('companyName').value = ''; | 150 $('companyName').value = ''; |
| 119 $('addrLine1').value = ''; | 151 $('addrLine1').value = ''; |
| 120 $('addrLine2').value = ''; | 152 $('addrLine2').value = ''; |
| 121 $('city').value = ''; | 153 $('city').value = ''; |
| 122 $('state').value = ''; | 154 $('state').value = ''; |
| 123 $('zipCode').value = ''; | 155 $('postalCode').value = ''; |
| 124 $('country').value = ''; | 156 $('country').value = ''; |
| 125 $('phone').value = ''; | 157 $('phone').value = ''; |
| 126 $('fax').value = ''; | 158 $('fax').value = ''; |
| 127 $('email').value = ''; | 159 $('email').value = ''; |
| 160 | |
| 161 var self = this; | |
| 162 self.countryChanged_(); | |
|
arv (Not doing code reviews)
2011/02/11 22:55:37
this.countryChanged_();
Ilya Sherman
2011/02/12 07:33:02
Done. When should "self" be used? I was mirrorin
arv (Not doing code reviews)
2011/02/14 18:36:41
Only when you need to capture a reference to this
| |
| 128 }, | 163 }, |
| 129 | 164 |
| 130 /** | 165 /** |
| 131 * Loads the address data from |address|, sets the input fields based on | 166 * Loads the address data from |address|, sets the input fields based on |
| 132 * this data and stores the GUID of the address. | 167 * this data and stores the GUID of the address. |
| 133 * @private | 168 * @private |
| 134 */ | 169 */ |
| 135 loadAddress_: function(address) { | 170 loadAddress_: function(address) { |
| 136 this.setInputFields_(address); | 171 this.setInputFields_(address); |
| 137 this.inputFieldChanged_(); | 172 this.inputFieldChanged_(); |
| 138 this.guid = address['guid']; | 173 this.guid = address['guid']; |
| 139 }, | 174 }, |
| 140 | 175 |
| 141 /** | 176 /** |
| 142 * Sets the value of each input field according to |address| | 177 * Sets the value of each input field according to |address| |
| 143 * @private | 178 * @private |
| 144 */ | 179 */ |
| 145 setInputFields_: function(address) { | 180 setInputFields_: function(address) { |
| 146 $('fullName').value = address['fullName']; | 181 $('fullName').value = address['fullName']; |
| 147 $('companyName').value = address['companyName']; | 182 $('companyName').value = address['companyName']; |
| 148 $('addrLine1').value = address['addrLine1']; | 183 $('addrLine1').value = address['addrLine1']; |
| 149 $('addrLine2').value = address['addrLine2']; | 184 $('addrLine2').value = address['addrLine2']; |
| 150 $('city').value = address['city']; | 185 $('city').value = address['city']; |
| 151 $('state').value = address['state']; | 186 $('state').value = address['state']; |
| 152 $('zipCode').value = address['zipCode']; | 187 $('postalCode').value = address['postalCode']; |
| 153 $('country').value = address['country']; | 188 $('country').value = address['country']; |
| 154 $('phone').value = address['phone']; | 189 $('phone').value = address['phone']; |
| 155 $('fax').value = address['fax']; | 190 $('fax').value = address['fax']; |
| 156 $('email').value = address['email']; | 191 $('email').value = address['email']; |
| 192 | |
| 193 var self = this; | |
| 194 self.countryChanged_(); | |
| 157 }, | 195 }, |
| 158 }; | 196 }; |
| 159 | 197 |
| 160 AutoFillEditAddressOverlay.clearInputFields = function() { | 198 AutoFillEditAddressOverlay.clearInputFields = function() { |
| 161 AutoFillEditAddressOverlay.getInstance().clearInputFields_(); | 199 AutoFillEditAddressOverlay.getInstance().clearInputFields_(); |
| 162 }; | 200 }; |
| 163 | 201 |
| 164 AutoFillEditAddressOverlay.loadAddress = function(address) { | 202 AutoFillEditAddressOverlay.loadAddress = function(address) { |
| 165 AutoFillEditAddressOverlay.getInstance().loadAddress_(address); | 203 AutoFillEditAddressOverlay.getInstance().loadAddress_(address); |
| 166 }; | 204 }; |
| 167 | 205 |
| 168 AutoFillEditAddressOverlay.setTitle = function(title) { | 206 AutoFillEditAddressOverlay.setTitle = function(title) { |
| 169 $('autoFillAddressTitle').textContent = title; | 207 $('autoFillAddressTitle').textContent = title; |
| 170 }; | 208 }; |
| 171 | 209 |
| 172 // Export | 210 // Export |
| 173 return { | 211 return { |
| 174 AutoFillEditAddressOverlay: AutoFillEditAddressOverlay | 212 AutoFillEditAddressOverlay: AutoFillEditAddressOverlay |
| 175 }; | 213 }; |
| 176 }); | 214 }); |
| OLD | NEW |