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

Unified Diff: chrome/browser/resources/options2/autofill_edit_address_overlay.js

Issue 10809005: Options: Rename chrome/browser/resources/options2 -> chrome/browser/resources/options. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix. Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/options2/autofill_edit_address_overlay.js
diff --git a/chrome/browser/resources/options2/autofill_edit_address_overlay.js b/chrome/browser/resources/options2/autofill_edit_address_overlay.js
deleted file mode 100644
index 8d0059c952dd5363007ceb52741ae96d4d0663bf..0000000000000000000000000000000000000000
--- a/chrome/browser/resources/options2/autofill_edit_address_overlay.js
+++ /dev/null
@@ -1,325 +0,0 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-cr.define('options', function() {
- /** @const */ var OptionsPage = options.OptionsPage;
- /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel;
-
- // The GUID of the loaded address.
- var guid;
-
- /**
- * AutofillEditAddressOverlay class
- * Encapsulated handling of the 'Add Page' overlay page.
- * @class
- */
- function AutofillEditAddressOverlay() {
- OptionsPage.call(this, 'autofillEditAddress',
- loadTimeData.getString('autofillEditAddressTitle'),
- 'autofill-edit-address-overlay');
- }
-
- cr.addSingletonGetter(AutofillEditAddressOverlay);
-
- AutofillEditAddressOverlay.prototype = {
- __proto__: OptionsPage.prototype,
-
- /**
- * Initializes the page.
- */
- initializePage: function() {
- OptionsPage.prototype.initializePage.call(this);
-
- this.createMultiValueLists_();
-
- var self = this;
- $('autofill-edit-address-cancel-button').onclick = function(event) {
- self.dismissOverlay_();
- };
-
- // TODO(jhawkins): Investigate other possible solutions.
- $('autofill-edit-address-apply-button').onclick = function(event) {
- // Blur active element to ensure that pending changes are committed.
- if (document.activeElement)
- document.activeElement.blur();
- // Blurring is delayed for list elements. Queue save and close to
- // ensure that pending changes have been applied.
- setTimeout(function() {
- self.saveAddress_();
- self.dismissOverlay_();
- }, 0);
- };
-
- // Prevent 'blur' events on the OK and cancel buttons, which can trigger
- // insertion of new placeholder elements. The addition of placeholders
- // affects layout, which interferes with being able to click on the
- // buttons.
- $('autofill-edit-address-apply-button').onmousedown = function(event) {
- event.preventDefault();
- };
- $('autofill-edit-address-cancel-button').onmousedown = function(event) {
- event.preventDefault();
- };
-
- self.guid = '';
- self.populateCountryList_();
- self.clearInputFields_();
- self.connectInputEvents_();
- },
-
- /**
- * Creates, decorates and initializes the multi-value lists for full name,
- * phone, and email.
- * @private
- */
- createMultiValueLists_: function() {
- var list = $('full-name-list');
- options.autofillOptions.AutofillNameValuesList.decorate(list);
- list.autoExpands = true;
-
- list = $('phone-list');
- options.autofillOptions.AutofillPhoneValuesList.decorate(list);
- list.autoExpands = true;
-
- list = $('email-list');
- options.autofillOptions.AutofillValuesList.decorate(list);
- list.autoExpands = true;
- },
-
- /**
- * Updates the data model for the list named |listName| with the values from
- * |entries|.
- * @param {String} listName The id of the list.
- * @param {Array} entries The list of items to be added to the list.
- */
- setMultiValueList_: function(listName, entries) {
- // Add data entries.
- var list = $(listName);
-
- // Add special entry for adding new values.
- var augmentedList = entries.slice();
- augmentedList.push(null);
- list.dataModel = new ArrayDataModel(augmentedList);
-
- // Update the status of the 'OK' button.
- this.inputFieldChanged_();
-
- list.dataModel.addEventListener('splice',
- this.inputFieldChanged_.bind(this));
- list.dataModel.addEventListener('change',
- this.inputFieldChanged_.bind(this));
- },
-
- /**
- * Clears any uncommitted input, resets the stored GUID and dismisses the
- * overlay.
- * @private
- */
- dismissOverlay_: function() {
- this.clearInputFields_();
- this.guid = '';
- OptionsPage.closeOverlay();
- },
-
- /**
- * Aggregates the values in the input fields into an array and sends the
- * array to the Autofill handler.
- * @private
- */
- saveAddress_: function() {
- var address = new Array();
- address[0] = this.guid;
- var list = $('full-name-list');
- address[1] = list.dataModel.slice(0, list.dataModel.length - 1);
- address[2] = $('company-name').value;
- address[3] = $('addr-line-1').value;
- address[4] = $('addr-line-2').value;
- address[5] = $('city').value;
- address[6] = $('state').value;
- address[7] = $('postal-code').value;
- address[8] = $('country').value;
- list = $('phone-list');
- address[9] = list.dataModel.slice(0, list.dataModel.length - 1);
- list = $('email-list');
- address[10] = list.dataModel.slice(0, list.dataModel.length - 1);
-
- chrome.send('setAddress', address);
- },
-
- /**
- * Connects each input field to the inputFieldChanged_() method that enables
- * or disables the 'Ok' button based on whether all the fields are empty or
- * not.
- * @private
- */
- connectInputEvents_: function() {
- var self = this;
- $('company-name').oninput = $('addr-line-1').oninput =
- $('addr-line-2').oninput = $('city').oninput = $('state').oninput =
- $('postal-code').oninput = function(event) {
- self.inputFieldChanged_();
- };
-
- $('country').onchange = function(event) {
- self.countryChanged_();
- };
- },
-
- /**
- * Checks the values of each of the input fields and disables the 'Ok'
- * button if all of the fields are empty.
- * @private
- */
- inputFieldChanged_: function() {
- // Length of lists are tested for <= 1 due to the "add" placeholder item
- // in the list.
- var disabled =
- $('full-name-list').items.length <= 1 &&
- !$('company-name').value &&
- !$('addr-line-1').value && !$('addr-line-2').value &&
- !$('city').value && !$('state').value && !$('postal-code').value &&
- !$('country').value && $('phone-list').items.length <= 1 &&
- $('email-list').items.length <= 1;
- $('autofill-edit-address-apply-button').disabled = disabled;
- },
-
- /**
- * Updates the postal code and state field labels appropriately for the
- * selected country.
- * @private
- */
- countryChanged_: function() {
- var countryCode = $('country').value ||
- loadTimeData.getString('defaultCountryCode');
-
- var details = loadTimeData.getValue('autofillCountryData')[countryCode];
- var postal = $('postal-code-label');
- postal.textContent = details['postalCodeLabel'];
- $('state-label').textContent = details['stateLabel'];
-
- // Also update the 'Ok' button as needed.
- this.inputFieldChanged_();
- },
-
- /**
- * Populates the country <select> list.
- * @private
- */
- populateCountryList_: function() {
- var countryData = loadTimeData.getValue('autofillCountryData');
- var defaultCountryCode = loadTimeData.getString('defaultCountryCode');
-
- // Build an array of the country names and their corresponding country
- // codes, so that we can sort and insert them in order.
- var countries = [];
- for (var countryCode in countryData) {
- var country = {
- countryCode: countryCode,
- name: countryData[countryCode]['name']
- };
- countries.push(country);
- }
-
- // Sort the countries in alphabetical order by name.
- countries = countries.sort(function(a, b) {
- return a.name < b.name ? -1 : 1;
- });
-
- // Insert the empty and default countries at the beginning of the array.
- var emptyCountry = {
- countryCode: '',
- name: ''
- };
- var defaultCountry = {
- countryCode: defaultCountryCode,
- name: countryData[defaultCountryCode]['name']
- };
- var separator = {
- countryCode: '',
- name: '---',
- disabled: true
- };
- countries.unshift(emptyCountry, defaultCountry, separator);
-
- // Add the countries to the country <select> list.
- var countryList = $('country');
- for (var i = 0; i < countries.length; i++) {
- var country = new Option(countries[i].name, countries[i].countryCode);
- country.disabled = countries[i].disabled;
- countryList.appendChild(country);
- }
- },
-
- /**
- * Clears the value of each input field.
- * @private
- */
- clearInputFields_: function() {
- this.setMultiValueList_('full-name-list', []);
- $('company-name').value = '';
- $('addr-line-1').value = '';
- $('addr-line-2').value = '';
- $('city').value = '';
- $('state').value = '';
- $('postal-code').value = '';
- $('country').value = '';
- this.setMultiValueList_('phone-list', []);
- this.setMultiValueList_('email-list', []);
-
- this.countryChanged_();
- },
-
- /**
- * Loads the address data from |address|, sets the input fields based on
- * this data and stores the GUID of the address.
- * @private
- */
- loadAddress_: function(address) {
- this.setInputFields_(address);
- this.inputFieldChanged_();
- this.guid = address['guid'];
- },
-
- /**
- * Sets the value of each input field according to |address|
- * @private
- */
- setInputFields_: function(address) {
- this.setMultiValueList_('full-name-list', address['fullName']);
- $('company-name').value = address['companyName'];
- $('addr-line-1').value = address['addrLine1'];
- $('addr-line-2').value = address['addrLine2'];
- $('city').value = address['city'];
- $('state').value = address['state'];
- $('postal-code').value = address['postalCode'];
- $('country').value = address['country'];
- this.setMultiValueList_('phone-list', address['phone']);
- this.setMultiValueList_('email-list', address['email']);
-
- this.countryChanged_();
- },
- };
-
- AutofillEditAddressOverlay.clearInputFields = function() {
- AutofillEditAddressOverlay.getInstance().clearInputFields_();
- };
-
- AutofillEditAddressOverlay.loadAddress = function(address) {
- AutofillEditAddressOverlay.getInstance().loadAddress_(address);
- };
-
- AutofillEditAddressOverlay.setTitle = function(title) {
- $('autofill-address-title').textContent = title;
- };
-
- AutofillEditAddressOverlay.setValidatedPhoneNumbers = function(numbers) {
- AutofillEditAddressOverlay.getInstance().setMultiValueList_('phone-list',
- numbers);
- };
-
- // Export
- return {
- AutofillEditAddressOverlay: AutofillEditAddressOverlay
- };
-});

Powered by Google App Engine
This is Rietveld 408576698