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 credit card. | 8 // The GUID of the loaded credit card. |
| 9 var guid_; | 9 var guid_; |
| 10 | 10 |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 39 OptionsPage.prototype.initializePage.call(this); | 39 OptionsPage.prototype.initializePage.call(this); |
| 40 | 40 |
| 41 var self = this; | 41 var self = this; |
| 42 $('autoFillEditCreditCardCancelButton').onclick = function(event) { | 42 $('autoFillEditCreditCardCancelButton').onclick = function(event) { |
| 43 self.dismissOverlay_(); | 43 self.dismissOverlay_(); |
| 44 } | 44 } |
| 45 $('autoFillEditCreditCardApplyButton').onclick = function(event) { | 45 $('autoFillEditCreditCardApplyButton').onclick = function(event) { |
| 46 self.saveCreditCard_(); | 46 self.saveCreditCard_(); |
| 47 self.dismissOverlay_(); | 47 self.dismissOverlay_(); |
| 48 } | 48 } |
| 49 $('creditCardNumber').onkeydown = this.onTextInput_.bind(this); | |
| 50 $('creditCardNumber').addEventListener('textInput', | |
| 51 this.onTextInput_.bind(this)); | |
| 52 | 49 |
| 53 self.guid_ = ''; | 50 self.guid_ = ''; |
| 54 self.storedCCNumber_ = ''; | 51 self.storedCCNumber_ = ''; |
| 55 self.hasEditedNumber_ = false; | 52 self.hasEditedNumber_ = false; |
| 56 self.clearInputFields_(); | 53 self.clearInputFields_(); |
| 57 self.connectInputEvents_(); | 54 self.connectInputEvents_(); |
| 58 self.setDefaultSelectOptions_(); | 55 self.setDefaultSelectOptions_(); |
| 59 }, | 56 }, |
| 60 | 57 |
| 61 /** | 58 /** |
| 62 * Handles the textInput and keydown events. | |
| 63 * @private | |
| 64 */ | |
| 65 onTextInput_: function(event) { | |
| 66 // For some reason, the textInput event doesn't consider | |
| 67 // backspace/deletion an input event, so we have to handle those here. | |
| 68 // 8 - backspace | |
| 69 // 46 - delete | |
| 70 if (event.type == 'keydown' && event.keyCode != '8' && | |
| 71 event.keyCode != '46') | |
| 72 return; | |
| 73 | |
| 74 // If the user hasn't edited the text yet, delete it all on edit. | |
| 75 if (!this.hasEditedNumber_ && | |
| 76 $('creditCardNumber').value != this.storedCCNumber_) { | |
| 77 this.hasEditedNumber_ = true; | |
| 78 $('creditCardNumber').value = ''; | |
| 79 } | |
| 80 }, | |
| 81 | |
| 82 /** | |
| 83 * Clears any uncommitted input, and dismisses the overlay. | 59 * Clears any uncommitted input, and dismisses the overlay. |
| 84 * @private | 60 * @private |
| 85 */ | 61 */ |
| 86 dismissOverlay_: function() { | 62 dismissOverlay_: function() { |
| 87 this.clearInputFields_(); | 63 this.clearInputFields_(); |
| 88 this.guid_ = ''; | 64 this.guid_ = ''; |
| 89 this.storedCCNumber_ = ''; | 65 this.storedCCNumber_ = ''; |
| 90 this.hasEditedNumber_ = false; | 66 this.hasEditedNumber_ = false; |
| 91 OptionsPage.clearOverlays(); | 67 OptionsPage.clearOverlays(); |
| 92 }, | 68 }, |
| (...skipping 18 matching lines...) Expand all Loading... | |
| 111 chrome.send('setCreditCard', creditCard); | 87 chrome.send('setCreditCard', creditCard); |
| 112 }, | 88 }, |
| 113 | 89 |
| 114 /** | 90 /** |
| 115 * Connects each input field to the inputFieldChanged_() method that enables | 91 * Connects each input field to the inputFieldChanged_() method that enables |
| 116 * or disables the 'Ok' button based on whether all the fields are empty or | 92 * or disables the 'Ok' button based on whether all the fields are empty or |
| 117 * not. | 93 * not. |
| 118 * @private | 94 * @private |
| 119 */ | 95 */ |
| 120 connectInputEvents_: function() { | 96 connectInputEvents_: function() { |
| 121 var self = this; | |
| 122 $('nameOnCard').oninput = $('creditCardNumber').oninput = | 97 $('nameOnCard').oninput = $('creditCardNumber').oninput = |
| 123 $('expirationMonth').onchange = $('expirationYear').onchange = | 98 $('expirationMonth').onchange = $('expirationYear').onchange = |
| 124 function(event) { | 99 this.inputFieldChanged_.bind(this); |
| 125 self.inputFieldChanged_(); | |
| 126 } | |
| 127 }, | 100 }, |
| 128 | 101 |
| 129 /** | 102 /** |
| 130 * Checks the values of each of the input fields and disables the 'Ok' | 103 * Checks the values of each of the input fields and disables the 'Ok' |
| 131 * button if all of the fields are empty. | 104 * button if all of the fields are empty. |
| 132 * @private | 105 * @private |
| 133 */ | 106 */ |
| 134 inputFieldChanged_: function() { | 107 inputFieldChanged_: function(event) { |
| 135 var disabled = !$('nameOnCard').value && !$('creditCardNumber').value; | 108 var disabled = !$('nameOnCard').value && !$('creditCardNumber').value; |
| 136 $('autoFillEditCreditCardApplyButton').disabled = disabled; | 109 $('autoFillEditCreditCardApplyButton').disabled = disabled; |
| 110 | |
| 111 // If the user hasn't edited the text yet, delete it all on edit. | |
| 112 if (!this.hasEditedNumber_ && | |
| 113 event && event.target == $('creditCardNumber') && | |
|
arv (Not doing code reviews)
2011/01/26 19:27:35
Why would event be undefined?
arv (Not doing code reviews)
2011/01/26 19:27:35
Please create a var for $('creditCardNumber') so t
James Hawkins
2011/01/26 19:38:30
This method is called on overlay load w/out a para
James Hawkins
2011/01/26 19:38:30
Done.
arv (Not doing code reviews)
2011/01/26 20:00:41
Please rename the param to opt_event and document
James Hawkins
2011/01/26 21:31:36
Done.
| |
| 114 $('creditCardNumber').value != this.storedCCNumber_) { | |
| 115 this.hasEditedNumber_ = true; | |
| 116 $('creditCardNumber').value = ''; | |
| 117 } | |
| 137 }, | 118 }, |
| 138 | 119 |
| 139 /** | 120 /** |
| 140 * Sets the default values of the options in the 'Expiration date' select | 121 * Sets the default values of the options in the 'Expiration date' select |
| 141 * controls. | 122 * controls. |
| 142 * @private | 123 * @private |
| 143 */ | 124 */ |
| 144 setDefaultSelectOptions_: function() { | 125 setDefaultSelectOptions_: function() { |
| 145 // Set the 'Expiration month' default options. | 126 // Set the 'Expiration month' default options. |
| 146 var expirationMonth = $('expirationMonth'); | 127 var expirationMonth = $('expirationMonth'); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 214 /** | 195 /** |
| 215 * Loads the credit card data from |creditCard|, sets the input fields based | 196 * Loads the credit card data from |creditCard|, sets the input fields based |
| 216 * on this data and stores the GUID of the credit card. | 197 * on this data and stores the GUID of the credit card. |
| 217 * @private | 198 * @private |
| 218 */ | 199 */ |
| 219 loadCreditCard_: function(creditCard) { | 200 loadCreditCard_: function(creditCard) { |
| 220 this.setInputFields_(creditCard); | 201 this.setInputFields_(creditCard); |
| 221 this.inputFieldChanged_(); | 202 this.inputFieldChanged_(); |
| 222 this.guid_ = creditCard['guid']; | 203 this.guid_ = creditCard['guid']; |
| 223 this.storedCCNumber_ = creditCard['creditCardNumber']; | 204 this.storedCCNumber_ = creditCard['creditCardNumber']; |
| 205 this.hasEditedNumber_ = $('creditCardNumber').value.length == 0; | |
| 224 }, | 206 }, |
| 225 }; | 207 }; |
| 226 | 208 |
| 227 AutoFillEditCreditCardOverlay.clearInputFields = function(title) { | 209 AutoFillEditCreditCardOverlay.clearInputFields = function(title) { |
| 228 AutoFillEditCreditCardOverlay.getInstance().clearInputFields_(); | 210 AutoFillEditCreditCardOverlay.getInstance().clearInputFields_(); |
| 229 }; | 211 }; |
| 230 | 212 |
| 231 AutoFillEditCreditCardOverlay.loadCreditCard = function(creditCard) { | 213 AutoFillEditCreditCardOverlay.loadCreditCard = function(creditCard) { |
| 232 AutoFillEditCreditCardOverlay.getInstance().loadCreditCard_(creditCard); | 214 AutoFillEditCreditCardOverlay.getInstance().loadCreditCard_(creditCard); |
| 233 }; | 215 }; |
| 234 | 216 |
| 235 AutoFillEditCreditCardOverlay.setTitle = function(title) { | 217 AutoFillEditCreditCardOverlay.setTitle = function(title) { |
| 236 $('autoFillCreditCardTitle').textContent = title; | 218 $('autoFillCreditCardTitle').textContent = title; |
| 237 }; | 219 }; |
| 238 | 220 |
| 239 // Export | 221 // Export |
| 240 return { | 222 return { |
| 241 AutoFillEditCreditCardOverlay: AutoFillEditCreditCardOverlay | 223 AutoFillEditCreditCardOverlay: AutoFillEditCreditCardOverlay |
| 242 }; | 224 }; |
| 243 | 225 |
| 244 }); | 226 }); |
| OLD | NEW |