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

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: update: HTML message in generated_resouces.grd changed to plain text. HTML tags are generated by JS now. 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 434 matching lines...) Expand 10 before | Expand all | Expand 10 after
1418 // Move up the menu if it overlaps shelf. 1401 // Move up the menu if it overlaps shelf.
1419 var maxHeight = cr.ui.LoginUITools.getMaxHeightBeforeShelfOverlapping( 1402 var maxHeight = cr.ui.LoginUITools.getMaxHeightBeforeShelfOverlapping(
1420 this.actionBoxMenu); 1403 this.actionBoxMenu);
1421 var actualHeight = parseInt( 1404 var actualHeight = parseInt(
1422 window.getComputedStyle(this.actionBoxMenu).height); 1405 window.getComputedStyle(this.actionBoxMenu).height);
1423 if (maxHeight < actualHeight) { 1406 if (maxHeight < actualHeight) {
1424 this.actionBoxMenu.classList.add('menu-moved-up'); 1407 this.actionBoxMenu.classList.add('menu-moved-up');
1425 this.actionBoxAreaElement.classList.add('menu-moved-up'); 1408 this.actionBoxAreaElement.classList.add('menu-moved-up');
1426 } 1409 }
1427 chrome.send('logRemoveUserWarningShown'); 1410 chrome.send('logRemoveUserWarningShown');
1411
1412 // Show extra statistics information for desktop users
1413 if (this.user.isDesktopUser) {
1414 // set a global handler for the callback
1415 window.updateRemoveWarningDialog =
1416 this.updateRemoveWarningDialog_.bind(this);
1417 chrome.send('removeUserWarningLoadStats', [this.user.profilePath]);
1418 }
1428 }, 1419 },
1429 1420
1430 /** 1421 /**
1422 * Refresh the statistics in the remove user warning dialog.
1423 * @param {string} profilePath The filepath of the URL (must be verified)
1424 * @param {Object} profileStats Statistics associated with profileURL.
1425 */
1426 updateRemoveWarningDialog_: function(profilePath, profileStats) {
1427 if (profilePath === this.user.profilePath) {
1428 // Remove class has-no-stats. The class may be set before, but that is
1429 // no longer true when this function is called.
1430 this.classList.remove('has-no-stats');
1431
1432 // Converting profileStats into id attribute by an object.
1433 var stats_id_map = {
1434 'BrowsingHistory': 'action-box-remove-user-warning-history',
1435 'Passwords': 'action-box-remove-user-warning-passwords',
1436 'Bookmarks': 'action-box-remove-user-warning-bookmarks',
1437 'Settings': 'action-box-remove-user-warning-settings',
1438 }
1439 // Load individual statistics
1440 var num_stats_loaded = 0;
1441 var total_count = 0;
1442 for (var key in profileStats) {
1443 if (stats_id_map.hasOwnProperty(key)) {
1444 var count = profileStats[key].success ? profileStats[key].count : 0;
Mike Lerman 2015/08/24 14:45:40 I'm not sure if an error in counting means we want
lwchkg 2015/08/26 14:43:12 By rolfe: (actually referring to #39 in the bug)
Mike Lerman 2015/08/27 18:13:48 Having asked the question, I prefer to implement t
1445 this.querySelector("." + stats_id_map[key]).textContent = count;
1446 num_stats_loaded++;
1447 total_count += count;
1448 }
1449 }
1450 // Write total number if all statistics are loaded.
1451 if (num_stats_loaded === Object.keys(stats_id_map).length) {
1452 elements = this.getElementsByClassName('total-count');
1453 for (var i = 0; i < elements.length; i++) {
1454 elements[i].textContent = total_count;
1455 }
1456 }
1457 }
1458 },
1459
1460 /**
1431 * Handles a click event on remove user confirmation button. 1461 * Handles a click event on remove user confirmation button.
1432 * @param {Event} e Click event. 1462 * @param {Event} e Click event.
1433 */ 1463 */
1434 handleRemoveUserConfirmationClick_: function(e) { 1464 handleRemoveUserConfirmationClick_: function(e) {
1435 if (this.isActionBoxMenuActive) { 1465 if (this.isActionBoxMenuActive) {
1436 this.isActionBoxMenuActive = false; 1466 this.isActionBoxMenuActive = false;
1437 this.removeUser(this.user); 1467 this.removeUser(this.user);
1438 e.stopPropagation(); 1468 e.stopPropagation();
1439 } 1469 }
1440 }, 1470 },
(...skipping 502 matching lines...) Expand 10 before | Expand all | Expand 10 after
1943 1973
1944 /** @override */ 1974 /** @override */
1945 update: function() { 1975 update: function() {
1946 this.imageElement.src = this.user.userImage; 1976 this.imageElement.src = this.user.userImage;
1947 this.nameElement.textContent = this.user.displayName; 1977 this.nameElement.textContent = this.user.displayName;
1948 this.reauthNameHintElement.textContent = this.user.displayName; 1978 this.reauthNameHintElement.textContent = this.user.displayName;
1949 1979
1950 var isLockedUser = this.user.needsSignin; 1980 var isLockedUser = this.user.needsSignin;
1951 var isLegacySupervisedUser = this.user.legacySupervisedUser; 1981 var isLegacySupervisedUser = this.user.legacySupervisedUser;
1952 var isChildUser = this.user.childUser; 1982 var isChildUser = this.user.childUser;
1983 var isSyncedUser = this.user.emailAddress !== "";
1984 var isProfileLoaded = this.user.isProfileLoaded;
1953 this.classList.toggle('locked', isLockedUser); 1985 this.classList.toggle('locked', isLockedUser);
1954 this.classList.toggle('legacy-supervised', isLegacySupervisedUser); 1986 this.classList.toggle('legacy-supervised', isLegacySupervisedUser);
1955 this.classList.toggle('child', isChildUser); 1987 this.classList.toggle('child', isChildUser);
1988 this.classList.toggle('synced', isSyncedUser);
1989 this.classList.toggle('has-no-stats', !isProfileLoaded);
1956 1990
1957 if (this.isAuthTypeUserClick) 1991 if (this.isAuthTypeUserClick)
1958 this.passwordLabelElement.textContent = this.authValue; 1992 this.passwordLabelElement.textContent = this.authValue;
1959 1993
1960 this.actionBoxRemoveUserWarningTextElement.hidden = 1994 // Add localized messages where $1 will be replaced with
1961 isLegacySupervisedUser; 1995 // <span class="total-count"></span>. Done only once.
1962 this.actionBoxRemoveLegacySupervisedUserWarningTextElement.hidden = 1996 messagesToAdd = [
1963 !isLegacySupervisedUser; 1997 {
1998 selector: '.action-box-remove-user-warning-text-nonsync',
1999 messageID: 'removeUserWarningTextNonSync'
2000 },
2001 {
2002 selector: '.action-box-remove-user-warning-text-sync',
2003 messageID: 'removeUserWarningTextSync'
2004 }
2005 ];
2006 var waitingMessage =
2007 loadTimeData.getString('removeUserWarningTextCalculating');
2008 for (var i = 0; i < messagesToAdd.length; i++) {
2009 var element = this.querySelector(messagesToAdd[i].selector);
2010 if (element.childElementCount)
2011 continue;
2012
2013 var message = loadTimeData.getString(messagesToAdd[i].messageID);
2014 messageParts = message.split('$1');
2015 numParts = messageParts.length;
2016 for (var j = 0; j < numParts; j++) {
2017 element.appendChild(document.createTextNode(messageParts[j]));
2018 if (j < numParts - 1) {
2019 var elementToAdd = document.createElement('span');
2020 elementToAdd.classList.add('total-count');
2021 elementToAdd.textContent = waitingMessage;
2022 element.appendChild(elementToAdd);
2023 }
2024 }
2025 }
1964 2026
1965 this.passwordElement.setAttribute('aria-label', loadTimeData.getStringF( 2027 this.passwordElement.setAttribute('aria-label', loadTimeData.getStringF(
1966 'passwordFieldAccessibleName', this.user_.emailAddress)); 2028 'passwordFieldAccessibleName', this.user_.emailAddress));
1967 2029
1968 UserPod.prototype.updateActionBoxArea.call(this); 2030 UserPod.prototype.updateActionBoxArea.call(this);
1969 }, 2031 },
1970 2032
1971 /** @override */ 2033 /** @override */
1972 activate: function(e) { 2034 activate: function(e) {
1973 if (!this.user.needsSignin) { 2035 if (!this.user.needsSignin) {
(...skipping 1199 matching lines...) Expand 10 before | Expand all | Expand 10 after
3173 if (pod && pod.multiProfilesPolicyApplied) { 3235 if (pod && pod.multiProfilesPolicyApplied) {
3174 pod.userTypeBubbleElement.classList.remove('bubble-shown'); 3236 pod.userTypeBubbleElement.classList.remove('bubble-shown');
3175 } 3237 }
3176 } 3238 }
3177 }; 3239 };
3178 3240
3179 return { 3241 return {
3180 PodRow: PodRow 3242 PodRow: PodRow
3181 }; 3243 };
3182 }); 3244 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698