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

Side by Side Diff: chrome/browser/dom_ui/options/autofill_options_handler.cc

Issue 6484022: Autofill i18n: Set postal code and state field labels based on the selected country. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Still needs tests 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 #include "chrome/browser/dom_ui/options/autofill_options_handler.h" 5 #include "chrome/browser/dom_ui/options/autofill_options_handler.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/string16.h" 10 #include "base/string16.h"
11 #include "base/string_number_conversions.h" 11 #include "base/string_number_conversions.h"
12 #include "base/utf_string_conversions.h" 12 #include "base/utf_string_conversions.h"
13 #include "base/values.h" 13 #include "base/values.h"
14 #include "chrome/browser/autofill/autofill_country.h"
14 #include "chrome/browser/autofill/autofill_profile.h" 15 #include "chrome/browser/autofill/autofill_profile.h"
15 #include "chrome/browser/autofill/credit_card.h" 16 #include "chrome/browser/autofill/credit_card.h"
16 #include "chrome/browser/dom_ui/web_ui_util.h" 17 #include "chrome/browser/dom_ui/web_ui_util.h"
17 #include "chrome/browser/profiles/profile.h" 18 #include "chrome/browser/profiles/profile.h"
18 #include "chrome/common/guid.h" 19 #include "chrome/common/guid.h"
19 #include "grit/generated_resources.h" 20 #include "grit/generated_resources.h"
20 #include "grit/webkit_resources.h" 21 #include "grit/webkit_resources.h"
21 #include "ui/base/l10n/l10n_util.h" 22 #include "ui/base/l10n/l10n_util.h"
22 23
23 namespace { 24 namespace {
(...skipping 15 matching lines...) Expand all
39 return IDR_AUTOFILL_CC_MASTERCARD; 40 return IDR_AUTOFILL_CC_MASTERCARD;
40 else if (type == kSoloCard) 41 else if (type == kSoloCard)
41 return IDR_AUTOFILL_CC_SOLO; 42 return IDR_AUTOFILL_CC_SOLO;
42 else if (type == kVisaCard) 43 else if (type == kVisaCard)
43 return IDR_AUTOFILL_CC_VISA; 44 return IDR_AUTOFILL_CC_VISA;
44 45
45 NOTREACHED(); 46 NOTREACHED();
46 return 0; 47 return 0;
47 } 48 }
48 49
50 // Returns a dictionary that maps country codes to data for the country.
51 DictionaryValue* GetCountryData() {
52 std::vector<AutoFillCountry> countries;
53 AutoFillCountry::GetAvailableCountries(&countries);
54
55 DictionaryValue* country_data = new DictionaryValue();
56 for (size_t i = 0; i < countries.size(); ++i) {
57 const AutoFillCountry& country = countries[i];
58
59 DictionaryValue* details = new DictionaryValue();
60 details->SetString("name", country.name());
61 details->SetString("postalCodeLabel", country.postal_code_label());
62 details->SetString("stateLabel", country.state_label());
63
64 country_data->Set(country.country_code(), details);
65 }
66
67 return country_data;
68 }
69
49 } // namespace 70 } // namespace
50 71
51 AutoFillOptionsHandler::AutoFillOptionsHandler() 72 AutoFillOptionsHandler::AutoFillOptionsHandler()
52 : personal_data_(NULL) { 73 : personal_data_(NULL) {
53 } 74 }
54 75
55 AutoFillOptionsHandler::~AutoFillOptionsHandler() { 76 AutoFillOptionsHandler::~AutoFillOptionsHandler() {
56 if (personal_data_) 77 if (personal_data_)
57 personal_data_->RemoveObserver(this); 78 personal_data_->RemoveObserver(this);
58 } 79 }
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
130 void AutoFillOptionsHandler::OnPersonalDataChanged() { 151 void AutoFillOptionsHandler::OnPersonalDataChanged() {
131 LoadAutoFillData(); 152 LoadAutoFillData();
132 } 153 }
133 154
134 void AutoFillOptionsHandler::SetAddressOverlayStrings( 155 void AutoFillOptionsHandler::SetAddressOverlayStrings(
135 DictionaryValue* localized_strings) { 156 DictionaryValue* localized_strings) {
136 localized_strings->SetString("autoFillEditAddressTitle", 157 localized_strings->SetString("autoFillEditAddressTitle",
137 l10n_util::GetStringUTF16(IDS_AUTOFILL_EDIT_ADDRESS_CAPTION)); 158 l10n_util::GetStringUTF16(IDS_AUTOFILL_EDIT_ADDRESS_CAPTION));
138 localized_strings->SetString("fullNameLabel", 159 localized_strings->SetString("fullNameLabel",
139 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_FULL_NAME)); 160 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_FULL_NAME));
161 localized_strings->SetString("country-label",
dhollowa 2011/02/17 00:55:28 As discussed... country should follow other addres
Ilya Sherman 2011/02/17 23:09:11 Done.
162 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_COUNTRY));
140 localized_strings->SetString("companyNameLabel", 163 localized_strings->SetString("companyNameLabel",
141 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_COMPANY_NAME)); 164 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_COMPANY_NAME));
142 localized_strings->SetString("addrLine1Label", 165 localized_strings->SetString("addrLine1Label",
143 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADDRESS_LINE_1)); 166 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADDRESS_LINE_1));
144 localized_strings->SetString("addrLine2Label", 167 localized_strings->SetString("addrLine2Label",
145 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADDRESS_LINE_2)); 168 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ADDRESS_LINE_2));
146 localized_strings->SetString("cityLabel", 169 localized_strings->SetString("cityLabel",
147 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_CITY)); 170 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_CITY));
148 localized_strings->SetString("stateLabel",
149 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_STATE));
150 localized_strings->SetString("zipCodeLabel",
151 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_ZIP_CODE));
152 localized_strings->SetString("countryLabel",
153 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_COUNTRY));
154 localized_strings->SetString("countryLabel",
155 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_COUNTRY));
156 localized_strings->SetString("phoneLabel", 171 localized_strings->SetString("phoneLabel",
157 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_PHONE)); 172 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_PHONE));
158 localized_strings->SetString("faxLabel", 173 localized_strings->SetString("faxLabel",
159 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_FAX)); 174 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_FAX));
160 localized_strings->SetString("emailLabel", 175 localized_strings->SetString("emailLabel",
161 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_EMAIL)); 176 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_EMAIL));
177
178 std::string default_country_code = AutoFillCountry::DefaultCountryCode();
179 localized_strings->SetString("defaultCountryCode", default_country_code);
180 localized_strings->Set("autofillCountryData", GetCountryData());
162 } 181 }
163 182
164 void AutoFillOptionsHandler::SetCreditCardOverlayStrings( 183 void AutoFillOptionsHandler::SetCreditCardOverlayStrings(
165 DictionaryValue* localized_strings) { 184 DictionaryValue* localized_strings) {
166 localized_strings->SetString("autoFillEditCreditCardTitle", 185 localized_strings->SetString("autoFillEditCreditCardTitle",
167 l10n_util::GetStringUTF16(IDS_AUTOFILL_EDIT_CREDITCARD_CAPTION)); 186 l10n_util::GetStringUTF16(IDS_AUTOFILL_EDIT_CREDITCARD_CAPTION));
168 localized_strings->SetString("nameOnCardLabel", 187 localized_strings->SetString("nameOnCardLabel",
169 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_NAME_ON_CARD)); 188 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_NAME_ON_CARD));
170 localized_strings->SetString("creditCardNumberLabel", 189 localized_strings->SetString("creditCardNumberLabel",
171 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_CREDIT_CARD_NUMBER)); 190 l10n_util::GetStringUTF16(IDS_AUTOFILL_DIALOG_CREDIT_CARD_NUMBER));
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 // the list is not updated until the model tells the list an item has been 266 // the list is not updated until the model tells the list an item has been
248 // removed). This will activate the editor for a profile that has been 267 // removed). This will activate the editor for a profile that has been
249 // removed. Do nothing in that case. 268 // removed. Do nothing in that case.
250 return; 269 return;
251 } 270 }
252 271
253 DictionaryValue address; 272 DictionaryValue address;
254 address.SetString("guid", profile->guid()); 273 address.SetString("guid", profile->guid());
255 address.SetString("fullName", 274 address.SetString("fullName",
256 profile->GetFieldText(AutoFillType(NAME_FULL))); 275 profile->GetFieldText(AutoFillType(NAME_FULL)));
276 address.SetString("country",
277 profile->CountryCode());
257 address.SetString("companyName", 278 address.SetString("companyName",
258 profile->GetFieldText(AutoFillType(COMPANY_NAME))); 279 profile->GetFieldText(AutoFillType(COMPANY_NAME)));
259 address.SetString("addrLine1", 280 address.SetString("addrLine1",
260 profile->GetFieldText(AutoFillType(ADDRESS_HOME_LINE1))); 281 profile->GetFieldText(AutoFillType(ADDRESS_HOME_LINE1)));
261 address.SetString("addrLine2", 282 address.SetString("addrLine2",
262 profile->GetFieldText(AutoFillType(ADDRESS_HOME_LINE2))); 283 profile->GetFieldText(AutoFillType(ADDRESS_HOME_LINE2)));
263 address.SetString("city", 284 address.SetString("city",
264 profile->GetFieldText(AutoFillType(ADDRESS_HOME_CITY))); 285 profile->GetFieldText(AutoFillType(ADDRESS_HOME_CITY)));
265 address.SetString("state", 286 address.SetString("state",
266 profile->GetFieldText(AutoFillType(ADDRESS_HOME_STATE))); 287 profile->GetFieldText(AutoFillType(ADDRESS_HOME_STATE)));
267 address.SetString("zipCode", 288 address.SetString("postal-code",
268 profile->GetFieldText(AutoFillType(ADDRESS_HOME_ZIP))); 289 profile->GetFieldText(AutoFillType(ADDRESS_HOME_ZIP)));
269 address.SetString("country",
270 profile->GetFieldText(AutoFillType(ADDRESS_HOME_COUNTRY)));
271 address.SetString( 290 address.SetString(
272 "phone", 291 "phone",
273 profile->GetFieldText(AutoFillType(PHONE_HOME_WHOLE_NUMBER))); 292 profile->GetFieldText(AutoFillType(PHONE_HOME_WHOLE_NUMBER)));
274 address.SetString( 293 address.SetString(
275 "fax", 294 "fax",
276 profile->GetFieldText(AutoFillType(PHONE_FAX_WHOLE_NUMBER))); 295 profile->GetFieldText(AutoFillType(PHONE_FAX_WHOLE_NUMBER)));
277 address.SetString("email", 296 address.SetString("email",
278 profile->GetFieldText(AutoFillType(EMAIL_ADDRESS))); 297 profile->GetFieldText(AutoFillType(EMAIL_ADDRESS)));
279 298
280 web_ui_->CallJavascriptFunction(L"AutoFillOptions.editAddress", address); 299 web_ui_->CallJavascriptFunction(L"AutoFillOptions.editAddress", address);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 return; 344 return;
326 345
327 std::string guid; 346 std::string guid;
328 if (!args->GetString(0, &guid)) { 347 if (!args->GetString(0, &guid)) {
329 NOTREACHED(); 348 NOTREACHED();
330 return; 349 return;
331 } 350 }
332 351
333 AutoFillProfile profile(guid); 352 AutoFillProfile profile(guid);
334 353
354 std::string country_code;
335 string16 value; 355 string16 value;
336 if (args->GetString(1, &value)) 356 if (args->GetString(1, &value))
337 profile.SetInfo(AutoFillType(NAME_FULL), value); 357 profile.SetInfo(AutoFillType(NAME_FULL), value);
338 if (args->GetString(2, &value)) 358 if (args->GetString(2, &country_code))
359 profile.SetCountryCode(country_code);
360 if (args->GetString(3, &value))
339 profile.SetInfo(AutoFillType(COMPANY_NAME), value); 361 profile.SetInfo(AutoFillType(COMPANY_NAME), value);
340 if (args->GetString(3, &value)) 362 if (args->GetString(4, &value))
341 profile.SetInfo(AutoFillType(ADDRESS_HOME_LINE1), value); 363 profile.SetInfo(AutoFillType(ADDRESS_HOME_LINE1), value);
342 if (args->GetString(4, &value)) 364 if (args->GetString(5, &value))
343 profile.SetInfo(AutoFillType(ADDRESS_HOME_LINE2), value); 365 profile.SetInfo(AutoFillType(ADDRESS_HOME_LINE2), value);
344 if (args->GetString(5, &value)) 366 if (args->GetString(6, &value))
345 profile.SetInfo(AutoFillType(ADDRESS_HOME_CITY), value); 367 profile.SetInfo(AutoFillType(ADDRESS_HOME_CITY), value);
346 if (args->GetString(6, &value)) 368 if (args->GetString(7, &value))
347 profile.SetInfo(AutoFillType(ADDRESS_HOME_STATE), value); 369 profile.SetInfo(AutoFillType(ADDRESS_HOME_STATE), value);
348 if (args->GetString(7, &value)) 370 if (args->GetString(8, &value))
349 profile.SetInfo(AutoFillType(ADDRESS_HOME_ZIP), value); 371 profile.SetInfo(AutoFillType(ADDRESS_HOME_ZIP), value);
350 if (args->GetString(8, &value))
351 profile.SetInfo(AutoFillType(ADDRESS_HOME_COUNTRY), value);
352 if (args->GetString(9, &value)) 372 if (args->GetString(9, &value))
353 profile.SetInfo(AutoFillType(PHONE_HOME_WHOLE_NUMBER), value); 373 profile.SetInfo(AutoFillType(PHONE_HOME_WHOLE_NUMBER), value);
354 if (args->GetString(10, &value)) 374 if (args->GetString(10, &value))
355 profile.SetInfo(AutoFillType(PHONE_FAX_WHOLE_NUMBER), value); 375 profile.SetInfo(AutoFillType(PHONE_FAX_WHOLE_NUMBER), value);
356 if (args->GetString(11, &value)) 376 if (args->GetString(11, &value))
357 profile.SetInfo(AutoFillType(EMAIL_ADDRESS), value); 377 profile.SetInfo(AutoFillType(EMAIL_ADDRESS), value);
358 378
359 if (!guid::IsValidGUID(profile.guid())) { 379 if (!guid::IsValidGUID(profile.guid())) {
360 profile.set_guid(guid::GenerateGUID()); 380 profile.set_guid(guid::GenerateGUID());
361 personal_data_->AddProfile(profile); 381 personal_data_->AddProfile(profile);
(...skipping 24 matching lines...) Expand all
386 if (args->GetString(4, &value)) 406 if (args->GetString(4, &value))
387 credit_card.SetInfo(AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), value); 407 credit_card.SetInfo(AutoFillType(CREDIT_CARD_EXP_4_DIGIT_YEAR), value);
388 408
389 if (!guid::IsValidGUID(credit_card.guid())) { 409 if (!guid::IsValidGUID(credit_card.guid())) {
390 credit_card.set_guid(guid::GenerateGUID()); 410 credit_card.set_guid(guid::GenerateGUID());
391 personal_data_->AddCreditCard(credit_card); 411 personal_data_->AddCreditCard(credit_card);
392 } else { 412 } else {
393 personal_data_->UpdateCreditCard(credit_card); 413 personal_data_->UpdateCreditCard(credit_card);
394 } 414 }
395 } 415 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698