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

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

Issue 6575012: More autofill overlay HTML cleanup (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: One selector per line Created 9 years, 10 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 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
11 // The CC number of the profile, used to check for changes to the input field. 11 // The CC number of the profile, used to check for changes to the input field.
12 var storedCCNumber_; 12 var storedCCNumber_;
13 13
14 // Set to true if the user has edited the CC number field. When saving the 14 // Set to true if the user has edited the CC number field. When saving the
15 // CC profile after editing, the stored CC number is saved if the input field 15 // CC profile after editing, the stored CC number is saved if the input field
16 // has not been modified. 16 // has not been modified.
17 var hasEditedNumber_; 17 var hasEditedNumber_;
18 18
19 /** 19 /**
20 * AutoFillEditCreditCardOverlay class 20 * AutoFillEditCreditCardOverlay class
21 * Encapsulated handling of the 'Add Page' overlay page. 21 * Encapsulated handling of the 'Add Page' overlay page.
22 * @class 22 * @class
23 */ 23 */
24 function AutoFillEditCreditCardOverlay() { 24 function AutoFillEditCreditCardOverlay() {
25 OptionsPage.call(this, 'autoFillEditCreditCardOverlay', 25 OptionsPage.call(this, 'autoFillEditCreditCardOverlay',
26 templateData.autoFillEditCreditCardTitle, 26 templateData.autoFillEditCreditCardTitle,
27 'autoFillEditCreditCardOverlay'); 27 'autofill-edit-credit-card-overlay');
28 } 28 }
29 29
30 cr.addSingletonGetter(AutoFillEditCreditCardOverlay); 30 cr.addSingletonGetter(AutoFillEditCreditCardOverlay);
31 31
32 AutoFillEditCreditCardOverlay.prototype = { 32 AutoFillEditCreditCardOverlay.prototype = {
33 __proto__: OptionsPage.prototype, 33 __proto__: OptionsPage.prototype,
34 34
35 /** 35 /**
36 * Initializes the page. 36 * Initializes the page.
37 */ 37 */
38 initializePage: function() { 38 initializePage: function() {
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 $('autofill-edit-credit-card-cancel-button').onclick = function(event) {
43 self.dismissOverlay_(); 43 self.dismissOverlay_();
44 } 44 }
45 $('autoFillEditCreditCardApplyButton').onclick = function(event) { 45 $('autofill-edit-credit-card-apply-button').onclick = function(event) {
46 self.saveCreditCard_(); 46 self.saveCreditCard_();
47 self.dismissOverlay_(); 47 self.dismissOverlay_();
48 } 48 }
49 49
50 self.guid_ = ''; 50 self.guid_ = '';
51 self.storedCCNumber_ = ''; 51 self.storedCCNumber_ = '';
52 self.hasEditedNumber_ = false; 52 self.hasEditedNumber_ = false;
53 self.clearInputFields_(); 53 self.clearInputFields_();
54 self.connectInputEvents_(); 54 self.connectInputEvents_();
55 self.setDefaultSelectOptions_(); 55 self.setDefaultSelectOptions_();
(...skipping 12 matching lines...) Expand all
68 }, 68 },
69 69
70 /** 70 /**
71 * Aggregates the values in the input fields into an array and sends the 71 * Aggregates the values in the input fields into an array and sends the
72 * array to the AutoFill handler. 72 * array to the AutoFill handler.
73 * @private 73 * @private
74 */ 74 */
75 saveCreditCard_: function() { 75 saveCreditCard_: function() {
76 var creditCard = new Array(5); 76 var creditCard = new Array(5);
77 creditCard[0] = this.guid_; 77 creditCard[0] = this.guid_;
78 creditCard[1] = $('nameOnCard').value; 78 creditCard[1] = $('name-on-card').value;
79 creditCard[3] = $('expirationMonth').value; 79 creditCard[3] = $('expiration-month').value;
80 creditCard[4] = $('expirationYear').value; 80 creditCard[4] = $('expiration-year').value;
81 81
82 if (this.hasEditedNumber_) 82 if (this.hasEditedNumber_)
83 creditCard[2] = $('creditCardNumber').value; 83 creditCard[2] = $('credit-card-number').value;
84 else 84 else
85 creditCard[2] = this.storedCCNumber_; 85 creditCard[2] = this.storedCCNumber_;
86 86
87 chrome.send('setCreditCard', creditCard); 87 chrome.send('setCreditCard', creditCard);
88 }, 88 },
89 89
90 /** 90 /**
91 * Connects each input field to the inputFieldChanged_() method that enables 91 * Connects each input field to the inputFieldChanged_() method that enables
92 * 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
93 * not. 93 * not.
94 * @private 94 * @private
95 */ 95 */
96 connectInputEvents_: function() { 96 connectInputEvents_: function() {
97 $('nameOnCard').oninput = $('creditCardNumber').oninput = 97 $('name-on-card').oninput = $('credit-card-number').oninput =
98 $('expirationMonth').onchange = $('expirationYear').onchange = 98 $('expiration-month').onchange = $('expiration-year').onchange =
99 this.inputFieldChanged_.bind(this); 99 this.inputFieldChanged_.bind(this);
100 }, 100 },
101 101
102 /** 102 /**
103 * 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'
104 * button if all of the fields are empty. 104 * button if all of the fields are empty.
105 * @param {Event} opt_event Optional data for the 'input' event. 105 * @param {Event} opt_event Optional data for the 'input' event.
106 * @private 106 * @private
107 */ 107 */
108 inputFieldChanged_: function(opt_event) { 108 inputFieldChanged_: function(opt_event) {
109 var ccNumber = $('creditCardNumber'); 109 var ccNumber = $('credit-card-number');
110 var disabled = !$('nameOnCard').value && !ccNumber.value; 110 var disabled = !$('name-on-card').value && !ccNumber.value;
111 $('autoFillEditCreditCardApplyButton').disabled = disabled; 111 $('autofill-edit-credit-card-apply-button').disabled = disabled;
112 112
113 if (opt_event && opt_event.target == ccNumber) { 113 if (opt_event && opt_event.target == ccNumber) {
114 // If the user hasn't edited the text yet, delete it all on edit. 114 // If the user hasn't edited the text yet, delete it all on edit.
115 if (!this.hasEditedNumber_ && this.storedCCNumber_.length && 115 if (!this.hasEditedNumber_ && this.storedCCNumber_.length &&
116 ccNumber.value != this.storedCCNumber_) { 116 ccNumber.value != this.storedCCNumber_) {
117 ccNumber.value = ''; 117 ccNumber.value = '';
118 } 118 }
119 119
120 this.hasEditedNumber_ = true; 120 this.hasEditedNumber_ = true;
121 } 121 }
122 }, 122 },
123 123
124 /** 124 /**
125 * Sets the default values of the options in the 'Expiration date' select 125 * Sets the default values of the options in the 'Expiration date' select
126 * controls. 126 * controls.
127 * @private 127 * @private
128 */ 128 */
129 setDefaultSelectOptions_: function() { 129 setDefaultSelectOptions_: function() {
130 // Set the 'Expiration month' default options. 130 // Set the 'Expiration month' default options.
131 var expirationMonth = $('expirationMonth'); 131 var expirationMonth = $('expiration-month');
132 expirationMonth.options.length = 0; 132 expirationMonth.options.length = 0;
133 for (var i = 1; i <= 12; ++i) { 133 for (var i = 1; i <= 12; ++i) {
134 var text; 134 var text;
135 if (i < 10) 135 if (i < 10)
136 text = '0' + i; 136 text = '0' + i;
137 else 137 else
138 text = i; 138 text = i;
139 139
140 var option = document.createElement('option'); 140 var option = document.createElement('option');
141 option.text = text; 141 option.text = text;
142 option.value = text; 142 option.value = text;
143 expirationMonth.add(option, null); 143 expirationMonth.add(option, null);
144 } 144 }
145 145
146 // Set the 'Expiration year' default options. 146 // Set the 'Expiration year' default options.
147 var expirationYear = $('expirationYear'); 147 var expirationYear = $('expiration-year');
148 expirationYear.options.length = 0; 148 expirationYear.options.length = 0;
149 149
150 var date = new Date(); 150 var date = new Date();
151 var year = parseInt(date.getFullYear()); 151 var year = parseInt(date.getFullYear());
152 for (var i = 0; i < 10; ++i) { 152 for (var i = 0; i < 10; ++i) {
153 var text = year + i; 153 var text = year + i;
154 var option = document.createElement('option'); 154 var option = document.createElement('option');
155 option.text = text; 155 option.text = text;
156 option.value = text; 156 option.value = text;
157 expirationYear.add(option, null); 157 expirationYear.add(option, null);
158 } 158 }
159 }, 159 },
160 160
161 /** 161 /**
162 * Clears the value of each input field. 162 * Clears the value of each input field.
163 * @private 163 * @private
164 */ 164 */
165 clearInputFields_: function() { 165 clearInputFields_: function() {
166 $('nameOnCard').value = ''; 166 $('name-on-card').value = '';
167 $('creditCardNumber').value = ''; 167 $('credit-card-number').value = '';
168 $('expirationMonth').selectedIndex = 0; 168 $('expiration-month').selectedIndex = 0;
169 $('expirationYear').selectedIndex = 0; 169 $('expiration-year').selectedIndex = 0;
170 }, 170 },
171 171
172 /** 172 /**
173 * Sets the value of each input field according to |creditCard| 173 * Sets the value of each input field according to |creditCard|
174 * @private 174 * @private
175 */ 175 */
176 setInputFields_: function(creditCard) { 176 setInputFields_: function(creditCard) {
177 $('nameOnCard').value = creditCard['nameOnCard']; 177 $('name-on-card').value = creditCard['nameOnCard'];
178 $('creditCardNumber').value = creditCard['obfuscatedCardNumber']; 178 $('credit-card-number').value = creditCard['obfuscatedCardNumber'];
179 179
180 // The options for the year select control may be out-dated at this point, 180 // The options for the year select control may be out-dated at this point,
181 // e.g. the user opened the options page before midnight on New Year's Eve 181 // e.g. the user opened the options page before midnight on New Year's Eve
182 // and then loaded a credit card profile to edit in the new year, so 182 // and then loaded a credit card profile to edit in the new year, so
183 // reload the select options just to be safe. 183 // reload the select options just to be safe.
184 this.setDefaultSelectOptions_(); 184 this.setDefaultSelectOptions_();
185 185
186 var idx = parseInt(creditCard['expirationMonth'], 10); 186 var idx = parseInt(creditCard['expirationMonth'], 10);
187 $('expirationMonth').selectedIndex = idx - 1; 187 $('expiration-month').selectedIndex = idx - 1;
188 188
189 expYear = creditCard['expirationYear']; 189 expYear = creditCard['expirationYear'];
190 var date = new Date(); 190 var date = new Date();
191 var year = parseInt(date.getFullYear()); 191 var year = parseInt(date.getFullYear());
192 for (var i = 0; i < 10; ++i) { 192 for (var i = 0; i < 10; ++i) {
193 var text = year + i; 193 var text = year + i;
194 if (expYear == String(text)) 194 if (expYear == String(text))
195 $('expirationYear').selectedIndex = i; 195 $('expiration-year').selectedIndex = i;
196 } 196 }
197 }, 197 },
198 198
199 /** 199 /**
200 * Loads the credit card data from |creditCard|, sets the input fields based 200 * Loads the credit card data from |creditCard|, sets the input fields based
201 * on this data and stores the GUID of the credit card. 201 * on this data and stores the GUID of the credit card.
202 * @private 202 * @private
203 */ 203 */
204 loadCreditCard_: function(creditCard) { 204 loadCreditCard_: function(creditCard) {
205 this.setInputFields_(creditCard); 205 this.setInputFields_(creditCard);
206 this.inputFieldChanged_(); 206 this.inputFieldChanged_();
207 this.guid_ = creditCard['guid']; 207 this.guid_ = creditCard['guid'];
208 this.storedCCNumber_ = creditCard['creditCardNumber']; 208 this.storedCCNumber_ = creditCard['creditCardNumber'];
209 }, 209 },
210 }; 210 };
211 211
212 AutoFillEditCreditCardOverlay.clearInputFields = function(title) { 212 AutoFillEditCreditCardOverlay.clearInputFields = function(title) {
213 AutoFillEditCreditCardOverlay.getInstance().clearInputFields_(); 213 AutoFillEditCreditCardOverlay.getInstance().clearInputFields_();
214 }; 214 };
215 215
216 AutoFillEditCreditCardOverlay.loadCreditCard = function(creditCard) { 216 AutoFillEditCreditCardOverlay.loadCreditCard = function(creditCard) {
217 AutoFillEditCreditCardOverlay.getInstance().loadCreditCard_(creditCard); 217 AutoFillEditCreditCardOverlay.getInstance().loadCreditCard_(creditCard);
218 }; 218 };
219 219
220 AutoFillEditCreditCardOverlay.setTitle = function(title) { 220 AutoFillEditCreditCardOverlay.setTitle = function(title) {
221 $('autoFillCreditCardTitle').textContent = title; 221 $('autofill-credit-card-title').textContent = title;
222 }; 222 };
223 223
224 // Export 224 // Export
225 return { 225 return {
226 AutoFillEditCreditCardOverlay: AutoFillEditCreditCardOverlay 226 AutoFillEditCreditCardOverlay: AutoFillEditCreditCardOverlay
227 }; 227 };
228 }); 228 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698