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 /** | 5 /** |
6 * @fileoverview User pod row implementation. | 6 * @fileoverview User pod row implementation. |
7 */ | 7 */ |
8 | 8 |
9 cr.define('login', function() { | 9 cr.define('login', function() { |
10 /** | 10 /** |
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
189 | 189 |
190 /** | 190 /** |
191 * Gets password field. | 191 * Gets password field. |
192 * @type {!HTMLInputElement} | 192 * @type {!HTMLInputElement} |
193 */ | 193 */ |
194 get passwordElement() { | 194 get passwordElement() { |
195 return this.nameElement.nextElementSibling; | 195 return this.nameElement.nextElementSibling; |
196 }, | 196 }, |
197 | 197 |
198 /** | 198 /** |
199 * Gets managed badge image. | |
200 * @type {!HTMLImageElement} | |
201 */ | |
202 get managedBadgeElement() { | |
203 return this.capslockHintElement.previousElementSibling; | |
204 }, | |
205 | |
206 /** | |
199 * Gets Caps Lock hint image. | 207 * Gets Caps Lock hint image. |
200 * @type {!HTMLImageElement} | 208 * @type {!HTMLImageElement} |
201 */ | 209 */ |
202 get capslockHintElement() { | 210 get capslockHintElement() { |
203 return this.signinButtonElement.previousElementSibling; | 211 return this.signinButtonElement.previousElementSibling; |
204 }, | 212 }, |
205 | 213 |
206 /** | 214 /** |
207 * Gets user signin button. | 215 * Gets user signin button. |
208 * @type {!HTMLInputElement} | 216 * @type {!HTMLInputElement} |
(...skipping 23 matching lines...) Expand all Loading... | |
232 var needSignin = this.needGaiaSignin; | 240 var needSignin = this.needGaiaSignin; |
233 this.passwordElement.hidden = needSignin; | 241 this.passwordElement.hidden = needSignin; |
234 this.removeUserButtonElement.setAttribute( | 242 this.removeUserButtonElement.setAttribute( |
235 'aria-label', localStrings.getStringF('removeButtonAccessibleName', | 243 'aria-label', localStrings.getStringF('removeButtonAccessibleName', |
236 this.user_.emailAddress)); | 244 this.user_.emailAddress)); |
237 this.passwordElement.setAttribute('aria-label', | 245 this.passwordElement.setAttribute('aria-label', |
238 localStrings.getStringF( | 246 localStrings.getStringF( |
239 'passwordFieldAccessibleName', | 247 'passwordFieldAccessibleName', |
240 this.user_.emailAddress)); | 248 this.user_.emailAddress)); |
241 this.signinButtonElement.hidden = !needSignin; | 249 this.signinButtonElement.hidden = !needSignin; |
250 | |
251 if (this.user.publicAccount) { | |
bartfab (slow)
2012/11/28 15:11:38
As described below, I think a separate |this.user.
xiyuan
2012/12/01 00:24:19
Created a new PublicAccountUserPod that derives fr
| |
252 this.classList.remove('need-password'); | |
253 this.managedBadgeElement.hidden = false; | |
254 } else { | |
255 this.classList.add('need-password'); | |
256 this.managedBadgeElement.hidden = true; | |
257 } | |
242 }, | 258 }, |
243 | 259 |
244 /** | 260 /** |
245 * The user that this pod represents. | 261 * The user that this pod represents. |
246 * @type {!Object} | 262 * @type {!Object} |
247 */ | 263 */ |
248 user_: undefined, | 264 user_: undefined, |
249 get user() { | 265 get user() { |
250 return this.user_; | 266 return this.user_; |
251 }, | 267 }, |
252 set user(userDict) { | 268 set user(userDict) { |
253 this.user_ = userDict; | 269 this.user_ = userDict; |
254 this.update(); | 270 this.update(); |
255 }, | 271 }, |
256 | 272 |
257 /** | 273 /** |
258 * Whether Gaia signin is required for this user. | 274 * Whether Gaia signin is required for this user. |
259 */ | 275 */ |
260 get needGaiaSignin() { | 276 get needGaiaSignin() { |
261 // Gaia signin is performed if the user has an invalid oauth token and is | 277 // Gaia signin is performed if the user has an invalid oauth token and is |
262 // not currently signed in (i.e. not the lock screen). | 278 // not currently signed in (i.e. not the lock screen) and is not a public |
bartfab (slow)
2012/11/28 15:11:38
Nit: "public account user" (for consistency throug
xiyuan
2012/12/01 00:24:19
This change is reverted in new patch.
| |
279 // user. | |
263 return this.user.oauthTokenStatus != OAuthTokenStatus.VALID && | 280 return this.user.oauthTokenStatus != OAuthTokenStatus.VALID && |
264 !this.user.signedIn; | 281 !this.user.signedIn && |
282 !this.user.publicAccount; | |
bartfab (slow)
2012/11/28 15:11:38
This is a bit akin to user agent sniffing: What yo
xiyuan
2012/12/01 00:24:19
Reverted the change here. In new PublicAccountUser
| |
265 }, | 283 }, |
266 | 284 |
267 /** | 285 /** |
268 * Gets main input element. | 286 * Gets main input element. |
269 * @type {(HTMLButtonElement|HTMLInputElement)} | 287 * @type {(HTMLButtonElement|HTMLInputElement)} |
270 */ | 288 */ |
271 get mainInput() { | 289 get mainInput() { |
272 if (!this.signinButtonElement.hidden) | 290 if (!this.signinButtonElement.hidden) |
273 return this.signinButtonElement; | 291 return this.signinButtonElement; |
274 else | 292 else |
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
319 this.tabIndex = -1; | 337 this.tabIndex = -1; |
320 this.mainInput.tabIndex = UserPodTabOrder.POD_INPUT; | 338 this.mainInput.tabIndex = UserPodTabOrder.POD_INPUT; |
321 this.mainInput.focus(); | 339 this.mainInput.focus(); |
322 }, | 340 }, |
323 | 341 |
324 /** | 342 /** |
325 * Activates the pod. | 343 * Activates the pod. |
326 * @return {boolean} True if activated successfully. | 344 * @return {boolean} True if activated successfully. |
327 */ | 345 */ |
328 activate: function() { | 346 activate: function() { |
329 if (!this.signinButtonElement.hidden) { | 347 if (this.user.publicAccount) { |
348 Oobe.showScreen({ | |
bartfab (slow)
2012/11/28 15:11:38
I have not run the code but I would imagine that t
Nikita (slow)
2012/11/28 18:57:34
Yes, that would be the right thing to do but that
xiyuan
2012/12/01 00:24:19
Refactored the CL to expand user pod instead of us
| |
349 id: SCREEN_PUBLIC_ACCOUNT_SIGNIN, | |
350 data: { | |
351 name: this.user_.displayName, | |
352 email: this.user_.username, | |
353 imageUrl: this.imageElement.src | |
bartfab (slow)
2012/11/28 15:11:38
The avatar is loaded asynchronously. It may happen
Ivan Korotkov
2012/11/28 21:50:39
'src' should still be accessible while it loads, r
bartfab (slow)
2012/11/29 14:32:28
Sure, the |src| is accessible - but what does it p
Ivan Korotkov
2012/11/29 17:23:20
Right, I missed that.
xiyuan
2012/12/01 00:24:19
New patch expand user pod in-place and will no lon
| |
354 } | |
355 }); | |
356 } else if (!this.signinButtonElement.hidden) { | |
330 // Switch to Gaia signin. | 357 // Switch to Gaia signin. |
331 this.showSigninUI(); | 358 this.showSigninUI(); |
332 } else if (!this.passwordElement.value) { | 359 } else if (!this.passwordElement.value) { |
333 return false; | 360 return false; |
334 } else { | 361 } else { |
335 Oobe.disableSigninUI(); | 362 Oobe.disableSigninUI(); |
336 chrome.send('authenticateUser', | 363 chrome.send('authenticateUser', |
337 [this.user.username, this.passwordElement.value]); | 364 [this.user.username, this.passwordElement.value]); |
338 } | 365 } |
339 | 366 |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
380 this.activeRemoveButton = true; | 407 this.activeRemoveButton = true; |
381 }, | 408 }, |
382 | 409 |
383 /** | 410 /** |
384 * Handles mousedown event on a user pod. | 411 * Handles mousedown event on a user pod. |
385 * @param {Event} e Mouseout event. | 412 * @param {Event} e Mouseout event. |
386 */ | 413 */ |
387 handleMouseDown_: function(e) { | 414 handleMouseDown_: function(e) { |
388 if (this.parentNode.disabled) | 415 if (this.parentNode.disabled) |
389 return; | 416 return; |
390 if (!this.signinButtonElement.hidden) { | 417 if (this.user.publicAccount) { |
418 this.parentNode.activatedPod = this; | |
419 // Prevent default so that we don't trigger 'focus' event. | |
420 e.preventDefault(); | |
421 } else if (!this.signinButtonElement.hidden) { | |
391 this.showSigninUI(); | 422 this.showSigninUI(); |
bartfab (slow)
2012/11/28 15:11:38
Any idea why this line uses |this.showSigninUI()|
Ivan Korotkov
2012/11/28 21:50:39
Because if signingButton.hidden == false, that mea
bartfab (slow)
2012/11/29 14:32:28
Thanks for clarifying.
| |
392 // Prevent default so that we don't trigger 'focus' event. | 423 // Prevent default so that we don't trigger 'focus' event. |
393 e.preventDefault(); | 424 e.preventDefault(); |
394 } | 425 } |
395 } | 426 } |
396 }; | 427 }; |
397 | 428 |
398 | 429 |
399 /** | 430 /** |
400 * Creates a new pod row element. | 431 * Creates a new pod row element. |
401 * @constructor | 432 * @constructor |
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
949 this.classList.remove('images-loading'); | 980 this.classList.remove('images-loading'); |
950 chrome.send('userImagesLoaded'); | 981 chrome.send('userImagesLoaded'); |
951 } | 982 } |
952 } | 983 } |
953 }; | 984 }; |
954 | 985 |
955 return { | 986 return { |
956 PodRow: PodRow | 987 PodRow: PodRow |
957 }; | 988 }; |
958 }); | 989 }); |
OLD | NEW |