Skip to content

Commit 8765195

Browse files
authored
Merge pull request #2694 from objectcomputing/bugfix-2693/close-review-period
Reappropriated the delete infrastructure to implement a close review button.
2 parents a764288 + 325c552 commit 8765195

File tree

1 file changed

+29
-29
lines changed

1 file changed

+29
-29
lines changed

web-ui/src/components/reviews/TeamReviews.jsx

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import { useLocation, Link } from 'react-router-dom';
1212
import {
1313
AddCircle,
1414
Archive,
15-
Delete,
1615
Search,
1716
Unarchive
1817
} from '@mui/icons-material';
@@ -50,7 +49,6 @@ import {
5049
updateReviewPeriod
5150
} from '../../api/reviewperiods.js';
5251
import {
53-
DELETE_REVIEW_PERIOD,
5452
UPDATE_REVIEW_PERIOD,
5553
UPDATE_REVIEW_PERIODS,
5654
UPDATE_TOAST
@@ -61,7 +59,7 @@ import {
6159
selectCurrentMembers,
6260
selectCurrentUser,
6361
selectCurrentUserSubordinates,
64-
selectHasDeleteReviewPeriodPermission,
62+
selectHasCloseReviewPeriodPermission,
6563
selectHasLaunchReviewPeriodPermission,
6664
selectHasUpdateReviewPeriodPermission,
6765
selectReviewPeriod,
@@ -136,7 +134,7 @@ const TeamReviews = ({ onBack, periodId }) => {
136134
const [confirmApproveAllOpen, setConfirmApproveAllOpen] = useState(false);
137135
const [confirmationDialogOpen, setConfirmationDialogOpen] = useState(false);
138136
const [confirmationText, setConfirmationText] = useState('');
139-
const [confirmDeleteOpen, setConfirmDeleteOpen] = useState(false);
137+
const [confirmCloseOpen, setConfirmCloseOpen] = useState(false);
140138
const [memberSelectorOpen, setMemberSelectorOpen] = useState(false);
141139
const [nameQuery, setNameQuery] = useState('');
142140
const [query, setQuery] = useState({});
@@ -148,7 +146,7 @@ const TeamReviews = ({ onBack, periodId }) => {
148146
const [showAll, setShowAll] = useState(false);
149147
const [hasShowAll, setHasShowAll] = useState(false);
150148
const [teamMembers, setTeamMembers] = useState([]);
151-
const [toDelete, setToDelete] = useState(null);
149+
const [toClose, setToClose] = useState(null);
152150
const [unapproved, setUnapproved] = useState([]);
153151
const [validationMessage, setValidationMessage] = useState(null);
154152
const [confirmRevieweesWithNoSupervisorOpen, setConfirmRevieweesWithNoSupervisorOpen] = useState(false);
@@ -348,31 +346,29 @@ const TeamReviews = ({ onBack, periodId }) => {
348346
}
349347
}, [csrf, dispatch]);
350348

351-
const confirmDelete = useCallback(() => {
352-
setToDelete(period.id);
353-
setConfirmDeleteOpen(true);
354-
}, [period, setToDelete, setConfirmDeleteOpen]);
349+
const confirmClose = useCallback(() => {
350+
setToClose(period.id);
351+
setConfirmCloseOpen(true);
352+
}, [period, setToClose, setConfirmCloseOpen]);
355353

356-
const handleConfirmDeleteClose = useCallback(() => {
357-
setToDelete(null);
358-
setConfirmDeleteOpen(false);
359-
}, [setToDelete, setConfirmDeleteOpen]);
354+
const handleConfirmCloseClose = useCallback(() => {
355+
setToClose(null);
356+
setConfirmCloseOpen(false);
357+
}, [setToClose, setConfirmCloseOpen]);
360358

361359
const handleConfirmApproveAllClose = useCallback(() => {
362360
setConfirmApproveAllOpen(false);
363-
}, [setToDelete, setConfirmApproveAllOpen]);
361+
}, [setConfirmApproveAllOpen]);
364362

365-
const deleteReviewPeriod = useCallback(async () => {
363+
const closeReviewPeriod = useCallback(async () => {
366364
if (!csrf) return;
367365

368-
await removeReviewPeriod(toDelete, csrf);
369-
dispatch({
370-
type: DELETE_REVIEW_PERIOD,
371-
payload: toDelete
372-
});
373-
handleConfirmDeleteClose();
366+
if (period.reviewStatus === ReviewStatus.OPEN) {
367+
updateReviewPeriodStatus(ReviewStatus.CLOSED);
368+
}
369+
handleConfirmCloseClose();
374370
onBack();
375-
}, [csrf, dispatch, toDelete, handleConfirmDeleteClose]);
371+
}, [csrf, dispatch, toClose, handleConfirmCloseClose]);
376372

377373
const getReviewers = useCallback(
378374
reviewee => {
@@ -829,14 +825,18 @@ const TeamReviews = ({ onBack, periodId }) => {
829825
}
830826
};
831827

832-
const approvalButton = () => {
828+
const modifierButton = () => {
833829
switch (period.reviewStatus) {
834830
case ReviewStatus.PLANNING:
835831
return <Button onClick={requestApproval}>Request Approval</Button>;
836832
case ReviewStatus.AWAITING_APPROVAL:
837833
return selectHasLaunchReviewPeriodPermission(state) ? (
838834
<Button onClick={requestApproval}>Launch Review</Button>
839835
) : null;
836+
case ReviewStatus.OPEN:
837+
return selectHasCloseReviewPeriodPermission(state) ? (
838+
<Button onClick={confirmClose}>Close Review</Button>
839+
) : null;
840840
default:
841841
return null;
842842
}
@@ -971,7 +971,7 @@ const TeamReviews = ({ onBack, periodId }) => {
971971
disabled={!canUpdate}
972972
/>
973973
</div>
974-
{approvalButton()}
974+
{modifierButton()}
975975
</div>
976976
)}
977977
{validationMessage && (
@@ -1093,11 +1093,11 @@ const TeamReviews = ({ onBack, periodId }) => {
10931093
}}
10941094
/>
10951095
<ConfirmationDialog
1096-
open={confirmDeleteOpen}
1097-
onYes={deleteReviewPeriod}
1098-
question={`Are you sure you want to delete the review period ${selectReviewPeriod(state, toDelete)?.name}?`}
1099-
setOpen={setConfirmDeleteOpen}
1100-
title="Delete this review period?"
1096+
open={confirmCloseOpen}
1097+
onYes={closeReviewPeriod}
1098+
question={`Are you sure you want to close the review period ${selectReviewPeriod(state, toClose)?.name}?`}
1099+
setOpen={setConfirmCloseOpen}
1100+
title="Close this review period?"
11011101
/>
11021102
<ConfirmationDialog
11031103
open={confirmApproveAllOpen}

0 commit comments

Comments
 (0)