| Index: chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.js
|
| diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.js b/chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.js
|
| deleted file mode 100644
|
| index 94556a785cec233c14261e9530d7ebc675205eef..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.js
|
| +++ /dev/null
|
| @@ -1,373 +0,0 @@
|
| -// Copyright 2016 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.
|
| -
|
| -/**
|
| - * @fileoverview 'password-edit-dialog' is the dialog that allows showing a
|
| - * saved password.
|
| - */
|
| -(function() {
|
| -'use strict';
|
| -
|
| -Polymer({
|
| - is: 'settings-address-edit-dialog',
|
| -
|
| - behaviors: [
|
| - I18nBehavior,
|
| - ],
|
| -
|
| - properties: {
|
| - /** @private {!chrome.autofillPrivate.AddressEntry} */
|
| - address_: Object,
|
| -
|
| - /** @private */
|
| - title_: String,
|
| -
|
| - /** @private {!Array<!chrome.autofillPrivate.CountryEntry>} */
|
| - countries_: Array,
|
| -
|
| - /** @private {string|undefined} */
|
| - countryCode_: {
|
| - type: String,
|
| - observer: 'onUpdateCountryCode_',
|
| - },
|
| -
|
| - /** @private {!Array<!Array<!settings.address.AddressComponentUI>>} */
|
| - addressWrapper_: Object,
|
| -
|
| - /** @private */
|
| - phoneNumber_: {
|
| - type: String,
|
| - observer: 'onUpdatePhoneNumber_',
|
| - },
|
| -
|
| - /** @private */
|
| - email_: {
|
| - type: String,
|
| - observer: 'onUpdateEmail_',
|
| - },
|
| -
|
| - /** @private */
|
| - canSave_: Boolean,
|
| - },
|
| -
|
| - /** @override */
|
| - ready: function() {
|
| - this.countryInfo =
|
| - settings.address.CountryDetailManagerImpl.getInstance();
|
| -
|
| - this.countryInfo.getCountryList().then(function(countryList) {
|
| - this.countries_ = countryList;
|
| - }.bind(this));
|
| - },
|
| -
|
| - /**
|
| - * Opens the dialog to edit |address|
|
| - * @param {!chrome.autofillPrivate.AddressEntry} address
|
| - */
|
| - open: function(address) {
|
| - this.title_ =
|
| - this.i18n(address.guid ? 'editAddressTitle' : 'addAddressTitle');
|
| - this.address_ = address;
|
| -
|
| - // |phoneNumbers| and |emailAddresses| are a single item array.
|
| - // See crbug.com/497934 for details.
|
| - this.phoneNumber_ = address.phoneNumbers ? address.phoneNumbers[0] : '';
|
| - this.email_ = address.emailAddresses ? address.emailAddresses[0] : '';
|
| -
|
| - if (this.countryCode_ == address.countryCode)
|
| - this.updateAddressWrapper_();
|
| - else
|
| - this.countryCode_ = address.countryCode; // Updates the address wrapper.
|
| -
|
| - // Open is called on the dialog after the address wrapper has been updated.
|
| - },
|
| -
|
| - /**
|
| - * Returns a class to denote how long this entry is.
|
| - * @param {settings.address.AddressComponentUI} setting
|
| - * @return {string}
|
| - */
|
| - long_: function(setting) {
|
| - return setting.component.isLongField ? 'long' : '';
|
| - },
|
| -
|
| - /**
|
| - * Updates the wrapper that represents this address in the country's format.
|
| - * @private
|
| - */
|
| - updateAddressWrapper_: function() {
|
| - var self = this;
|
| -
|
| - // Default to the last country used if no country code is provided.
|
| - var countryCode = self.countryCode_ || self.countries_[0].countryCode;
|
| - self.countryInfo.getAddressFormat(countryCode).then(function(format) {
|
| - /** @type {!Array<!Array<!settings.address.AddressComponentUI>>} */
|
| - var wrapper = [];
|
| - format.components.forEach(function(component) {
|
| - /** @type {!Array<!settings.address.AddressComponentUI>} */
|
| - var components = [];
|
| - wrapper.push(components);
|
| -
|
| - component.row.forEach(function(component) {
|
| - components.push(new settings.address.AddressComponentUI(
|
| - self.address_, component));
|
| - });
|
| - });
|
| - self.addressWrapper_ = wrapper;
|
| -
|
| - // Flush dom before resize and savability updates.
|
| - Polymer.dom.flush();
|
| -
|
| -/**
|
| - * TODO(hcarmona): Fix closure compiler to better understand |SettingsDialog|.
|
| - * @suppress {missingProperties}
|
| - */
|
| -(function() {
|
| - self.$.dialog.notifyResize();
|
| -
|
| - self.updateCanSave_();
|
| -
|
| - self.fire('on-update-address-wrapper'); // For easier testing.
|
| -
|
| - if (!self.$.dialog.opened)
|
| - self.$.dialog.open();
|
| -})();
|
| - });
|
| - },
|
| -
|
| - updateCanSave_: function() {
|
| - var inputs = this.$.dialog.querySelectorAll('.address-column');
|
| -
|
| - for (var i = 0; i < inputs.length; ++i) {
|
| - if (inputs[i].value) {
|
| - this.canSave_ = true;
|
| - this.fire('on-update-can-save'); // For easier testing.
|
| - return;
|
| - }
|
| - }
|
| -
|
| - this.canSave_ = false;
|
| - this.fire('on-update-can-save'); // For easier testing.
|
| - },
|
| -
|
| - /**
|
| - * @param {!chrome.autofillPrivate.CountryEntry} country
|
| - * @return {string}
|
| - * @private
|
| - */
|
| - getCode_: function(country) {
|
| - return country.countryCode || 'SPACER';
|
| - },
|
| -
|
| - /**
|
| - * @param {!chrome.autofillPrivate.CountryEntry} country
|
| - * @return {string}
|
| - * @private
|
| - */
|
| - getName_: function(country) {
|
| - return country.name || '------';
|
| - },
|
| -
|
| - /**
|
| - * @param {!chrome.autofillPrivate.CountryEntry} country
|
| - * @return {boolean}
|
| - * @private
|
| - */
|
| - isDivision_: function(country) {
|
| - return !country.countryCode;
|
| - },
|
| -
|
| - /**
|
| - * Handler for tapping the save button.
|
| - * @private
|
| - */
|
| - onSaveButtonTap_: function() {
|
| - // Set a default country if none is set.
|
| - if (!this.address_.countryCode)
|
| - this.address_.countryCode = this.countries_[0].countryCode;
|
| -
|
| - this.fire('save-address', this.address_);
|
| - this.$.dialog.close();
|
| - },
|
| -
|
| - /**
|
| - * Syncs the country code back to the address and rebuilds the address wrapper
|
| - * for the new location.
|
| - * @param {string|undefined} countryCode
|
| - * @private
|
| - */
|
| - onUpdateCountryCode_: function(countryCode) {
|
| - this.address_.countryCode = countryCode;
|
| - this.updateAddressWrapper_();
|
| - },
|
| -
|
| - /**
|
| - * Syncs the phone number back to the address. An address can have only one
|
| - * phone number. Variants are deprecated.
|
| - * @param {string} phoneNumber
|
| - */
|
| - onUpdatePhoneNumber_: function(phoneNumber) {
|
| - if (this.address_)
|
| - this.address_.phoneNumbers = [phoneNumber];
|
| - },
|
| -
|
| - /**
|
| - * Syncs the email back to the address. An address can have only one email.
|
| - * Variants are deprecated.
|
| - * @param {string} email
|
| - */
|
| - onUpdateEmail_: function(email) {
|
| - if (this.address_)
|
| - this.address_.emailAddresses = [email];
|
| - },
|
| -});
|
| -})();
|
| -
|
| -cr.define('settings.address', function() {
|
| - /**
|
| - * Creates a wrapper against a single data member for an address.
|
| - * @param {!chrome.autofillPrivate.AddressEntry} address
|
| - * @param {!chrome.autofillPrivate.AddressComponent} component
|
| - * @constructor
|
| - */
|
| - function AddressComponentUI(address, component) {
|
| - Object.defineProperty(this, 'value', {
|
| - get: function() {
|
| - return this.getValue_();
|
| - },
|
| - set: function(newValue) {
|
| - this.setValue_(newValue);
|
| - },
|
| - });
|
| - this.address_ = address;
|
| - this.component = component;
|
| - this.isTextArea =
|
| - component.field == chrome.autofillPrivate.AddressField.ADDRESS_LINES;
|
| - }
|
| -
|
| - AddressComponentUI.prototype = {
|
| - /**
|
| - * Gets the value from the address that's associated with this component.
|
| - * @return {string|undefined}
|
| - * @private
|
| - */
|
| - getValue_: function() {
|
| - var address = this.address_;
|
| - switch (this.component.field) {
|
| - case chrome.autofillPrivate.AddressField.FULL_NAME:
|
| - // |fullNames| is a single item array. See crbug.com/497934 for
|
| - // details.
|
| - return address.fullNames ? address.fullNames[0] : undefined;
|
| - case chrome.autofillPrivate.AddressField.COMPANY_NAME:
|
| - return address.companyName;
|
| - case chrome.autofillPrivate.AddressField.ADDRESS_LINES:
|
| - return address.addressLines;
|
| - case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_1:
|
| - return address.addressLevel1;
|
| - case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_2:
|
| - return address.addressLevel2;
|
| - case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_3:
|
| - return address.addressLevel3;
|
| - case chrome.autofillPrivate.AddressField.POSTAL_CODE:
|
| - return address.postalCode;
|
| - case chrome.autofillPrivate.AddressField.SORTING_CODE:
|
| - return address.sortingCode;
|
| - case chrome.autofillPrivate.AddressField.COUNTRY_CODE:
|
| - return address.countryCode;
|
| - default:
|
| - assertNotReached();
|
| - }
|
| - },
|
| -
|
| - /**
|
| - * Sets the value in the address that's associated with this component.
|
| - * @param {string} value
|
| - * @private
|
| - */
|
| - setValue_: function(value) {
|
| - var address = this.address_;
|
| - switch (this.component.field) {
|
| - case chrome.autofillPrivate.AddressField.FULL_NAME:
|
| - address.fullNames = [value];
|
| - break;
|
| - case chrome.autofillPrivate.AddressField.COMPANY_NAME:
|
| - address.companyName = value;
|
| - break;
|
| - case chrome.autofillPrivate.AddressField.ADDRESS_LINES:
|
| - address.addressLines = value;
|
| - break;
|
| - case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_1:
|
| - address.addressLevel1 = value;
|
| - break;
|
| - case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_2:
|
| - address.addressLevel2 = value;
|
| - break;
|
| - case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_3:
|
| - address.addressLevel3 = value;
|
| - break;
|
| - case chrome.autofillPrivate.AddressField.POSTAL_CODE:
|
| - address.postalCode = value;
|
| - break;
|
| - case chrome.autofillPrivate.AddressField.SORTING_CODE:
|
| - address.sortingCode = value;
|
| - break;
|
| - case chrome.autofillPrivate.AddressField.COUNTRY_CODE:
|
| - address.countryCode = value;
|
| - break;
|
| - default:
|
| - assertNotReached();
|
| - }
|
| - },
|
| - };
|
| -
|
| - /** @interface */
|
| - function CountryDetailManager() {}
|
| - CountryDetailManager.prototype = {
|
| - /**
|
| - * Gets the list of available countries.
|
| - * The default country will be first, followed by a separator, followed by
|
| - * an alphabetized list of countries available.
|
| - * @return {!Promise<!Array<!chrome.autofillPrivate.CountryEntry>>}
|
| - */
|
| - getCountryList: assertNotReached,
|
| -
|
| - /**
|
| - * Gets the address format for a given country code.
|
| - * @param {string} countryCode
|
| - * @return {!Promise<!chrome.autofillPrivate.AddressComponents>}
|
| - */
|
| - getAddressFormat: assertNotReached,
|
| - };
|
| -
|
| - /**
|
| - * Default implementation. Override for testing.
|
| - * @implements {settings.address.CountryDetailManager}
|
| - * @constructor
|
| - */
|
| - function CountryDetailManagerImpl() {}
|
| - cr.addSingletonGetter(CountryDetailManagerImpl);
|
| - CountryDetailManagerImpl.prototype = {
|
| - __proto__: CountryDetailManager,
|
| -
|
| - /** @override */
|
| - getCountryList: function() {
|
| - return new Promise(function(callback) {
|
| - chrome.autofillPrivate.getCountryList(callback);
|
| - });
|
| - },
|
| -
|
| - /** @override */
|
| - getAddressFormat: function(countryCode) {
|
| - return new Promise(function(callback) {
|
| - chrome.autofillPrivate.getAddressComponents(countryCode, callback);
|
| - });
|
| - },
|
| - };
|
| -
|
| - return {
|
| - AddressComponentUI: AddressComponentUI,
|
| - CountryDetailManager: CountryDetailManager,
|
| - CountryDetailManagerImpl: CountryDetailManagerImpl,
|
| - };
|
| -});
|
|
|