Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ exports[`Matches shallow shapshot 1`] = `
"id": "test-challenge",
}
}
hasPendingWorkflowRuns={null}
onDelete={[Function]}
onDownload={[Function]}
onOpenDownloadArtifactsModal={[Function]}
Expand Down
45 changes: 34 additions & 11 deletions src/shared/components/SubmissionManagement/Submission/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ export default function Submission(props) {
onOpenRatingsListModal,
status,
allowDelete,
hasPendingWorkflowRuns,
} = props;
const formatDate = date => moment(+new Date(date)).format('MMM DD, YYYY hh:mm A');
const onDownloadSubmission = onDownload.bind(1, submissionObject.id);
Expand All @@ -66,6 +67,12 @@ export default function Submission(props) {
}
}

const showDeleteButton = status !== CHALLENGE_STATUS.COMPLETED
&& track === COMPETITION_TRACKS.DES
&& safeForDownloadCheck === true;

const showPendingTooltip = !allowDelete && hasPendingWorkflowRuns;

return (
<tr styleName="submission-row">
<td styleName="id-col">
Expand Down Expand Up @@ -146,17 +153,32 @@ export default function Submission(props) {
onClick={() => onDownload(submissionObject.id)}
><DownloadIcon /></button>
*/ }
{status !== CHALLENGE_STATUS.COMPLETED
&& track === COMPETITION_TRACKS.DES
&& safeForDownloadCheck === true && (
<button
styleName="delete-icon"
onClick={() => onDelete(submissionObject.id)}
disabled={!allowDelete}
type="button"
>
<DeleteIcon />
</button>
{showDeleteButton && (
!showPendingTooltip ? (
<button
styleName="delete-icon"
onClick={() => onDelete(submissionObject.id)}
type="button"
>
<DeleteIcon />
</button>
) : (
// Disabled delete button with tooltip when workflow run is pending
<Tooltip content={() => (
<div styleName="tooltip-content">
You can delete this submission only after the review is complete.
</div>
)}
>
<button
styleName="delete-icon"
disabled
type="button"
>
<DeleteIcon />
</button>
</Tooltip>
)
)
}
{ !isTopCrowdChallenge
Expand Down Expand Up @@ -217,4 +239,5 @@ Submission.propTypes = {
allowDelete: PT.bool.isRequired,
onOpenDownloadArtifactsModal: PT.func,
onOpenRatingsListModal: PT.func,
hasPendingWorkflowRuns: PT.bool.isRequired,
};
Original file line number Diff line number Diff line change
Expand Up @@ -74,8 +74,32 @@ export default function SubmissionsTable(props) {
submissionObjects.forEach((subObject) => {
// submissionPhaseStartDate will be the start date of
// the current submission/checkpoint or empty string if any other phase

const TERMINAL_STATUSES = [
'COMPLETED',
'FAILURE',
'CANCELLED',
'SUCCESS',
];

const workflowRunsForSubmission = submissionWorkflowRuns
&& submissionWorkflowRuns[subObject.id]
? submissionWorkflowRuns[subObject.id]
: null;

let isWorkflowRunComplete = true; // allow delete if no runs

if (workflowRunsForSubmission && workflowRunsForSubmission.length > 0) {
isWorkflowRunComplete = workflowRunsForSubmission.length === 0
|| workflowRunsForSubmission.every(run => TERMINAL_STATUSES.includes(run.status));
}

const allowDelete = submissionPhaseStartDate
&& moment(subObject.submissionDate).isAfter(submissionPhaseStartDate);
&& moment(subObject.submissionDate).isAfter(submissionPhaseStartDate)
&& isWorkflowRunComplete;

const hasPendingWorkflowRuns = workflowRunsForSubmission
&& workflowRunsForSubmission.some(run => !TERMINAL_STATUSES.includes(run.status));

const submission = (
<Submission
Expand All @@ -91,13 +115,10 @@ export default function SubmissionsTable(props) {
allowDelete={allowDelete}
onOpenDownloadArtifactsModal={onOpenDownloadArtifactsModal}
onOpenRatingsListModal={onOpenRatingsListModal}
hasPendingWorkflowRuns={hasPendingWorkflowRuns}
/>
);
submissionsWithDetails.push(submission);
const workflowRunsForSubmission = submissionWorkflowRuns
&& submissionWorkflowRuns[subObject.id]
? submissionWorkflowRuns[subObject.id]
: null;

const submissionDetail = (
<tr key={subObject.id} styleName="submission-row">
Expand Down
Loading