Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
021682c
progress on 2284
mvolkmann May 6, 2024
7ff9419
Merge branch 'develop' into feature-2284-review-period-employees
mvolkmann May 6, 2024
9bd1e6e
progress on 2284
mvolkmann May 6, 2024
065a23c
Merge branch 'develop' into feature-2284-review-period-employees
mvolkmann May 7, 2024
19a5907
progress on 2284
mvolkmann May 7, 2024
12a12b4
Merge branch 'develop' into feature-2284-review-period-employees
mvolkmann May 7, 2024
0c97e00
progress on 2284
mvolkmann May 7, 2024
0dbb3d1
Merge branch 'develop' into feature-2284-review-period-employees
mvolkmann May 7, 2024
ac51898
Merge branch 'develop' into feature-2284-review-period-employees
mvolkmann May 8, 2024
9d3cc73
progress on 2284
mvolkmann May 8, 2024
fee7fe3
progress on 2284
mvolkmann May 8, 2024
788e140
Merge branch 'bugfix-2282/fix-find-assignments' into feature-2284-rev…
mvolkmann May 8, 2024
2286478
progress on 2284
mvolkmann May 8, 2024
8deb114
Merge branch 'develop' into feature-2284-review-period-employees
mvolkmann May 8, 2024
1935e66
Merge branch 'develop' into feature-2284-review-period-employees
mvolkmann May 9, 2024
9237929
Merge branch 'bugfix-2282/fix-find-assignments' into feature-2284-rev…
mvolkmann May 9, 2024
4fd5cab
progress on 2284
mvolkmann May 9, 2024
afa9131
progress on 2284
mvolkmann May 9, 2024
144b3a2
progress on 2284
mvolkmann May 9, 2024
3276e5b
progress on 2284
mvolkmann May 9, 2024
e9245db
progress on 2284
mvolkmann May 9, 2024
78bb14d
progress on 2284
mvolkmann May 9, 2024
59732ac
progress on 2284
mvolkmann May 9, 2024
0f35c61
progress on 2284
mvolkmann May 9, 2024
e9cc1d6
added copy of old code for TeamMemberReviews.jsx
mvolkmann May 9, 2024
c0f541e
Merge branch 'develop' into feature-2284-review-period-employees
mvolkmann May 10, 2024
338a5ad
updated snapshot tests
mvolkmann May 10, 2024
2a6a03c
progress on 2284
mvolkmann May 10, 2024
71d33cb
progress on 2284
mvolkmann May 10, 2024
3467556
restored ability to download a member list in MemberSelector
mvolkmann May 10, 2024
e0885a1
added Back button to TeamReviews
mvolkmann May 10, 2024
af5db91
TeamReviews now enforces ordering of the three dates
mvolkmann May 10, 2024
ce81e72
updated a snapshot test
mvolkmann May 10, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions web-ui/src/components/member_selector/MemberSelector.css
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,19 @@
}

.member-selector-card .member-selector-card-title {
font-size: 1.5em;
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adjusted some font sizes to improve UI.

font-size: 1rem;
}

.member-selector-card .member-selector-card-count {
font-size: 1.25em;
font-size: 1rem;
}

@media screen and (max-width: 600px) {
.member-selector-card .member-selector-card-title {
font-size: 1.25em;
font-size: 0.75rem;
}

.member-selector-card .member-selector-card-count {
font-size: 1em;
font-size: 0.75rem;
}
}
133 changes: 18 additions & 115 deletions web-ui/src/components/member_selector/MemberSelector.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,30 +4,20 @@ import {
Avatar,
Card,
CardHeader,
Collapse,
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lots of UI functionality was removed from this component per Michael.
We no longer display a list of the selected members and only display the number of selected members.

Divider,
IconButton,
List,
ListItem,
ListItemAvatar,
ListItemIcon,
ListItemText,
Menu,
MenuItem,
Tooltip,
Typography
} from '@mui/material';
import AddIcon from '@mui/icons-material/Add';
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of these icons are no longer used and access to the ones that are was simplified by using their given names.

import RemoveIcon from '@mui/icons-material/Remove';
import HighlightOffIcon from '@mui/icons-material/HighlightOff';
import MoreVertIcon from '@mui/icons-material/MoreVert';
import { Add, FileDownload } from '@mui/icons-material';
import { getAvatarURL } from '../../api/api';

