Skip to content

Commit 9fbff66

Browse files
author
Martin Krulis
committed
Updating appearance of user names (both on User page and Users lists).
1 parent ff6eec8 commit 9fbff66

File tree

6 files changed

+30
-26
lines changed

6 files changed

+30
-26
lines changed

src/components/Users/UsersListItem/UsersListItem.js

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { OverlayTrigger, Tooltip } from 'react-bootstrap';
55

66
import UsersName from '../../../components/Users/UsersName';
77
import DateTime from '../../widgets/DateTime';
8-
import { BanIcon, LoadingIcon } from '../../icons';
8+
import { LoadingIcon } from '../../icons';
99
import { UserRoleIcon } from '../../helpers/usersRoles';
1010
import { safeGet } from '../../../helpers/common';
1111

@@ -20,20 +20,6 @@ const UsersListItem = ({ user, emailColumn = false, createdAtColumn = false, cre
2020
<tr>
2121
<td>
2222
{user.privateData && <UserRoleIcon showTooltip tooltipId={`role-${user.id}`} role={user.privateData.role} />}
23-
{user.privateData && !user.privateData.isAllowed && (
24-
<OverlayTrigger
25-
placement="bottom"
26-
overlay={
27-
<Tooltip id={`ban-${user.id}`}>
28-
<FormattedMessage
29-
id="app.userList.userDeactivated"
30-
defaultMessage="The user account was deactivated. The user may not sign in."
31-
/>
32-
</Tooltip>
33-
}>
34-
<BanIcon gapLeft />
35-
</OverlayTrigger>
36-
)}
3723
</td>
3824
<td>
3925
<UsersName

src/components/Users/UsersName/UsersName.js

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,20 @@
11
import React from 'react';
22
import PropTypes from 'prop-types';
33
import { Link } from 'react-router-dom';
4-
import { OverlayTrigger, Popover } from 'react-bootstrap';
4+
import { OverlayTrigger, Popover, Tooltip } from 'react-bootstrap';
55
import { FormattedMessage } from 'react-intl';
66
import { defaultMemoize } from 'reselect';
77

88
import AvatarContainer from '../../../containers/AvatarContainer/AvatarContainer';
99
import NotVerified from './NotVerified';
10-
import Icon, { MailIcon } from '../../icons';
10+
import Icon, { MailIcon, BanIcon } from '../../icons';
1111
import withLinks from '../../../helpers/withLinks';
1212

1313
import styles from './usersName.less';
1414

1515
const userNameStyle = defaultMemoize((size, large) => ({
1616
lineHeight: `${size}px`,
1717
fontSize: large ? size / 2 : 'inherit',
18-
marginLeft: large ? 10 : 5,
1918
}));
2019

2120
const UsersName = ({
@@ -40,11 +39,29 @@ const UsersName = ({
4039
const externalIds = privateData && privateData.externalIds;
4140
return (
4241
<span className={styles.wrapper}>
43-
<span className={styles.avatar}>
44-
<AvatarContainer avatarUrl={avatarUrl} fullName={fullName} firstName={firstName} size={size} />
45-
</span>
42+
{(!privateData || privateData.isAllowed) && (
43+
<span className={styles.avatar}>
44+
<AvatarContainer avatarUrl={avatarUrl} fullName={fullName} firstName={firstName} size={size} />
45+
</span>
46+
)}
4647
<span style={userNameStyle(size, large)}>
48+
{privateData && !privateData.isAllowed && (
49+
<OverlayTrigger
50+
placement="bottom"
51+
overlay={
52+
<Tooltip id={`ban-${id}`}>
53+
<FormattedMessage
54+
id="app.userName.userDeactivated"
55+
defaultMessage="The user account was deactivated. The user may not sign in."
56+
/>
57+
</Tooltip>
58+
}>
59+
<BanIcon gapRight />
60+
</OverlayTrigger>
61+
)}
62+
4763
{noLink ? <span>{fullName}</span> : <Link to={USER_URI_FACTORY(id)}>{fullName}</Link>}
64+
4865
{showExternalIdentifiers && externalIds && Object.keys(externalIds).length > 0 && (
4966
<OverlayTrigger
5067
placement="right"

src/locales/cs.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1300,7 +1300,7 @@
13001300
"app.user.welcomeTitle": "Vítejte v ReCodExu",
13011301
"app.userList.noSupervisors": "V tomto seznamu nejsou žádní vedoucí skupiny.",
13021302
"app.userList.noUsers": "Žádní uživatelé nevyhovují zvoleným filtrům.",
1303-
"app.userList.userDeactivated": "Uživatelský účet byl deaktivován. Uživatel se nemůže přihlásit.",
1303+
"app.userName.userDeactivated": "Uživatelský účet byl deaktivován. Uživatel se nemůže přihlásit.",
13041304
"app.userName.externalIds": "Externí identifikátory",
13051305
"app.userSwitching.loginAs": "Přihlásit jako",
13061306
"app.users.createUser": "Vytvořit uživatele",

src/locales/en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1300,7 +1300,7 @@
13001300
"app.user.welcomeTitle": "Welcome to ReCodEx",
13011301
"app.userList.noSupervisors": "There are no supervisors on the list.",
13021302
"app.userList.noUsers": "No users match selected filters.",
1303-
"app.userList.userDeactivated": "The user account was deactivated. The user may not sign in.",
1303+
"app.userName.userDeactivated": "The user account was deactivated. The user may not sign in.",
13041304
"app.userName.externalIds": "External identifiers",
13051305
"app.userSwitching.loginAs": "Login as",
13061306
"app.users.createUser": "Create User",

src/locales/whitelist_en.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1300,7 +1300,7 @@
13001300
"app.user.welcomeTitle",
13011301
"app.userList.noSupervisors",
13021302
"app.userList.noUsers",
1303-
"app.userList.userDeactivated",
1303+
"app.userName.userDeactivated",
13041304
"app.userName.externalIds",
13051305
"app.userSwitching.loginAs",
13061306
"app.users.createUser",

src/pages/User/User.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,9 @@ class User extends Component {
7171
Promise.all(
7272
[...studentOf, ...supervisorOf]
7373
.filter(groupId => {
74+
// TODO this should be done better using security endpoint (unfortunatelly, permission hints are insuficient)
7475
const group = groupSelector(getState(), groupId);
75-
return group && group.getIn(['data', 'permissionHints', 'viewStats']);
76+
return group && group.getIn(['data', 'permissionHints', 'viewAssignments']);
7677
})
7778
.map(groupId =>
7879
Promise.all([
@@ -119,7 +120,7 @@ class User extends Component {
119120
{user => (
120121
<div>
121122
<p>
122-
<UsersNameContainer userId={user.id} large noLink showEmail="full" />
123+
<UsersNameContainer userId={user.id} large noLink showEmail="full" showExternalIdentifiers />
123124
</p>
124125

125126
<p>

0 commit comments

Comments
 (0)