| 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 11 matching lines...) Expand all Loading... |
| 22 var CROS_SMALL_POD_HEIGHT = 74; | 22 var CROS_SMALL_POD_HEIGHT = 74; |
| 23 var CROS_EXTRA_SMALL_POD_HEIGHT = 60; | 23 var CROS_EXTRA_SMALL_POD_HEIGHT = 60; |
| 24 var DESKTOP_POD_HEIGHT = 226; | 24 var DESKTOP_POD_HEIGHT = 226; |
| 25 var MD_DESKTOP_POD_HEIGHT = 200; | 25 var MD_DESKTOP_POD_HEIGHT = 200; |
| 26 var POD_ROW_PADDING = 10; | 26 var POD_ROW_PADDING = 10; |
| 27 var DESKTOP_ROW_PADDING = 32; | 27 var DESKTOP_ROW_PADDING = 32; |
| 28 var CUSTOM_ICON_CONTAINER_SIZE = 40; | 28 var CUSTOM_ICON_CONTAINER_SIZE = 40; |
| 29 var CROS_PIN_POD_HEIGHT = 417; | 29 var CROS_PIN_POD_HEIGHT = 417; |
| 30 var SCROLL_MASK_HEIGHT = 112; | 30 var SCROLL_MASK_HEIGHT = 112; |
| 31 var BANNER_MESSAGE_WIDTH = 520; | 31 var BANNER_MESSAGE_WIDTH = 520; |
| 32 var CROS_POD_HEIGHT_WITH_PIN = 618; |
| 32 | 33 |
| 33 /** | 34 /** |
| 34 * The maximum number of users that each pod placement method can handle. | 35 * The maximum number of users that each pod placement method can handle. |
| 35 */ | 36 */ |
| 36 var POD_ROW_LIMIT = 2; | 37 var POD_ROW_LIMIT = 2; |
| 37 var LANDSCAPE_MODE_LIMIT = 6; | 38 var LANDSCAPE_MODE_LIMIT = 6; |
| 38 var PORTRAIT_MODE_LIMIT = 9; | 39 var PORTRAIT_MODE_LIMIT = 9; |
| 39 | 40 |
| 40 /** | 41 /** |
| 41 * Minimal padding between user pod and virtual keyboard. | 42 * Minimal padding between user pod and virtual keyboard. |
| (...skipping 1236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1278 return; | 1279 return; |
| 1279 | 1280 |
| 1280 // Do not show pin if virtual keyboard is there. | 1281 // Do not show pin if virtual keyboard is there. |
| 1281 if (visible && Oobe.getInstance().virtualKeyboardShown) | 1282 if (visible && Oobe.getInstance().virtualKeyboardShown) |
| 1282 return; | 1283 return; |
| 1283 | 1284 |
| 1284 // Do not show pin keyboard if the pod does not have pin enabled. | 1285 // Do not show pin keyboard if the pod does not have pin enabled. |
| 1285 if (visible && !this.pinEnabled) | 1286 if (visible && !this.pinEnabled) |
| 1286 return; | 1287 return; |
| 1287 | 1288 |
| 1289 // Do not show pin keyboard if the pod is not in large style. |
| 1290 if (visible && this.getPodStyle() != UserPod.Style.LARGE) |
| 1291 return; |
| 1292 |
| 1288 var elements = this.getElementsByClassName('pin-tag'); | 1293 var elements = this.getElementsByClassName('pin-tag'); |
| 1289 for (var i = 0; i < elements.length; ++i) | 1294 for (var i = 0; i < elements.length; ++i) |
| 1290 this.updatePinClass_(elements[i], visible); | 1295 this.updatePinClass_(elements[i], visible); |
| 1291 this.updatePinClass_(this, visible); | 1296 this.updatePinClass_(this, visible); |
| 1292 | 1297 |
| 1293 // Set the focus to the input element after showing/hiding pin keyboard. | 1298 // Set the focus to the input element after showing/hiding pin keyboard. |
| 1294 this.mainInput.focus(); | 1299 this.mainInput.focus(); |
| 1295 | 1300 |
| 1296 // Change the password placeholder based on pin keyboard visibility. | 1301 // Change the password placeholder based on pin keyboard visibility. |
| 1297 this.passwordElement.placeholder = loadTimeData.getString(visible ? | 1302 this.passwordElement.placeholder = loadTimeData.getString(visible ? |
| 1298 'pinKeyboardPlaceholderPinPassword' : 'passwordHint'); | 1303 'pinKeyboardPlaceholderPinPassword' : 'passwordHint'); |
| 1299 | 1304 |
| 1305 // Adjust the vertical position based on the pin keyboard visibility. |
| 1306 var podHeight = visible ? CROS_POD_HEIGHT_WITH_PIN : CROS_POD_HEIGHT; |
| 1307 this.top = ($('pod-row').screenSize.height - podHeight) / 2; |
| 1308 |
| 1300 chrome.send('setForceDisableVirtualKeyboard', [visible]); | 1309 chrome.send('setForceDisableVirtualKeyboard', [visible]); |
| 1301 }, | 1310 }, |
| 1302 | 1311 |
| 1303 isPinShown: function() { | 1312 isPinShown: function() { |
| 1304 return this.classList.contains('pin-enabled'); | 1313 return this.classList.contains('pin-enabled'); |
| 1305 }, | 1314 }, |
| 1306 | 1315 |
| 1307 setUserPodIconType: function(userTypeClass) { | 1316 setUserPodIconType: function(userTypeClass) { |
| 1308 this.userTypeIconAreaElement.classList.add(userTypeClass); | 1317 this.userTypeIconAreaElement.classList.add(userTypeClass); |
| 1309 // TODO(wzang): Evaluate all icon types other than supervised user and | 1318 // TODO(wzang): Evaluate all icon types other than supervised user and |
| (...skipping 2162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3472 // Appends all pods to their proper parents. Small pods have parent other | 3481 // Appends all pods to their proper parents. Small pods have parent other |
| 3473 // than the pod row. The pods were all initialized with the pow row as a | 3482 // than the pod row. The pods were all initialized with the pow row as a |
| 3474 // temporary parent, which is intended to ensure that all event listeners | 3483 // temporary parent, which is intended to ensure that all event listeners |
| 3475 // work properly. If the main pod already exists, it means we are in the | 3484 // work properly. If the main pod already exists, it means we are in the |
| 3476 // process of resizing the window, then there is no need to change parents | 3485 // process of resizing the window, then there is no need to change parents |
| 3477 // of any pod. | 3486 // of any pod. |
| 3478 if (!this.mainPod_) { | 3487 if (!this.mainPod_) { |
| 3479 this.mainPod_ = this.preselectedPod; | 3488 this.mainPod_ = this.preselectedPod; |
| 3480 this.appendPodsToParents_(); | 3489 this.appendPodsToParents_(); |
| 3481 } | 3490 } |
| 3482 this.restoreInitialStates_(); | 3491 this.handleBeforePodPlacement_(); |
| 3483 this.hideEmptyArea_(); | |
| 3484 // Clear error bubbles whenever pod placement is happening, i.e., after | |
| 3485 // orientation change, showing or hiding virtual keyboard, and user | |
| 3486 // removal. | |
| 3487 Oobe.clearErrors(); | |
| 3488 | 3492 |
| 3489 if (this.isScreenShrinked_()) { | 3493 if (this.isScreenShrinked_()) { |
| 3490 // When virtual keyboard is shown, the account picker should occupy | 3494 // When virtual keyboard is shown, the account picker should occupy |
| 3491 // all the remaining screen. Screen size was already updated to exclude | 3495 // all the remaining screen. Screen size was already updated to exclude |
| 3492 // the virtual keyboard. | 3496 // the virtual keyboard. |
| 3493 this.parentNode.setPreferredSize( | 3497 this.parentNode.setPreferredSize( |
| 3494 this.screenSize.width, this.screenSize.height); | 3498 this.screenSize.width, this.screenSize.height); |
| 3495 } else { | 3499 } else { |
| 3496 // Make sure not to block the header bar when virtual keyboard is absent
. | 3500 // Make sure not to block the header bar when virtual keyboard is absent
. |
| 3497 this.parentNode.setPreferredSize( | 3501 this.parentNode.setPreferredSize( |
| 3498 Oobe.getInstance().clientAreaSize.width, | 3502 Oobe.getInstance().clientAreaSize.width, |
| 3499 Oobe.getInstance().clientAreaSize.height); | 3503 Oobe.getInstance().clientAreaSize.height); |
| 3500 } | 3504 } |
| 3501 | 3505 |
| 3502 if (pods.length == 1) { | 3506 if (pods.length == 1) { |
| 3503 this.placeSinglePod_(); | 3507 this.placeSinglePod_(); |
| 3504 } else if (pods.length == POD_ROW_LIMIT) { | 3508 } else if (pods.length == POD_ROW_LIMIT) { |
| 3505 this.placePodsOnPodRow_(); | 3509 this.placePodsOnPodRow_(); |
| 3506 } else { | 3510 } else { |
| 3507 this.placePodsOnContainer_(); | 3511 this.placePodsOnContainer_(); |
| 3508 } | 3512 } |
| 3509 Oobe.getInstance().updateScreenSize(this.parentNode); | 3513 Oobe.getInstance().updateScreenSize(this.parentNode); |
| 3510 this.updatePodNameArea_(); | 3514 this.handleAfterPodPlacement_(); |
| 3511 }, | 3515 }, |
| 3512 | 3516 |
| 3513 /** | 3517 /** |
| 3514 * Appends pods to proper parents. Called each time before pod placement. | 3518 * Appends pods to proper parents. Called each time before pod placement. |
| 3515 * @private | 3519 * @private |
| 3516 */ | 3520 */ |
| 3517 appendPodsToParents_: function() { | 3521 appendPodsToParents_: function() { |
| 3518 var pods = this.pods; | 3522 var pods = this.pods; |
| 3519 // Pod count may have changed, so the placement method may change | 3523 // Pod count may have changed, so the placement method may change |
| 3520 // accordingly. Therefore, always remove all pods from their current | 3524 // accordingly. Therefore, always remove all pods from their current |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3768 lastPod.style.paddingBottom = cr.ui.toCssPx(actualTopPadding); | 3772 lastPod.style.paddingBottom = cr.ui.toCssPx(actualTopPadding); |
| 3769 }, | 3773 }, |
| 3770 | 3774 |
| 3771 /** | 3775 /** |
| 3772 * Called each time before pod placement to ensure we start with the | 3776 * Called each time before pod placement to ensure we start with the |
| 3773 * initial state, which is ready to place only one user pod. The styles | 3777 * initial state, which is ready to place only one user pod. The styles |
| 3774 * of elements necessary for other placement methods must be set | 3778 * of elements necessary for other placement methods must be set |
| 3775 * explicitly each time. | 3779 * explicitly each time. |
| 3776 * @private | 3780 * @private |
| 3777 */ | 3781 */ |
| 3778 restoreInitialStates_: function() { | 3782 handleBeforePodPlacement_: function() { |
| 3779 this.smallPodsContainer.hidden = true; | 3783 this.smallPodsContainer.hidden = true; |
| 3780 document.querySelector('.small-pod-container-mask').hidden = true; | 3784 document.querySelector('.small-pod-container-mask').hidden = true; |
| 3781 document.querySelector('.small-pod-container-mask.rotate').hidden = true; | 3785 document.querySelector('.small-pod-container-mask.rotate').hidden = true; |
| 3782 this.smallPodsContainer.classList.remove('scroll'); | 3786 this.smallPodsContainer.classList.remove('scroll'); |
| 3783 var pods = this.pods; | 3787 var pods = this.pods; |
| 3784 for (var pod of pods) { | 3788 for (var pod of pods) { |
| 3785 // There is a chance that one of the pods has a bottom padding, so | 3789 // There is a chance that one of the pods has a bottom padding, so |
| 3786 // reset all of them to be safe. This is because if the pod was at | 3790 // reset all of them to be safe. This is because if the pod was at |
| 3787 // the last position in the scrollable container, a bottom padding | 3791 // the last position in the scrollable container, a bottom padding |
| 3788 // was added to ensure a symmetric layout. | 3792 // was added to ensure a symmetric layout. |
| 3789 pod.style.paddingBottom = cr.ui.toCssPx(0); | 3793 pod.style.paddingBottom = cr.ui.toCssPx(0); |
| 3790 // Remove the switch animation that might be added earlier. | 3794 // Remove the switch animation that might be added earlier. |
| 3791 pod.imageElement.classList.remove('switch-image-animation'); | 3795 pod.imageElement.classList.remove('switch-image-animation'); |
| 3792 pod.smallPodImageElement.classList.remove('switch-image-animation'); | 3796 pod.smallPodImageElement.classList.remove('switch-image-animation'); |
| 3793 } | 3797 } |
| 3798 this.hideEmptyArea_(); |
| 3799 // Clear error bubbles whenever pod placement is happening, i.e., after |
| 3800 // orientation change, showing or hiding virtual keyboard, and user |
| 3801 // removal. |
| 3802 Oobe.clearErrors(); |
| 3794 }, | 3803 }, |
| 3795 | 3804 |
| 3796 /** | 3805 /** |
| 3797 * Checks if the screen is in portrait mode. | 3806 * Checks if the screen is in portrait mode. |
| 3798 * @return {boolean} True if in portrait mode. | 3807 * @return {boolean} True if in portrait mode. |
| 3799 */ | 3808 */ |
| 3800 isPortraitMode_: function() { | 3809 isPortraitMode_: function() { |
| 3801 return this.screenSize.width < this.screenSize.height; | 3810 return this.screenSize.width < this.screenSize.height; |
| 3802 }, | 3811 }, |
| 3803 | 3812 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 3827 bottomMask.hidden = false; | 3836 bottomMask.hidden = false; |
| 3828 bottomMask.style.left = this.smallPodsContainer.style.left; | 3837 bottomMask.style.left = this.smallPodsContainer.style.left; |
| 3829 bottomMask.style.width = this.smallPodsContainer.style.width; | 3838 bottomMask.style.width = this.smallPodsContainer.style.width; |
| 3830 // The bottom mask should overlap with the header bar, and its z-index | 3839 // The bottom mask should overlap with the header bar, and its z-index |
| 3831 // is chosen to ensure it does not block users from using the header bar. | 3840 // is chosen to ensure it does not block users from using the header bar. |
| 3832 bottomMask.style.top = | 3841 bottomMask.style.top = |
| 3833 cr.ui.toCssPx(this.screenSize.height - SCROLL_MASK_HEIGHT); | 3842 cr.ui.toCssPx(this.screenSize.height - SCROLL_MASK_HEIGHT); |
| 3834 }, | 3843 }, |
| 3835 | 3844 |
| 3836 /** | 3845 /** |
| 3837 * Makes sure that: | 3846 * Called after pod placement and before showing the pod row. Updates |
| 3838 * 1) User name on each large pod is centered. | 3847 * elements whose style may depend on the pod placement outcome. |
| 3839 * 2) Extra long names don't exceed maximum pod width. | |
| 3840 * 3) Action box menus are either left-aligned or right-aligned with | |
| 3841 * the drop down button. | |
| 3842 * @private | 3848 * @private |
| 3843 */ | 3849 */ |
| 3844 updatePodNameArea_: function() { | 3850 handleAfterPodPlacement_: function() { |
| 3845 var pods = this.pods; | 3851 var pods = this.pods; |
| 3846 for (var pod of pods) { | 3852 for (var pod of pods) { |
| 3847 if (pods.length > POD_ROW_LIMIT && pod != this.mainPod_) | 3853 if (pods.length > POD_ROW_LIMIT && pod != this.mainPod_) |
| 3848 continue; | 3854 continue; |
| 3855 // Make sure that user name on each large pod is centered and extra |
| 3856 // long names don't exceed maximum pod width. |
| 3849 var nameArea = pod.querySelector('.name-container'); | 3857 var nameArea = pod.querySelector('.name-container'); |
| 3850 var leftMargin = (CROS_POD_WIDTH - pod.nameElement.offsetWidth) / 2; | 3858 var leftMargin = (CROS_POD_WIDTH - pod.nameElement.offsetWidth) / 2; |
| 3851 if (leftMargin > 0) | 3859 if (leftMargin > 0) |
| 3852 nameArea.style.left = cr.ui.toCssPx(leftMargin); | 3860 nameArea.style.left = cr.ui.toCssPx(leftMargin); |
| 3853 else { | 3861 else { |
| 3854 pod.nameElement.style.width = cr.ui.toCssPx(CROS_POD_WIDTH); | 3862 pod.nameElement.style.width = cr.ui.toCssPx(CROS_POD_WIDTH); |
| 3855 nameArea.style.left = cr.ui.toCssPx(0); | 3863 nameArea.style.left = cr.ui.toCssPx(0); |
| 3856 } | 3864 } |
| 3857 // Update action box menu position to ensure it doesn't overlap with | 3865 // Update action box menu position to ensure it doesn't overlap with |
| 3858 // elements outside the pod. | 3866 // elements outside the pod. |
| (...skipping 11 matching lines...) Expand all Loading... |
| 3870 actionBoxMenu.style.left = cr.ui.toCssPx( | 3878 actionBoxMenu.style.left = cr.ui.toCssPx( |
| 3871 pod.nameElement.offsetWidth + actionBoxButton.style.marginLeft); | 3879 pod.nameElement.offsetWidth + actionBoxButton.style.marginLeft); |
| 3872 actionBoxMenu.style.right = 'auto'; | 3880 actionBoxMenu.style.right = 'auto'; |
| 3873 } | 3881 } |
| 3874 // Add ripple animation. | 3882 // Add ripple animation. |
| 3875 var actionBoxRippleEffect = | 3883 var actionBoxRippleEffect = |
| 3876 pod.querySelector('.action-box-button.ripple-circle'); | 3884 pod.querySelector('.action-box-button.ripple-circle'); |
| 3877 actionBoxRippleEffect.style.left = actionBoxMenu.style.left; | 3885 actionBoxRippleEffect.style.left = actionBoxMenu.style.left; |
| 3878 actionBoxRippleEffect.style.top = | 3886 actionBoxRippleEffect.style.top = |
| 3879 cr.ui.toCssPx(actionBoxButton.style.marginTop); | 3887 cr.ui.toCssPx(actionBoxButton.style.marginTop); |
| 3888 // Adjust the vertical position of the pod if pin keyboard is shown. |
| 3889 if (pod.isPinShown() && !this.isScreenShrinked_()) |
| 3890 pod.top = (this.screenSize.height - CROS_POD_HEIGHT_WITH_PIN) / 2; |
| 3891 } |
| 3892 // Update the position of the sign-in banner if it's shown. |
| 3893 if ($('signin-banner').textContent.length != 0) { |
| 3894 var bannerContainer = $('signin-banner-container1'); |
| 3895 var BANNER_TOP_PADDING = this.isScreenShrinked_() ? 0 : 38; |
| 3896 bannerContainer.style.top = cr.ui.toCssPx( |
| 3897 this.mainPod_.top + CROS_POD_HEIGHT + BANNER_TOP_PADDING); |
| 3898 if (this.pods.length <= POD_ROW_LIMIT) { |
| 3899 bannerContainer.style.left = |
| 3900 cr.ui.toCssPx((this.screenSize.width - BANNER_MESSAGE_WIDTH) / 2); |
| 3901 } |
| 3902 else { |
| 3903 var leftPadding = |
| 3904 this.mainPod_.left - (BANNER_MESSAGE_WIDTH - CROS_POD_WIDTH) / 2; |
| 3905 bannerContainer.style.left = cr.ui.toCssPx(Math.max(leftPadding, 0)); |
| 3906 } |
| 3880 } | 3907 } |
| 3881 }, | 3908 }, |
| 3882 | 3909 |
| 3883 /** | 3910 /** |
| 3884 * Called when a small or extra small pod is clicked to trigger the switch | 3911 * Called when a small or extra small pod is clicked to trigger the switch |
| 3885 * with the main pod. | 3912 * with the main pod. |
| 3886 */ | 3913 */ |
| 3887 switchMainPod: function(pod) { | 3914 switchMainPod: function(pod) { |
| 3888 if (this.disabled) { | 3915 if (this.disabled) { |
| 3889 console.error('Cannot change main pod while sign-in UI is disabled.'); | 3916 console.error('Cannot change main pod while sign-in UI is disabled.'); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3929 // of being appended as the last child, in order to maintain the 'Tab' | 3956 // of being appended as the last child, in order to maintain the 'Tab' |
| 3930 // order. | 3957 // order. |
| 3931 parent.insertBefore(this.mainPod_, children[insert]); | 3958 parent.insertBefore(this.mainPod_, children[insert]); |
| 3932 this.mainPod_.left = left; | 3959 this.mainPod_.left = left; |
| 3933 this.mainPod_.top = top; | 3960 this.mainPod_.top = top; |
| 3934 this.mainPod_.style.paddingBottom = paddingBottom; | 3961 this.mainPod_.style.paddingBottom = paddingBottom; |
| 3935 this.mainPod_ = pod; | 3962 this.mainPod_ = pod; |
| 3936 // The new main pod should already be focused but we need a focus update | 3963 // The new main pod should already be focused but we need a focus update |
| 3937 // in order to focus on the input box. | 3964 // in order to focus on the input box. |
| 3938 this.focusPod(this.mainPod_, true /* force */); | 3965 this.focusPod(this.mainPod_, true /* force */); |
| 3939 this.updatePodNameArea_(); | 3966 this.handleAfterPodPlacement_(); |
| 3940 }, | 3967 }, |
| 3941 | 3968 |
| 3942 /** | 3969 /** |
| 3943 * Returns dimensions of screen including the header bar. | 3970 * Returns dimensions of screen including the header bar. |
| 3944 * @type {Object} | 3971 * @type {Object} |
| 3945 */ | 3972 */ |
| 3946 get screenSize() { | 3973 get screenSize() { |
| 3947 var container = $('scroll-container'); | 3974 var container = $('scroll-container'); |
| 3948 return {width: container.offsetWidth, height: container.offsetHeight}; | 3975 return {width: container.offsetWidth, height: container.offsetHeight}; |
| 3949 }, | 3976 }, |
| 3950 | 3977 |
| 3951 /** | 3978 /** |
| 3952 * Displays a banner containing |message|. If the banner is already present | 3979 * Displays a banner containing |message|. If the banner is already present |
| 3953 * this function updates the message in the banner. | 3980 * this function updates the message in the banner. |
| 3981 * The positioning of the banner is handled by handleAfterPodPlacement_() |
| 3982 * becuase it dynamically depends on the pod positions. |
| 3954 * @param {string} message Text to be displayed or empty to hide the banner. | 3983 * @param {string} message Text to be displayed or empty to hide the banner. |
| 3955 */ | 3984 */ |
| 3956 showBannerMessage: function(message) { | 3985 showBannerMessage: function(message) { |
| 3957 var banner = $('signin-banner'); | 3986 var banner = $('signin-banner'); |
| 3958 banner.textContent = message; | 3987 banner.textContent = message; |
| 3959 banner.classList.toggle('message-set', !!message); | 3988 banner.classList.toggle('message-set', !!message); |
| 3960 var bannerContainer = $('signin-banner-container1'); | |
| 3961 var BANNER_TOP_PADDING = this.isScreenShrinked_() ? 0 : 38; | |
| 3962 bannerContainer.style.top = cr.ui.toCssPx( | |
| 3963 this.mainPod_.top + CROS_POD_HEIGHT + BANNER_TOP_PADDING); | |
| 3964 if (this.pods.length <= POD_ROW_LIMIT) | |
| 3965 bannerContainer.style.left = | |
| 3966 cr.ui.toCssPx((this.screenSize.width - BANNER_MESSAGE_WIDTH) / 2); | |
| 3967 else { | |
| 3968 var leftPadding = | |
| 3969 this.mainPod_.left - (BANNER_MESSAGE_WIDTH - CROS_POD_WIDTH) / 2; | |
| 3970 bannerContainer.style.left = cr.ui.toCssPx(Math.max(leftPadding, 0)); | |
| 3971 } | |
| 3972 }, | 3989 }, |
| 3973 | 3990 |
| 3974 /** | 3991 /** |
| 3975 * Whether the pod is currently focused. | 3992 * Whether the pod is currently focused. |
| 3976 * @param {UserPod} pod Pod to check for focus. | 3993 * @param {UserPod} pod Pod to check for focus. |
| 3977 * @return {boolean} Pod focus status. | 3994 * @return {boolean} Pod focus status. |
| 3978 */ | 3995 */ |
| 3979 isFocused: function(pod) { | 3996 isFocused: function(pod) { |
| 3980 return this.focusedPod_ == pod; | 3997 return this.focusedPod_ == pod; |
| 3981 }, | 3998 }, |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4435 event, this.listeners_[event][0], this.listeners_[event][1]); | 4452 event, this.listeners_[event][0], this.listeners_[event][1]); |
| 4436 } | 4453 } |
| 4437 $('login-header-bar').buttonsTabIndex = UserPodTabOrder.HEADER_BAR; | 4454 $('login-header-bar').buttonsTabIndex = UserPodTabOrder.HEADER_BAR; |
| 4438 | 4455 |
| 4439 if (this.podPlacementPostponed_) { | 4456 if (this.podPlacementPostponed_) { |
| 4440 this.podPlacementPostponed_ = false; | 4457 this.podPlacementPostponed_ = false; |
| 4441 this.placePods_(); | 4458 this.placePods_(); |
| 4442 this.maybePreselectPod(); | 4459 this.maybePreselectPod(); |
| 4443 } | 4460 } |
| 4444 | 4461 |
| 4445 this.updatePodNameArea_(); | 4462 this.handleAfterPodPlacement_(); |
| 4446 }, | 4463 }, |
| 4447 | 4464 |
| 4448 /** | 4465 /** |
| 4449 * Called when the element is hidden. | 4466 * Called when the element is hidden. |
| 4450 */ | 4467 */ |
| 4451 handleHide: function() { | 4468 handleHide: function() { |
| 4452 for (var event in this.listeners_) { | 4469 for (var event in this.listeners_) { |
| 4453 this.ownerDocument.removeEventListener( | 4470 this.ownerDocument.removeEventListener( |
| 4454 event, this.listeners_[event][0], this.listeners_[event][1]); | 4471 event, this.listeners_[event][0], this.listeners_[event][1]); |
| 4455 } | 4472 } |
| (...skipping 27 matching lines...) Expand all Loading... |
| 4483 if (pod && pod.multiProfilesPolicyApplied) { | 4500 if (pod && pod.multiProfilesPolicyApplied) { |
| 4484 pod.userTypeBubbleElement.classList.remove('bubble-shown'); | 4501 pod.userTypeBubbleElement.classList.remove('bubble-shown'); |
| 4485 } | 4502 } |
| 4486 } | 4503 } |
| 4487 }; | 4504 }; |
| 4488 | 4505 |
| 4489 return { | 4506 return { |
| 4490 PodRow: PodRow | 4507 PodRow: PodRow |
| 4491 }; | 4508 }; |
| 4492 }); | 4509 }); |
| OLD | NEW |