| Index: chrome/browser/resources/print_preview/search/destination_search.js
|
| diff --git a/chrome/browser/resources/print_preview/search/destination_search.js b/chrome/browser/resources/print_preview/search/destination_search.js
|
| index 71f02017b8a7633bc0d70a4f28eebc4b24f117dd..9d25c35c2c2ff2193f8d2b1126d942a9c46a809f 100644
|
| --- a/chrome/browser/resources/print_preview/search/destination_search.js
|
| +++ b/chrome/browser/resources/print_preview/search/destination_search.js
|
| @@ -147,6 +147,9 @@ cr.define('print_preview', function() {
|
| print_preview.Metrics.DestinationSearchBucket.
|
| CLOUDPRINT_PROMO_SHOWN);
|
| }
|
| + if (this.userInfo_.initialized) {
|
| + this.onUsersChanged_();
|
| + }
|
| this.reflowLists_();
|
| } else {
|
| this.getElement().classList.add('transparent');
|
| @@ -224,7 +227,7 @@ cr.define('print_preview', function() {
|
| this.tracker.add(
|
| this.destinationStore_,
|
| print_preview.DestinationStore.EventType.DESTINATION_SEARCH_DONE,
|
| - this.updateThrobbers_.bind(this));
|
| + this.onDestinationSearchDone_.bind(this));
|
|
|
| this.tracker.add(
|
| this.localList_,
|
| @@ -312,7 +315,9 @@ cr.define('print_preview', function() {
|
| var cloudDestinations = [];
|
| var unregisteredCloudDestinations = [];
|
|
|
| - this.destinationStore_.destinations.forEach(function(destination) {
|
| + var destinations =
|
| + this.destinationStore_.destinations(this.userInfo_.activeUser);
|
| + destinations.forEach(function(destination) {
|
| if (destination.isRecent) {
|
| recentDestinations.push(destination);
|
| }
|
| @@ -408,18 +413,16 @@ cr.define('print_preview', function() {
|
| this.reflowLists_();
|
| },
|
|
|
| -
|
| /**
|
| - * Updates the account selection UI.
|
| - * @param {string} email Email of the logged in user.
|
| - * @param {!Array.<string>} accounts List of logged in user accounts.
|
| + * Called when user's logged in accounts change. Updates the UI.
|
| + * @private
|
| */
|
| - setAccounts_: function(email, accounts) {
|
| - var loggedIn = !!email;
|
| + onUsersChanged_: function() {
|
| + var loggedIn = this.userInfo_.loggedIn;
|
| if (loggedIn) {
|
| var accountSelectEl = this.getChildElement('.account-select');
|
| accountSelectEl.innerHTML = '';
|
| - accounts.forEach(function(account) {
|
| + this.userInfo_.users.forEach(function(account) {
|
| var option = document.createElement('option');
|
| option.text = account;
|
| option.value = account;
|
| @@ -430,7 +433,8 @@ cr.define('print_preview', function() {
|
| option.value = '';
|
| accountSelectEl.add(option);
|
|
|
| - accountSelectEl.selectedIndex = accounts.indexOf(email);
|
| + accountSelectEl.selectedIndex =
|
| + this.userInfo_.users.indexOf(this.userInfo_.activeUser);
|
| }
|
|
|
| setIsVisible(this.getChildElement('.user-info'), loggedIn);
|
| @@ -480,7 +484,8 @@ cr.define('print_preview', function() {
|
| * @private
|
| */
|
| onDestinationStoreSelect_: function() {
|
| - var destinations = this.destinationStore_.destinations;
|
| + var destinations =
|
| + this.destinationStore_.destinations(this.userInfo_.activeUser);
|
| var recentDestinations = [];
|
| destinations.forEach(function(destination) {
|
| if (destination.isRecent) {
|
| @@ -502,6 +507,17 @@ cr.define('print_preview', function() {
|
| },
|
|
|
| /**
|
| + * Called when destinations are inserted into the store. Rerenders
|
| + * destinations.
|
| + * @private
|
| + */
|
| + onDestinationSearchDone_: function() {
|
| + this.updateThrobbers_();
|
| + this.renderDestinations_();
|
| + this.reflowLists_();
|
| + },
|
| +
|
| + /**
|
| * Called when the manage cloud printers action is activated.
|
| * @private
|
| */
|
| @@ -543,6 +559,7 @@ cr.define('print_preview', function() {
|
| accountSelectEl.options[accountSelectEl.selectedIndex].value;
|
| if (account) {
|
| this.userInfo_.activeUser = account;
|
| + this.destinationStore_.reloadUserCookieBasedDestinations();
|
| } else {
|
| cr.dispatchSimpleEvent(this, DestinationSearch.EventType.ADD_ACCOUNT);
|
| // Set selection back to the active user.
|
| @@ -584,14 +601,6 @@ cr.define('print_preview', function() {
|
| },
|
|
|
| /**
|
| - * Called when user's logged in accounts change. Updates the UI.
|
| - * @private
|
| - */
|
| - onUsersChanged_: function() {
|
| - this.setAccounts_(this.userInfo_.activeUser, this.userInfo_.users);
|
| - },
|
| -
|
| - /**
|
| * Called when the window is resized. Reflows layout of destination lists.
|
| * @private
|
| */
|
|
|