Index: chrome/browser/resources/options2/autofill_options.js |
diff --git a/chrome/browser/resources/options2/autofill_options.js b/chrome/browser/resources/options2/autofill_options.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..0b3a3055526250fcaeb6a5d856ce445b76e47ceb |
--- /dev/null |
+++ b/chrome/browser/resources/options2/autofill_options.js |
@@ -0,0 +1,230 @@ |
+// Copyright (c) 2011 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 OptionsPage = options.OptionsPage; |
+ const ArrayDataModel = cr.ui.ArrayDataModel; |
+ |
+ ///////////////////////////////////////////////////////////////////////////// |
+ // AutofillOptions class: |
+ |
+ /** |
+ * Encapsulated handling of Autofill options page. |
+ * @constructor |
+ */ |
+ function AutofillOptions() { |
+ OptionsPage.call(this, |
+ 'autofill', |
+ templateData.autofillOptionsPageTabTitle, |
+ 'autofill-options'); |
+ } |
+ |
+ cr.addSingletonGetter(AutofillOptions); |
+ |
+ AutofillOptions.prototype = { |
+ __proto__: OptionsPage.prototype, |
+ |
+ /** |
+ * The address list. |
+ * @type {DeletableItemList} |
+ * @private |
+ */ |
+ addressList_: null, |
+ |
+ /** |
+ * The credit card list. |
+ * @type {DeletableItemList} |
+ * @private |
+ */ |
+ creditCardList_: null, |
+ |
+ initializePage: function() { |
+ OptionsPage.prototype.initializePage.call(this); |
+ |
+ this.createAddressList_(); |
+ this.createCreditCardList_(); |
+ |
+ var self = this; |
+ $('autofill-add-address').onclick = function(event) { |
+ self.showAddAddressOverlay_(); |
+ }; |
+ $('autofill-add-creditcard').onclick = function(event) { |
+ self.showAddCreditCardOverlay_(); |
+ }; |
+ |
+ // TODO(jhawkins): What happens when Autofill is disabled whilst on the |
+ // Autofill options page? |
+ }, |
+ |
+ /** |
+ * Creates, decorates and initializes the address list. |
+ * @private |
+ */ |
+ createAddressList_: function() { |
+ this.addressList_ = $('address-list'); |
+ options.autofillOptions.AutofillAddressList.decorate(this.addressList_); |
+ this.addressList_.autoExpands = true; |
+ }, |
+ |
+ /** |
+ * Creates, decorates and initializes the credit card list. |
+ * @private |
+ */ |
+ createCreditCardList_: function() { |
+ this.creditCardList_ = $('creditcard-list'); |
+ options.autofillOptions.AutofillCreditCardList.decorate( |
+ this.creditCardList_); |
+ this.creditCardList_.autoExpands = true; |
+ }, |
+ |
+ /** |
+ * Shows the 'Add address' overlay, specifically by loading the |
+ * 'Edit address' overlay, emptying the input fields and modifying the |
+ * overlay title. |
+ * @private |
+ */ |
+ showAddAddressOverlay_: function() { |
+ var title = localStrings.getString('addAddressTitle'); |
+ AutofillEditAddressOverlay.setTitle(title); |
+ AutofillEditAddressOverlay.clearInputFields(); |
+ OptionsPage.navigateToPage('autofillEditAddress'); |
+ }, |
+ |
+ /** |
+ * Shows the 'Add credit card' overlay, specifically by loading the |
+ * 'Edit credit card' overlay, emptying the input fields and modifying the |
+ * overlay title. |
+ * @private |
+ */ |
+ showAddCreditCardOverlay_: function() { |
+ var title = localStrings.getString('addCreditCardTitle'); |
+ AutofillEditCreditCardOverlay.setTitle(title); |
+ AutofillEditCreditCardOverlay.clearInputFields(); |
+ OptionsPage.navigateToPage('autofillEditCreditCard'); |
+ }, |
+ |
+ /** |
+ * Updates the data model for the address list with the values from |
+ * |entries|. |
+ * @param {Array} entries The list of addresses. |
+ */ |
+ setAddressList_: function(entries) { |
+ this.addressList_.dataModel = new ArrayDataModel(entries); |
+ }, |
+ |
+ /** |
+ * Updates the data model for the credit card list with the values from |
+ * |entries|. |
+ * @param {Array} entries The list of credit cards. |
+ */ |
+ setCreditCardList_: function(entries) { |
+ this.creditCardList_.dataModel = new ArrayDataModel(entries); |
+ }, |
+ |
+ /** |
+ * Removes the Autofill address represented by |guid|. |
+ * @param {String} guid The GUID of the address to remove. |
+ * @private |
+ */ |
+ removeAddress_: function(guid) { |
+ chrome.send('removeAddress', [guid]); |
+ }, |
+ |
+ /** |
+ * Removes the Autofill credit card represented by |guid|. |
+ * @param {String} guid The GUID of the credit card to remove. |
+ * @private |
+ */ |
+ removeCreditCard_: function(guid) { |
+ chrome.send('removeCreditCard', [guid]); |
+ }, |
+ |
+ /** |
+ * Requests profile data for the address represented by |guid| from the |
+ * PersonalDataManager. Once the data is loaded, the AutofillOptionsHandler |
+ * calls showEditAddressOverlay(). |
+ * @param {String} guid The GUID of the address to edit. |
+ * @private |
+ */ |
+ loadAddressEditor_: function(guid) { |
+ chrome.send('loadAddressEditor', [guid]); |
+ }, |
+ |
+ /** |
+ * Requests profile data for the credit card represented by |guid| from the |
+ * PersonalDataManager. Once the data is loaded, the AutofillOptionsHandler |
+ * calls showEditCreditCardOverlay(). |
+ * @param {String} guid The GUID of the credit card to edit. |
+ * @private |
+ */ |
+ loadCreditCardEditor_: function(guid) { |
+ chrome.send('loadCreditCardEditor', [guid]); |
+ }, |
+ |
+ /** |
+ * Shows the 'Edit address' overlay, using the data in |address| to fill the |
+ * input fields. |address| is a list with one item, an associative array |
+ * that contains the address data. |
+ * @private |
+ */ |
+ showEditAddressOverlay_: function(address) { |
+ var title = localStrings.getString('editAddressTitle'); |
+ AutofillEditAddressOverlay.setTitle(title); |
+ AutofillEditAddressOverlay.loadAddress(address); |
+ OptionsPage.navigateToPage('autofillEditAddress'); |
+ }, |
+ |
+ /** |
+ * Shows the 'Edit credit card' overlay, using the data in |credit_card| to |
+ * fill the input fields. |address| is a list with one item, an associative |
+ * array that contains the credit card data. |
+ * @private |
+ */ |
+ showEditCreditCardOverlay_: function(creditCard) { |
+ var title = localStrings.getString('editCreditCardTitle'); |
+ AutofillEditCreditCardOverlay.setTitle(title); |
+ AutofillEditCreditCardOverlay.loadCreditCard(creditCard); |
+ OptionsPage.navigateToPage('autofillEditCreditCard'); |
+ }, |
+ }; |
+ |
+ AutofillOptions.setAddressList = function(entries) { |
+ AutofillOptions.getInstance().setAddressList_(entries); |
+ }; |
+ |
+ AutofillOptions.setCreditCardList = function(entries) { |
+ AutofillOptions.getInstance().setCreditCardList_(entries); |
+ }; |
+ |
+ AutofillOptions.removeAddress = function(guid) { |
+ AutofillOptions.getInstance().removeAddress_(guid); |
+ }; |
+ |
+ AutofillOptions.removeCreditCard = function(guid) { |
+ AutofillOptions.getInstance().removeCreditCard_(guid); |
+ }; |
+ |
+ AutofillOptions.loadAddressEditor = function(guid) { |
+ AutofillOptions.getInstance().loadAddressEditor_(guid); |
+ }; |
+ |
+ AutofillOptions.loadCreditCardEditor = function(guid) { |
+ AutofillOptions.getInstance().loadCreditCardEditor_(guid); |
+ }; |
+ |
+ AutofillOptions.editAddress = function(address) { |
+ AutofillOptions.getInstance().showEditAddressOverlay_(address); |
+ }; |
+ |
+ AutofillOptions.editCreditCard = function(creditCard) { |
+ AutofillOptions.getInstance().showEditCreditCardOverlay_(creditCard); |
+ }; |
+ |
+ // Export |
+ return { |
+ AutofillOptions: AutofillOptions |
+ }; |
+ |
+}); |
+ |