| 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 691 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 702 | 702 |
| 703 /** @override */ | 703 /** @override */ |
| 704 decorate: function() { | 704 decorate: function() { |
| 705 this.tabIndex = UserPodTabOrder.POD_INPUT; | 705 this.tabIndex = UserPodTabOrder.POD_INPUT; |
| 706 this.actionBoxAreaElement.tabIndex = UserPodTabOrder.ACTION_BOX; | 706 this.actionBoxAreaElement.tabIndex = UserPodTabOrder.ACTION_BOX; |
| 707 | 707 |
| 708 this.addEventListener('keydown', this.handlePodKeyDown_.bind(this)); | 708 this.addEventListener('keydown', this.handlePodKeyDown_.bind(this)); |
| 709 this.addEventListener('click', this.handleClickOnPod_.bind(this)); | 709 this.addEventListener('click', this.handleClickOnPod_.bind(this)); |
| 710 this.addEventListener('mousedown', this.handlePodMouseDown_.bind(this)); | 710 this.addEventListener('mousedown', this.handlePodMouseDown_.bind(this)); |
| 711 | 711 |
| 712 this.signinButtonElement.addEventListener('click', | 712 this.reauthWarningElement.addEventListener('click', |
| 713 this.activate.bind(this)); | 713 this.activate.bind(this)); |
| 714 | 714 |
| 715 this.actionBoxAreaElement.addEventListener('mousedown', | 715 this.actionBoxAreaElement.addEventListener('mousedown', |
| 716 stopEventPropagation); | 716 stopEventPropagation); |
| 717 this.actionBoxAreaElement.addEventListener('click', | 717 this.actionBoxAreaElement.addEventListener('click', |
| 718 this.handleActionAreaButtonClick_.bind(this)); | 718 this.handleActionAreaButtonClick_.bind(this)); |
| 719 this.actionBoxAreaElement.addEventListener('keydown', | 719 this.actionBoxAreaElement.addEventListener('keydown', |
| 720 this.handleActionAreaButtonKeyDown_.bind(this)); | 720 this.handleActionAreaButtonKeyDown_.bind(this)); |
| 721 | 721 |
| 722 this.actionBoxMenuRemoveElement.addEventListener('click', | 722 this.actionBoxMenuRemoveElement.addEventListener('click', |
| 723 this.handleRemoveCommandClick_.bind(this)); | 723 this.handleRemoveCommandClick_.bind(this)); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 826 | 826 |
| 827 /** | 827 /** |
| 828 * Gets name element. | 828 * Gets name element. |
| 829 * @type {!HTMLDivElement} | 829 * @type {!HTMLDivElement} |
| 830 */ | 830 */ |
| 831 get nameElement() { | 831 get nameElement() { |
| 832 return this.querySelector('.name'); | 832 return this.querySelector('.name'); |
| 833 }, | 833 }, |
| 834 | 834 |
| 835 /** | 835 /** |
| 836 * Gets reauth name hint element. |
| 837 * @type {!HTMLDivElement} |
| 838 */ |
| 839 get reauthNameHintElement() { |
| 840 return this.querySelector('.reauth-name-hint'); |
| 841 }, |
| 842 |
| 843 /** |
| 836 * Gets the container holding the password field. | 844 * Gets the container holding the password field. |
| 837 * @type {!HTMLInputElement} | 845 * @type {!HTMLInputElement} |
| 838 */ | 846 */ |
| 839 get passwordEntryContainerElement() { | 847 get passwordEntryContainerElement() { |
| 840 return this.querySelector('.password-entry-container'); | 848 return this.querySelector('.password-entry-container'); |
| 841 }, | 849 }, |
| 842 | 850 |
| 843 /** | 851 /** |
| 844 * Gets password field. | 852 * Gets password field. |
| 845 * @type {!HTMLInputElement} | 853 * @type {!HTMLInputElement} |
| 846 */ | 854 */ |
| 847 get passwordElement() { | 855 get passwordElement() { |
| 848 return this.querySelector('.password'); | 856 return this.querySelector('.password'); |
| 849 }, | 857 }, |
| 850 | 858 |
| 851 /** | 859 /** |
| 852 * Gets the password label, which is used to show a message where the | 860 * Gets the password label, which is used to show a message where the |
| 853 * password field is normally. | 861 * password field is normally. |
| 854 * @type {!HTMLInputElement} | 862 * @type {!HTMLInputElement} |
| 855 */ | 863 */ |
| 856 get passwordLabelElement() { | 864 get passwordLabelElement() { |
| 857 return this.querySelector('.password-label'); | 865 return this.querySelector('.password-label'); |
| 858 }, | 866 }, |
| 859 | 867 |
| 860 /** | 868 /** |
| 861 * Gets user sign in button. | 869 * Gets user online sign in hint element. |
| 862 * @type {!HTMLButtonElement} | 870 * @type {!HTMLDivElement} |
| 863 */ | 871 */ |
| 864 get signinButtonElement() { | 872 get reauthWarningElement() { |
| 865 return this.querySelector('.signin-button'); | 873 return this.querySelector('.reauth-hint-container'); |
| 866 }, | 874 }, |
| 867 | 875 |
| 868 /** | 876 /** |
| 869 * Gets the container holding the launch app button. | 877 * Gets the container holding the launch app button. |
| 870 * @type {!HTMLButtonElement} | 878 * @type {!HTMLButtonElement} |
| 871 */ | 879 */ |
| 872 get launchAppButtonContainerElement() { | 880 get launchAppButtonContainerElement() { |
| 873 return this.querySelector('.launch-app-button-container'); | 881 return this.querySelector('.launch-app-button-container'); |
| 874 }, | 882 }, |
| 875 | 883 |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 988 }, | 996 }, |
| 989 | 997 |
| 990 /** | 998 /** |
| 991 * Updates the user pod element. | 999 * Updates the user pod element. |
| 992 */ | 1000 */ |
| 993 update: function() { | 1001 update: function() { |
| 994 this.imageElement.src = 'chrome://userimage/' + this.user.username + | 1002 this.imageElement.src = 'chrome://userimage/' + this.user.username + |
| 995 '?id=' + UserPod.userImageSalt_[this.user.username]; | 1003 '?id=' + UserPod.userImageSalt_[this.user.username]; |
| 996 | 1004 |
| 997 this.nameElement.textContent = this.user_.displayName; | 1005 this.nameElement.textContent = this.user_.displayName; |
| 1006 this.reauthNameHintElement.textContent = this.user_.displayName; |
| 998 this.classList.toggle('signed-in', this.user_.signedIn); | 1007 this.classList.toggle('signed-in', this.user_.signedIn); |
| 999 | 1008 |
| 1000 if (this.isAuthTypeUserClick) | 1009 if (this.isAuthTypeUserClick) |
| 1001 this.passwordLabelElement.textContent = this.authValue; | 1010 this.passwordLabelElement.textContent = this.authValue; |
| 1002 | 1011 |
| 1003 this.updateActionBoxArea(); | 1012 this.updateActionBoxArea(); |
| 1004 | 1013 |
| 1005 this.passwordElement.setAttribute('aria-label', loadTimeData.getStringF( | 1014 this.passwordElement.setAttribute('aria-label', loadTimeData.getStringF( |
| 1006 'passwordFieldAccessibleName', this.user_.emailAddress)); | 1015 'passwordFieldAccessibleName', this.user_.emailAddress)); |
| 1007 | 1016 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1086 }, | 1095 }, |
| 1087 | 1096 |
| 1088 /** | 1097 /** |
| 1089 * Gets main input element. | 1098 * Gets main input element. |
| 1090 * @type {(HTMLButtonElement|HTMLInputElement)} | 1099 * @type {(HTMLButtonElement|HTMLInputElement)} |
| 1091 */ | 1100 */ |
| 1092 get mainInput() { | 1101 get mainInput() { |
| 1093 if (this.isAuthTypePassword) { | 1102 if (this.isAuthTypePassword) { |
| 1094 return this.passwordElement; | 1103 return this.passwordElement; |
| 1095 } else if (this.isAuthTypeOnlineSignIn) { | 1104 } else if (this.isAuthTypeOnlineSignIn) { |
| 1096 return this.signinButtonElement; | 1105 return this; |
| 1097 } else if (this.isAuthTypeUserClick) { | 1106 } else if (this.isAuthTypeUserClick) { |
| 1098 return this.passwordLabelElement; | 1107 return this.passwordLabelElement; |
| 1099 } | 1108 } |
| 1100 }, | 1109 }, |
| 1101 | 1110 |
| 1102 /** | 1111 /** |
| 1103 * Whether action box button is in active state. | 1112 * Whether action box button is in active state. |
| 1104 * @type {boolean} | 1113 * @type {boolean} |
| 1105 */ | 1114 */ |
| 1106 get isActionBoxMenuActive() { | 1115 get isActionBoxMenuActive() { |
| (...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1272 this.parentNode.focusPod(this); | 1281 this.parentNode.focusPod(this); |
| 1273 | 1282 |
| 1274 var error = document.createElement('div'); | 1283 var error = document.createElement('div'); |
| 1275 var messageDiv = document.createElement('div'); | 1284 var messageDiv = document.createElement('div'); |
| 1276 messageDiv.className = 'error-message-bubble'; | 1285 messageDiv.className = 'error-message-bubble'; |
| 1277 messageDiv.textContent = | 1286 messageDiv.textContent = |
| 1278 loadTimeData.getString('supervisedUserExpiredTokenWarning'); | 1287 loadTimeData.getString('supervisedUserExpiredTokenWarning'); |
| 1279 error.appendChild(messageDiv); | 1288 error.appendChild(messageDiv); |
| 1280 | 1289 |
| 1281 $('bubble').showContentForElement( | 1290 $('bubble').showContentForElement( |
| 1282 this.signinButtonElement, | 1291 this.reauthWarningElement, |
| 1283 cr.ui.Bubble.Attachment.TOP, | 1292 cr.ui.Bubble.Attachment.TOP, |
| 1284 error, | 1293 error, |
| 1285 this.signinButtonElement.offsetWidth / 2, | 1294 this.reauthWarningElement.offsetWidth / 2, |
| 1286 4); | 1295 4); |
| 1287 // Move warning bubble up if it overlaps the shelf. | 1296 // Move warning bubble up if it overlaps the shelf. |
| 1288 var maxHeight = | 1297 var maxHeight = |
| 1289 cr.ui.LoginUITools.getMaxHeightBeforeShelfOverlapping($('bubble')); | 1298 cr.ui.LoginUITools.getMaxHeightBeforeShelfOverlapping($('bubble')); |
| 1290 if (maxHeight < $('bubble').offsetHeight) { | 1299 if (maxHeight < $('bubble').offsetHeight) { |
| 1291 $('bubble').showContentForElement( | 1300 $('bubble').showContentForElement( |
| 1292 this.signinButtonElement, | 1301 this.reauthWarningElement, |
| 1293 cr.ui.Bubble.Attachment.BOTTOM, | 1302 cr.ui.Bubble.Attachment.BOTTOM, |
| 1294 error, | 1303 error, |
| 1295 this.signinButtonElement.offsetWidth / 2, | 1304 this.reauthWarningElement.offsetWidth / 2, |
| 1296 4); | 1305 4); |
| 1297 } | 1306 } |
| 1298 }, | 1307 }, |
| 1299 | 1308 |
| 1300 /** | 1309 /** |
| 1301 * Shows signin UI for this user. | 1310 * Shows signin UI for this user. |
| 1302 */ | 1311 */ |
| 1303 showSigninUI: function() { | 1312 showSigninUI: function() { |
| 1304 if (this.user.legacySupervisedUser && !this.user.isDesktopUser) { | 1313 if (this.user.legacySupervisedUser && !this.user.isDesktopUser) { |
| 1305 this.showSupervisedUserSigninWarning(); | 1314 this.showSupervisedUserSigninWarning(); |
| (...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1925 if (this.user.needsSignin) | 1934 if (this.user.needsSignin) |
| 1926 return this.passwordElement; | 1935 return this.passwordElement; |
| 1927 else | 1936 else |
| 1928 return this.nameElement; | 1937 return this.nameElement; |
| 1929 }, | 1938 }, |
| 1930 | 1939 |
| 1931 /** @override */ | 1940 /** @override */ |
| 1932 update: function() { | 1941 update: function() { |
| 1933 this.imageElement.src = this.user.userImage; | 1942 this.imageElement.src = this.user.userImage; |
| 1934 this.nameElement.textContent = this.user.displayName; | 1943 this.nameElement.textContent = this.user.displayName; |
| 1944 this.reauthNameHintElement.textContent = this.user.displayName; |
| 1935 | 1945 |
| 1936 var isLockedUser = this.user.needsSignin; | 1946 var isLockedUser = this.user.needsSignin; |
| 1937 var isLegacySupervisedUser = this.user.legacySupervisedUser; | 1947 var isLegacySupervisedUser = this.user.legacySupervisedUser; |
| 1938 var isChildUser = this.user.childUser; | 1948 var isChildUser = this.user.childUser; |
| 1939 this.classList.toggle('locked', isLockedUser); | 1949 this.classList.toggle('locked', isLockedUser); |
| 1940 this.classList.toggle('legacy-supervised', isLegacySupervisedUser); | 1950 this.classList.toggle('legacy-supervised', isLegacySupervisedUser); |
| 1941 this.classList.toggle('child', isChildUser); | 1951 this.classList.toggle('child', isChildUser); |
| 1942 | 1952 |
| 1943 if (this.isAuthTypeUserClick) | 1953 if (this.isAuthTypeUserClick) |
| 1944 this.passwordLabelElement.textContent = this.authValue; | 1954 this.passwordLabelElement.textContent = this.authValue; |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2017 }, | 2027 }, |
| 2018 | 2028 |
| 2019 /** @override */ | 2029 /** @override */ |
| 2020 update: function() { | 2030 update: function() { |
| 2021 this.imageElement.src = this.user.iconUrl; | 2031 this.imageElement.src = this.user.iconUrl; |
| 2022 this.imageElement.alt = this.user.label; | 2032 this.imageElement.alt = this.user.label; |
| 2023 this.imageElement.title = this.user.label; | 2033 this.imageElement.title = this.user.label; |
| 2024 this.passwordEntryContainerElement.hidden = true; | 2034 this.passwordEntryContainerElement.hidden = true; |
| 2025 this.launchAppButtonContainerElement.hidden = false; | 2035 this.launchAppButtonContainerElement.hidden = false; |
| 2026 this.nameElement.textContent = this.user.label; | 2036 this.nameElement.textContent = this.user.label; |
| 2037 this.reauthNameHintElement.textContent = this.user.label; |
| 2027 | 2038 |
| 2028 UserPod.prototype.updateActionBoxArea.call(this); | 2039 UserPod.prototype.updateActionBoxArea.call(this); |
| 2029 UserPod.prototype.customizeUserPodPerUserType.call(this); | 2040 UserPod.prototype.customizeUserPodPerUserType.call(this); |
| 2030 }, | 2041 }, |
| 2031 | 2042 |
| 2032 /** @override */ | 2043 /** @override */ |
| 2033 get mainInput() { | 2044 get mainInput() { |
| 2034 return this.launchAppButtonElement; | 2045 return this.launchAppButtonElement; |
| 2035 }, | 2046 }, |
| 2036 | 2047 |
| (...skipping 1111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3148 if (pod && pod.multiProfilesPolicyApplied) { | 3159 if (pod && pod.multiProfilesPolicyApplied) { |
| 3149 pod.userTypeBubbleElement.classList.remove('bubble-shown'); | 3160 pod.userTypeBubbleElement.classList.remove('bubble-shown'); |
| 3150 } | 3161 } |
| 3151 } | 3162 } |
| 3152 }; | 3163 }; |
| 3153 | 3164 |
| 3154 return { | 3165 return { |
| 3155 PodRow: PodRow | 3166 PodRow: PodRow |
| 3156 }; | 3167 }; |
| 3157 }); | 3168 }); |
| OLD | NEW |