Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(392)

Side by Side Diff: ui/login/account_picker/user_pod_row.js

Issue 1248613003: Issue 501916 : Add data type counts to profile deletion flow (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: updated chromeos empty "localized" strings in signin_screen_handler.cc Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 936 matching lines...) Expand 10 before | Expand all | Expand 10 after
947 947
948 /** 948 /**
949 * Gets action box menu, remove user command item div. 949 * Gets action box menu, remove user command item div.
950 * @type {!HTMLInputElement} 950 * @type {!HTMLInputElement}
951 */ 951 */
952 get actionBoxMenuRemoveElement() { 952 get actionBoxMenuRemoveElement() {
953 return this.querySelector('.action-box-menu-remove'); 953 return this.querySelector('.action-box-menu-remove');
954 }, 954 },
955 955
956 /** 956 /**
957 * Gets action box menu, remove user warning text div.
958 * @type {!HTMLInputElement}
959 */
960 get actionBoxRemoveUserWarningTextElement() {
961 return this.querySelector('.action-box-remove-user-warning-text');
962 },
963
964 /**
965 * Gets action box menu, remove legacy supervised user warning text div.
966 * @type {!HTMLInputElement}
967 */
968 get actionBoxRemoveLegacySupervisedUserWarningTextElement() {
969 return this.querySelector(
970 '.action-box-remove-legacy-supervised-user-warning-text');
971 },
972
973 /**
974 * Gets action box menu, remove user command item div. 957 * Gets action box menu, remove user command item div.
975 * @type {!HTMLInputElement} 958 * @type {!HTMLInputElement}
976 */ 959 */
977 get actionBoxRemoveUserWarningElement() { 960 get actionBoxRemoveUserWarningElement() {
978 return this.querySelector('.action-box-remove-user-warning'); 961 return this.querySelector('.action-box-remove-user-warning');
979 }, 962 },
980 963
981 /** 964 /**
982 * Gets action box menu, remove user command item div. 965 * Gets action box menu, remove user command item div.
983 * @type {!HTMLInputElement} 966 * @type {!HTMLInputElement}
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
1403 return; 1386 return;
1404 } 1387 }
1405 if (this.isActionBoxMenuActive) 1388 if (this.isActionBoxMenuActive)
1406 chrome.send('removeUser', [this.user.username]); 1389 chrome.send('removeUser', [this.user.username]);
1407 }, 1390 },
1408 1391
1409 /** 1392 /**
1410 * Shows remove user warning. Used for legacy supervised users on CrOS, and 1393 * Shows remove user warning. Used for legacy supervised users on CrOS, and
1411 * for all users on desktop. 1394 * for all users on desktop.
1412 */ 1395 */
1413 showRemoveWarning_: function() { 1396 showRemoveWarning_: function() {
lwchkg 2015/08/06 04:58:23 I need some help to test for the "legacy supervise
Mike Lerman 2015/08/06 17:38:27 Be signed in to your profile. Then: Chrome Setting
1397 // Temporary add/remove this class to choose the shorter dialog. The
1398 // problems of switching from a shorter dialog to a longer dialog is
1399 // visually less problematic than otherwise.
1400 // TODO(lwchkg): Show the correct dialog in one pass.
1401 this.classList.toggle('has-no-stats', this.classList.contains('synced'));
lwchkg 2015/08/06 04:58:23 I've verified that this hack does not work, so we
Mike Lerman 2015/08/06 17:38:27 Add something to UserManagerScreenHandler::SendUse
1402
1414 this.actionBoxMenuRemoveElement.hidden = true; 1403 this.actionBoxMenuRemoveElement.hidden = true;
1415 this.actionBoxRemoveUserWarningElement.hidden = false; 1404 this.actionBoxRemoveUserWarningElement.hidden = false;
1416 this.actionBoxRemoveUserWarningButtonElement.focus(); 1405 this.actionBoxRemoveUserWarningButtonElement.focus();
1417 1406
1418 // Move up the menu if it overlaps shelf. 1407 // Move up the menu if it overlaps shelf.
1419 var maxHeight = cr.ui.LoginUITools.getMaxHeightBeforeShelfOverlapping( 1408 var maxHeight = cr.ui.LoginUITools.getMaxHeightBeforeShelfOverlapping(
1420 this.actionBoxMenu); 1409 this.actionBoxMenu);
1421 var actualHeight = parseInt( 1410 var actualHeight = parseInt(
1422 window.getComputedStyle(this.actionBoxMenu).height); 1411 window.getComputedStyle(this.actionBoxMenu).height);
1423 if (maxHeight < actualHeight) { 1412 if (maxHeight < actualHeight) {
1424 this.actionBoxMenu.classList.add('menu-moved-up'); 1413 this.actionBoxMenu.classList.add('menu-moved-up');
1425 this.actionBoxAreaElement.classList.add('menu-moved-up'); 1414 this.actionBoxAreaElement.classList.add('menu-moved-up');
1426 } 1415 }
1427 chrome.send('logRemoveUserWarningShown'); 1416 chrome.send('logRemoveUserWarningShown');
1417
1418 // Show extra statistics information for desktop users
1419 if (this.user.isDesktopUser) {
1420 // set a global handler for the callback
1421 window.updateRemoveWarningDialog =
1422 this.updateRemoveWarningDialog_.bind(this);
1423 window.updateRemoveWarningDialogHasNoStats =
1424 this.updateRemoveWarningDialogHasNoStats_.bind(this);
1425 chrome.send('removeUserWarningLoadStats', [this.user.profilePath]);
1426 }
1428 }, 1427 },
1429 1428
1430 /** 1429 /**
1430 * Refresh the statistics in the remove user warning dialog.
1431 * @param {string} profilePath The filepath of the URL (must be verified)
1432 * @param {Object} profileStats Statistics associated with profileURL.
1433 */
1434 updateRemoveWarningDialog_: function(profilePath, profileStats) {
1435 if (profilePath === this.user.profilePath) {
1436 // Converting profileStats into id attribute by an object.
1437 var stats_id_map = {
1438 'BrowsingHistory': 'action-box-remove-user-warning-history',
1439 'Passwords': 'action-box-remove-user-warning-passwords',
1440 'Bookmarks': 'action-box-remove-user-warning-bookmarks',
1441 'Settings': 'action-box-remove-user-warning-settings',
1442 }
1443 // Load individual statistics
1444 var num_stats_loaded = 0;
1445 var total_count = 0;
1446 for (var key in profileStats) {
1447 if (stats_id_map.hasOwnProperty(key)) {
1448 this.querySelector("." + stats_id_map[key]).textContent
1449 = profileStats[key];
1450 num_stats_loaded++;
1451 total_count += profileStats[key];
1452 }
1453 }
1454 // Write total number if all statistics are loaded.
1455 if (num_stats_loaded === Object.keys(stats_id_map).length) {
1456 elements = this.getElementsByClassName('total-count');
1457 for (var i = 0; i < elements.length; i++) {
1458 elements[i].textContent = total_count;
1459 }
1460 }
1461 }
1462 },
1463
1464 /**
1465 * Select the dialog the statistics in the remove user warning dialog.
1466 * @param {string} profilePath The filepath of the URL (must be verified)
1467 * @param {boolean} hasNoStats Whether the profile has no statistics
1468 * available.
1469 */
1470 updateRemoveWarningDialogHasNoStats_: function(profilePath, hasNoStats) {
1471 if (profilePath === this.user.profilePath) {
1472 this.classList.toggle('has-no-stats', hasNoStats);
1473 }
1474 },
1475
1476 /**
1431 * Handles a click event on remove user confirmation button. 1477 * Handles a click event on remove user confirmation button.
1432 * @param {Event} e Click event. 1478 * @param {Event} e Click event.
1433 */ 1479 */
1434 handleRemoveUserConfirmationClick_: function(e) { 1480 handleRemoveUserConfirmationClick_: function(e) {
1435 if (this.isActionBoxMenuActive) { 1481 if (this.isActionBoxMenuActive) {
1436 this.isActionBoxMenuActive = false; 1482 this.isActionBoxMenuActive = false;
1437 this.removeUser(this.user); 1483 this.removeUser(this.user);
1438 e.stopPropagation(); 1484 e.stopPropagation();
1439 } 1485 }
1440 }, 1486 },
(...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after
1939 1985
1940 /** @override */ 1986 /** @override */
1941 update: function() { 1987 update: function() {
1942 this.imageElement.src = this.user.userImage; 1988 this.imageElement.src = this.user.userImage;
1943 this.nameElement.textContent = this.user.displayName; 1989 this.nameElement.textContent = this.user.displayName;
1944 this.reauthNameHintElement.textContent = this.user.displayName; 1990 this.reauthNameHintElement.textContent = this.user.displayName;
1945 1991
1946 var isLockedUser = this.user.needsSignin; 1992 var isLockedUser = this.user.needsSignin;
1947 var isLegacySupervisedUser = this.user.legacySupervisedUser; 1993 var isLegacySupervisedUser = this.user.legacySupervisedUser;
1948 var isChildUser = this.user.childUser; 1994 var isChildUser = this.user.childUser;
1995 var isSyncedUser = this.user.emailAddress !== "";
1949 this.classList.toggle('locked', isLockedUser); 1996 this.classList.toggle('locked', isLockedUser);
1950 this.classList.toggle('legacy-supervised', isLegacySupervisedUser); 1997 this.classList.toggle('legacy-supervised', isLegacySupervisedUser);
1951 this.classList.toggle('child', isChildUser); 1998 this.classList.toggle('child', isChildUser);
1999 this.classList.toggle('synced', isSyncedUser);
1952 2000
1953 if (this.isAuthTypeUserClick) 2001 if (this.isAuthTypeUserClick)
1954 this.passwordLabelElement.textContent = this.authValue; 2002 this.passwordLabelElement.textContent = this.authValue;
1955 2003
1956 this.actionBoxRemoveUserWarningTextElement.hidden = 2004 // Convert HTML textContent into HTML. Done only once.
1957 isLegacySupervisedUser; 2005 var tag =
1958 this.actionBoxRemoveLegacySupervisedUserWarningTextElement.hidden = 2006 this.querySelector('.action-box-remove-user-warning-text-nonsync');
1959 !isLegacySupervisedUser; 2007 if (!tag.childElementCount) {
2008 this.querySelector('.action-box-remove-user-warning-text-nonsync')
2009 .innerHTML = loadTimeData.getString(
2010 'removeUserWarningTextNonSync');
2011 this.querySelector('.action-box-remove-user-warning-text-sync')
2012 .innerHTML = loadTimeData.getString(
2013 'removeUserWarningTextSync');
2014 this.querySelector('.action-box-remove-user-warning-manage-link-sync')
2015 .innerHTML = loadTimeData.getString(
2016 'removeUserWarningManageLinkSync');
2017 }
1960 2018
1961 this.passwordElement.setAttribute('aria-label', loadTimeData.getStringF( 2019 this.passwordElement.setAttribute('aria-label', loadTimeData.getStringF(
1962 'passwordFieldAccessibleName', this.user_.emailAddress)); 2020 'passwordFieldAccessibleName', this.user_.emailAddress));
1963 2021
1964 UserPod.prototype.updateActionBoxArea.call(this); 2022 UserPod.prototype.updateActionBoxArea.call(this);
1965 }, 2023 },
1966 2024
1967 /** @override */ 2025 /** @override */
1968 focusInput: function() { 2026 focusInput: function() {
1969 // Move tabIndex from the whole pod to the main input. 2027 // Move tabIndex from the whole pod to the main input.
(...skipping 1204 matching lines...) Expand 10 before | Expand all | Expand 10 after
3174 if (pod && pod.multiProfilesPolicyApplied) { 3232 if (pod && pod.multiProfilesPolicyApplied) {
3175 pod.userTypeBubbleElement.classList.remove('bubble-shown'); 3233 pod.userTypeBubbleElement.classList.remove('bubble-shown');
3176 } 3234 }
3177 } 3235 }
3178 }; 3236 };
3179 3237
3180 return { 3238 return {
3181 PodRow: PodRow 3239 PodRow: PodRow
3182 }; 3240 };
3183 }); 3241 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698