OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
360 | 360 |
361 /** | 361 /** |
362 * Gets user type bubble like multi-profiles policy restriction message. | 362 * Gets user type bubble like multi-profiles policy restriction message. |
363 * @type {!HTMLDivElement} | 363 * @type {!HTMLDivElement} |
364 */ | 364 */ |
365 get userTypeBubbleElement() { | 365 get userTypeBubbleElement() { |
366 return this.querySelector('.user-type-bubble'); | 366 return this.querySelector('.user-type-bubble'); |
367 }, | 367 }, |
368 | 368 |
369 /** | 369 /** |
| 370 * Gets action box menu. |
| 371 * @type {!HTMLInputElement} |
| 372 */ |
| 373 get actionBoxMenu() { |
| 374 return this.querySelector('.action-box-menu'); |
| 375 }, |
| 376 |
| 377 /** |
370 * Gets action box menu title, user name item. | 378 * Gets action box menu title, user name item. |
371 * @type {!HTMLInputElement} | 379 * @type {!HTMLInputElement} |
372 */ | 380 */ |
373 get actionBoxMenuTitleNameElement() { | 381 get actionBoxMenuTitleNameElement() { |
374 return this.querySelector('.action-box-menu-title-name'); | 382 return this.querySelector('.action-box-menu-title-name'); |
375 }, | 383 }, |
376 | 384 |
377 /** | 385 /** |
378 * Gets action box menu title, user email item. | 386 * Gets action box menu title, user email item. |
379 * @type {!HTMLInputElement} | 387 * @type {!HTMLInputElement} |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
568 this.parentNode.focusPod(undefined, true); | 576 this.parentNode.focusPod(undefined, true); |
569 this.actionBoxAreaElement.focus(); | 577 this.actionBoxAreaElement.focus(); |
570 } | 578 } |
571 | 579 |
572 // Hide user-type-bubble. | 580 // Hide user-type-bubble. |
573 this.userTypeBubbleElement.classList.remove('bubble-shown'); | 581 this.userTypeBubbleElement.classList.remove('bubble-shown'); |
574 | 582 |
575 this.actionBoxAreaElement.classList.add('active'); | 583 this.actionBoxAreaElement.classList.add('active'); |
576 } else { | 584 } else { |
577 this.actionBoxAreaElement.classList.remove('active'); | 585 this.actionBoxAreaElement.classList.remove('active'); |
| 586 this.actionBoxAreaElement.classList.remove('menu-moved-up'); |
| 587 this.actionBoxMenu.classList.remove('menu-moved-up'); |
578 } | 588 } |
579 }, | 589 }, |
580 | 590 |
581 /** | 591 /** |
582 * Whether action box button is in hovered state. | 592 * Whether action box button is in hovered state. |
583 * @type {boolean} | 593 * @type {boolean} |
584 */ | 594 */ |
585 get isActionBoxMenuHovered() { | 595 get isActionBoxMenuHovered() { |
586 return this.actionBoxAreaElement.classList.contains('hovered'); | 596 return this.actionBoxAreaElement.classList.contains('hovered'); |
587 }, | 597 }, |
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
709 messageDiv.textContent = | 719 messageDiv.textContent = |
710 loadTimeData.getString('supervisedUserExpiredTokenWarning'); | 720 loadTimeData.getString('supervisedUserExpiredTokenWarning'); |
711 error.appendChild(messageDiv); | 721 error.appendChild(messageDiv); |
712 | 722 |
713 $('bubble').showContentForElement( | 723 $('bubble').showContentForElement( |
714 this.signinButtonElement, | 724 this.signinButtonElement, |
715 cr.ui.Bubble.Attachment.TOP, | 725 cr.ui.Bubble.Attachment.TOP, |
716 error, | 726 error, |
717 this.signinButtonElement.offsetWidth / 2, | 727 this.signinButtonElement.offsetWidth / 2, |
718 4); | 728 4); |
| 729 // Move warning bubble up if it overlaps the shelf. |
| 730 var maxHeight = |
| 731 cr.ui.LoginUITools.getMaxHeightBeforeShelfOverlapping($('bubble')); |
| 732 if (maxHeight < $('bubble').offsetHeight) { |
| 733 $('bubble').showContentForElement( |
| 734 this.signinButtonElement, |
| 735 cr.ui.Bubble.Attachment.BOTTOM, |
| 736 error, |
| 737 this.signinButtonElement.offsetWidth / 2, |
| 738 4); |
| 739 } |
719 }, | 740 }, |
720 | 741 |
721 /** | 742 /** |
722 * Shows signin UI for this user. | 743 * Shows signin UI for this user. |
723 */ | 744 */ |
724 showSigninUI: function() { | 745 showSigninUI: function() { |
725 if (this.user.supervisedUser && !this.user.isDesktopUser) { | 746 if (this.user.supervisedUser && !this.user.isDesktopUser) { |
726 this.showSupervisedUserSigninWarning(); | 747 this.showSupervisedUserSigninWarning(); |
727 } else { | 748 } else { |
728 // Special case for multi-profiles sign in. We show users even if they | 749 // Special case for multi-profiles sign in. We show users even if they |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
818 }, | 839 }, |
819 | 840 |
820 /** | 841 /** |
821 * Shows remove user warning. Used for supervised users on CrOS, and for all | 842 * Shows remove user warning. Used for supervised users on CrOS, and for all |
822 * users on desktop. | 843 * users on desktop. |
823 */ | 844 */ |
824 showRemoveWarning_: function() { | 845 showRemoveWarning_: function() { |
825 this.actionBoxMenuRemoveElement.hidden = true; | 846 this.actionBoxMenuRemoveElement.hidden = true; |
826 this.actionBoxRemoveUserWarningElement.hidden = false; | 847 this.actionBoxRemoveUserWarningElement.hidden = false; |
827 this.actionBoxRemoveUserWarningButtonElement.focus(); | 848 this.actionBoxRemoveUserWarningButtonElement.focus(); |
| 849 |
| 850 // Move up the menu if it overlaps shelf. |
| 851 var maxHeight = cr.ui.LoginUITools.getMaxHeightBeforeShelfOverlapping( |
| 852 this.actionBoxMenu); |
| 853 var actualHeight = parseInt( |
| 854 window.getComputedStyle(this.actionBoxMenu).height); |
| 855 if (maxHeight < actualHeight) { |
| 856 this.actionBoxMenu.classList.add('menu-moved-up'); |
| 857 this.actionBoxAreaElement.classList.add('menu-moved-up'); |
| 858 } |
828 }, | 859 }, |
829 | 860 |
830 /** | 861 /** |
831 * Handles a click event on remove user confirmation button. | 862 * Handles a click event on remove user confirmation button. |
832 * @param {Event} e Click event. | 863 * @param {Event} e Click event. |
833 */ | 864 */ |
834 handleRemoveUserConfirmationClick_: function(e) { | 865 handleRemoveUserConfirmationClick_: function(e) { |
835 if (this.isActionBoxMenuActive) { | 866 if (this.isActionBoxMenuActive) { |
836 this.isActionBoxMenuActive = false; | 867 this.isActionBoxMenuActive = false; |
837 this.removeUser(this.user); | 868 this.removeUser(this.user); |
(...skipping 1592 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2430 if (pod && pod.multiProfilesPolicyApplied) { | 2461 if (pod && pod.multiProfilesPolicyApplied) { |
2431 pod.userTypeBubbleElement.classList.remove('bubble-shown'); | 2462 pod.userTypeBubbleElement.classList.remove('bubble-shown'); |
2432 } | 2463 } |
2433 } | 2464 } |
2434 }; | 2465 }; |
2435 | 2466 |
2436 return { | 2467 return { |
2437 PodRow: PodRow | 2468 PodRow: PodRow |
2438 }; | 2469 }; |
2439 }); | 2470 }); |
OLD | NEW |