| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 cr.define('print_preview', function() { | 5 cr.define('print_preview', function() { |
| 6 'use strict'; | 6 'use strict'; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * Repository which stores information about the user. Events are dispatched | 9 * Repository which stores information about the user. Events are dispatched |
| 10 * when the information changes. | 10 * when the information changes. |
| 11 * @constructor | 11 * @constructor |
| 12 * @extends {cr.EventTarget} | 12 * @extends {cr.EventTarget} |
| 13 */ | 13 */ |
| 14 function UserInfo() { | 14 function UserInfo() { |
| 15 cr.EventTarget.call(this); | 15 cr.EventTarget.call(this); |
| 16 | 16 |
| 17 /** | 17 /** |
| 18 * Email address of the logged in user or {@code null} if no user is logged | 18 * Email address of the logged in user or {@code null} if no user is logged |
| 19 * in. In case of Google multilogin, can be changed by the user. | 19 * in. In case of Google multilogin, can be changed by the user. |
| 20 * @private {?string} | 20 * @private {?string} |
| 21 */ | 21 */ |
| 22 this.activeUser_ = null; | 22 this.activeUser_ = null; |
| 23 | 23 |
| 24 /** | 24 /** |
| 25 * Email addresses of the logged in users or empty array if no user is | 25 * Email addresses of the logged in users or empty array if no user is |
| 26 * logged in. | 26 * logged in. {@code null} if not known yet. |
| 27 * @private {!Array.<string>} | 27 * @private {?Array.<string>} |
| 28 */ | 28 */ |
| 29 this.users_ = []; | 29 this.users_ = null; |
| 30 }; | 30 }; |
| 31 | 31 |
| 32 /** | 32 /** |
| 33 * Enumeration of event types dispatched by the user info. | 33 * Enumeration of event types dispatched by the user info. |
| 34 * @enum {string} | 34 * @enum {string} |
| 35 */ | 35 */ |
| 36 UserInfo.EventType = { | 36 UserInfo.EventType = { |
| 37 ACTIVE_USER_CHANGED: 'print_preview.UserInfo.ACTIVE_USER_CHANGED', | 37 ACTIVE_USER_CHANGED: 'print_preview.UserInfo.ACTIVE_USER_CHANGED', |
| 38 USERS_CHANGED: 'print_preview.UserInfo.USERS_CHANGED' | 38 USERS_CHANGED: 'print_preview.UserInfo.USERS_CHANGED' |
| 39 }; | 39 }; |
| 40 | 40 |
| 41 UserInfo.prototype = { | 41 UserInfo.prototype = { |
| 42 __proto__: cr.EventTarget.prototype, | 42 __proto__: cr.EventTarget.prototype, |
| 43 | 43 |
| 44 /** @return {boolean} Whether user accounts are already retrieved. */ |
| 45 get initialized() { |
| 46 return this.users_ != null; |
| 47 }, |
| 48 |
| 49 /** @return {boolean} Whether user is logged in or not. */ |
| 50 get loggedIn() { |
| 51 return !!this.activeUser; |
| 52 }, |
| 53 |
| 44 /** | 54 /** |
| 45 * @return {?string} Email address of the logged in user or {@code null} if | 55 * @return {?string} Email address of the logged in user or {@code null} if |
| 46 * no user is logged. | 56 * no user is logged. |
| 47 */ | 57 */ |
| 48 get activeUser() { | 58 get activeUser() { |
| 49 return this.activeUser_; | 59 return this.activeUser_; |
| 50 }, | 60 }, |
| 51 | 61 |
| 52 /** Changes active user. */ | 62 /** Changes active user. */ |
| 53 set activeUser(activeUser) { | 63 set activeUser(activeUser) { |
| 54 if (this.activeUser_ != activeUser) { | 64 if (this.activeUser_ != activeUser) { |
| 55 this.activeUser_ = activeUser; | 65 this.activeUser_ = activeUser; |
| 56 cr.dispatchSimpleEvent(this, UserInfo.EventType.ACTIVE_USER_CHANGED); | 66 cr.dispatchSimpleEvent(this, UserInfo.EventType.ACTIVE_USER_CHANGED); |
| 57 } | 67 } |
| 58 }, | 68 }, |
| 59 | 69 |
| 60 | |
| 61 /** | 70 /** |
| 62 * @return {!Array.<string>} Email addresses of the logged in users or | 71 * @return {?Array.<string>} Email addresses of the logged in users or |
| 63 * empty array if no user is logged in. | 72 * empty array if no user is logged in. {@code null} if not known yet. |
| 64 */ | 73 */ |
| 65 get users() { | 74 get users() { |
| 66 return this.users_; | 75 return this.users_; |
| 67 }, | 76 }, |
| 68 | 77 |
| 69 /** | 78 /** |
| 70 * Sets logged in user accounts info. | 79 * Sets logged in user accounts info. |
| 71 * @param {string} user Currently logged in user (email). | 80 * @param {string} activeUser Active user account (email). |
| 72 * @param {!Array.<string>} users List of currently logged in accounts. | 81 * @param {!Array.<string>} users List of currently logged in accounts. |
| 73 */ | 82 */ |
| 74 setUsers: function(activeUser, users) { | 83 setUsers: function(activeUser, users) { |
| 75 this.activeUser_ = activeUser; | 84 this.activeUser_ = activeUser; |
| 76 this.users_ = users || []; | 85 this.users_ = users || []; |
| 77 cr.dispatchSimpleEvent(this, UserInfo.EventType.USERS_CHANGED); | 86 cr.dispatchSimpleEvent(this, UserInfo.EventType.USERS_CHANGED); |
| 78 }, | 87 }, |
| 79 }; | 88 }; |
| 80 | 89 |
| 81 return { | 90 return { |
| 82 UserInfo: UserInfo | 91 UserInfo: UserInfo |
| 83 }; | 92 }; |
| 84 }); | 93 }); |
| OLD | NEW |