import ExpandMore from '../expand-more/ExpandMore.jsx';
import MemberSelectorDialog, {
FilterType
} from './member_selector_dialog/MemberSelectorDialog';
import DownloadIcon from '@mui/icons-material/FileDownload';
import { reportSelectedMembersCsv } from '../../api/member.js';
import { AppContext } from '../../context/AppContext.jsx';
import { selectCsrfToken } from '../../context/selectors.js';
Expand Down Expand Up @@ -58,8 +48,6 @@ const propTypes = {
outlined: PropTypes.bool,
/** If true, include a button to export the list of members to a CSV file. False by default. */
exportable: PropTypes.bool,
/** Adjusts the height of the scrollable list of selected members (in pixels) */
listHeight: PropTypes.number,
/** If true, members cannot be added to or removed from the current selection. False by default. */
disabled: PropTypes.bool,
/** A custom class name to additionally apply to the top-level card */
Expand All @@ -76,7 +64,6 @@ const MemberSelector = ({
expand = true,
outlined = false,
exportable = false,
listHeight = 400,
disabled = false,
className,
style
Expand All @@ -93,7 +80,7 @@ const MemberSelector = ({
filter => filter.type === FilterType.ROLE
);
const roleFilter = filters.find(filter => filter.type === FilterType.ROLE);
const memberDescriptor = isFilteredByRole ? roleFilter.value : 'members';
const memberDescriptor = isFilteredByRole ? roleFilter.value : 'Members';

const handleExpandClick = () => setExpanded(!expanded);

Expand All @@ -104,8 +91,8 @@ const MemberSelector = ({
}
}, [disabled]);

const addMembers = membersToAdd => {
onChange([...selected, ...membersToAdd]);
const replaceSelectedMembers = members => {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We now replace the complete set of selected members rather than adding to it.

onChange(members);
setDialogOpen(false);
};

Expand All @@ -115,9 +102,7 @@ const MemberSelector = ({
};

const downloadMemberCsv = useCallback(() => {
if (!exportable) {
return;
}
if (!exportable) return;

const memberIds = selected.map(member => member.id);
reportSelectedMembersCsv(memberIds, csrf).then(res => {
Expand Down Expand Up @@ -152,14 +137,6 @@ const MemberSelector = ({
style={style}
>
<CardHeader
avatar={
<ExpandMore
expand={expanded}
onClick={handleExpandClick}
aria-expanded={expanded}
aria-label="show more"
/>
}
title={
<div className="member-selector-card-title-container">
<Typography
Expand All @@ -180,111 +157,37 @@ const MemberSelector = ({
}
action={
<>
<Tooltip title={`Add ${memberDescriptor}`} arrow>
<Tooltip title={`Change ${memberDescriptor}`} arrow>
<IconButton
style={{ margin: '4px 8px 0 0' }}
onClick={() => setDialogOpen(true)}
disabled={disabled}
>
<AddIcon />
<Add />
</IconButton>
</Tooltip>
<IconButton
style={{ margin: '4px 8px 0 0' }}
onClick={event => setMenuAnchor(event.currentTarget)}
>
<MoreVertIcon />
</IconButton>
<Menu
anchorEl={menuAnchor}
open={!!menuAnchor}
onClose={() => setMenuAnchor(null)}
>
<MenuItem
onClick={() => {
setMenuAnchor(null);
clearMembers();
}}
disabled={disabled || !selected.length}
>
<ListItemIcon>
<HighlightOffIcon fontSize="small" />
</ListItemIcon>
<ListItemText>Remove all</ListItemText>
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Members can now only be removed in MemberSelectorDialog.

</MenuItem>
{exportable && (
Copy link
Collaborator Author

@mvolkmann mvolkmann May 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The button to download a member list as a CSV file was moved to be on the Card and not in a Menu.

<MenuItem
onClick={() => {
setMenuAnchor(null);
downloadMemberCsv();
}}
disabled={!selected.length}
{exportable && (
<Tooltip title="Download">
<IconButton
onClick={downloadMemberCsv}
edge="end"
aria-label="Download"
>
<ListItemIcon>
<DownloadIcon fontSize="small" />
</ListItemIcon>
<ListItemText>Download</ListItemText>
</MenuItem>
)}
</Menu>
<FileDownload />
</IconButton>
</Tooltip>
)}
</>
}
/>
<Collapse in={expanded}>
<Divider />
<List
dense
role="list"
sx={{ maxHeight: listHeight, overflow: 'auto' }}
>
{selected.length ? (
selected.map(member => (
<ListItem
key={member.id}
role="listitem"
secondaryAction={
<Tooltip title="Deselect member" arrow>
<IconButton
onClick={() => removeMember(member)}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Members can now only be removed in MemberSelectorDialog.

disabled={disabled}
>
<RemoveIcon />
</IconButton>
</Tooltip>
}
>
<ListItemAvatar>
<Avatar src={getAvatarURL(member.workEmail)} />
</ListItemAvatar>
<ListItemText
primary={
<Typography fontWeight="bold">{member.name}</Typography>
}
secondary={
<Typography color="textSecondary" component="h6">
{member.title}
</Typography>
}
/>
</ListItem>
))
) : (
<ListItem>
<ListItemText style={{ color: 'gray' }}>
No {memberDescriptor} selected
</ListItemText>
</ListItem>
)}
</List>
</Collapse>
</Card>
<MemberSelectorDialog
open={dialogOpen}
initialFilters={filters}
memberDescriptor={memberDescriptor}
selectedMembers={selected}
onClose={() => setDialogOpen(false)}
onSubmit={membersToAdd => addMembers(membersToAdd)}
onSubmit={replaceSelectedMembers}
/>
</>
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@ describe('MemberSelector', () => {
title="Custom Title"
outlined
exportable
listHeight={300}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This prop was removed since we no longer display a list of the selected members in this component.

className="test-class"
style={{ margin: '10px' }}
/>
Expand Down
Loading