OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 /** | 5 /** |
6 * @fileoverview | 6 * @fileoverview |
7 * 'settings-manage-profile' is the settings subpage containing controls to | 7 * 'settings-manage-profile' is the settings subpage containing controls to |
8 * edit a profile's name, icon, and desktop shortcut. | 8 * edit a profile's name, icon, and desktop shortcut. |
9 */ | 9 */ |
10 Polymer({ | 10 Polymer({ |
11 is: 'settings-manage-profile', | 11 is: 'settings-manage-profile', |
12 | 12 |
13 behaviors: [WebUIListenerBehavior, settings.RouteObserverBehavior], | 13 behaviors: [WebUIListenerBehavior, settings.RouteObserverBehavior], |
14 | 14 |
15 properties: { | 15 properties: { |
16 /** | 16 /** |
17 * The currently selected profile icon URL. May be a data URL. | 17 * The newly selected avatar. Populated only if the user manually changes |
| 18 * the avatar selection. The observer ensures that the changes are |
| 19 * propagated to the C++. |
| 20 * @private |
18 */ | 21 */ |
19 profileIconUrl: String, | 22 profileAvatar_: { |
| 23 type: Object, |
| 24 observer: 'profileAvatarChanged_', |
| 25 }, |
20 | 26 |
21 /** | 27 /** |
22 * The current profile name. | 28 * The current profile name. |
23 */ | 29 */ |
24 profileName: String, | 30 profileName: String, |
25 | 31 |
26 /** | 32 /** |
27 * True if the current profile has a shortcut. | 33 * True if the current profile has a shortcut. |
28 */ | 34 */ |
29 hasProfileShortcut_: Boolean, | 35 hasProfileShortcut_: Boolean, |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 * @private | 113 * @private |
108 */ | 114 */ |
109 onProfileNameKeydown_: function(event) { | 115 onProfileNameKeydown_: function(event) { |
110 if (event.key == 'Escape') { | 116 if (event.key == 'Escape') { |
111 event.target.value = this.profileName; | 117 event.target.value = this.profileName; |
112 event.target.blur(); | 118 event.target.blur(); |
113 } | 119 } |
114 }, | 120 }, |
115 | 121 |
116 /** | 122 /** |
117 * Handler for when an avatar is activated. | 123 * Handler for when the profile avatar is changed by the user. |
118 * @param {!Event} event | |
119 * @private | 124 * @private |
120 */ | 125 */ |
121 onIconActivate_: function(event) { | 126 profileAvatarChanged_: function() { |
122 // Explicitly test against undefined, because even when an element has the | 127 if (this.profileAvatar_.isGaiaAvatar) |
123 // data-is-gaia-avatar attribute, dataset.isGaiaAvatar returns an empty | |
124 // string, which is falsy. | |
125 var isGaiaAvatar = event.detail.item.dataset.isGaiaAvatar !== undefined; | |
126 | |
127 if (isGaiaAvatar) | |
128 this.browserProxy_.setProfileIconToGaiaAvatar(); | 128 this.browserProxy_.setProfileIconToGaiaAvatar(); |
129 else | 129 else |
130 this.browserProxy_.setProfileIconToDefaultAvatar(event.detail.selected); | 130 this.browserProxy_.setProfileIconToDefaultAvatar(this.profileAvatar_.url); |
131 }, | 131 }, |
132 | 132 |
133 /** | 133 /** |
134 * @param {?settings.SyncStatus} syncStatus | 134 * @param {?settings.SyncStatus} syncStatus |
135 * @return {boolean} Whether the profile name field is disabled. | 135 * @return {boolean} Whether the profile name field is disabled. |
136 * @private | 136 * @private |
137 */ | 137 */ |
138 isProfileNameDisabled_: function(syncStatus) { | 138 isProfileNameDisabled_: function(syncStatus) { |
139 return !!syncStatus.supervisedUser && !syncStatus.childUser; | 139 return !!syncStatus.supervisedUser && !syncStatus.childUser; |
140 }, | 140 }, |
141 | 141 |
142 /** | 142 /** |
143 * Handler for when the profile shortcut toggle is changed. | 143 * Handler for when the profile shortcut toggle is changed. |
144 * @param {!Event} event | 144 * @param {!Event} event |
145 * @private | 145 * @private |
146 */ | 146 */ |
147 onHasProfileShortcutChange_: function(event) { | 147 onHasProfileShortcutChange_: function(event) { |
148 if (this.hasProfileShortcut_) { | 148 if (this.hasProfileShortcut_) { |
149 this.browserProxy_.addProfileShortcut(); | 149 this.browserProxy_.addProfileShortcut(); |
150 } else { | 150 } else { |
151 this.browserProxy_.removeProfileShortcut(); | 151 this.browserProxy_.removeProfileShortcut(); |
152 } | 152 } |
153 } | 153 } |
154 }); | 154 }); |
OLD | NEW |