From ae4fa042103e90e1c4b435794def2dd63d0aeb34 Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Tue, 2 Jan 2024 16:25:34 -0500 Subject: [PATCH 1/2] Use metadataValidationStatus and fileValidationStatus to check validation status --- src/content/dataSubmissions/DataSubmission.tsx | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/content/dataSubmissions/DataSubmission.tsx b/src/content/dataSubmissions/DataSubmission.tsx index 670a54ce..a69f9c3b 100644 --- a/src/content/dataSubmissions/DataSubmission.tsx +++ b/src/content/dataSubmissions/DataSubmission.tsx @@ -313,8 +313,16 @@ const DataSubmission = () => { const tableRef = useRef(null); const isValidTab = tab && Object.values(URLTabs).includes(tab); const disableSubmit = useMemo( - () => !data?.submissionStats?.stats?.length || data?.submissionStats?.stats.some((stat) => stat.new > 0 || (user.role !== "Admin" && stat.error > 0)), - [data?.submissionStats, user] + () => { + if (!data?.getSubmission?._id) { + return true; + } + const isValidating = data.getSubmission.metadataValidationStatus === "Validating" || data.getSubmission.fileValidationStatus === "Validating"; + const hasNew = data.getSubmission.metadataValidationStatus === "New" || data.getSubmission.fileValidationStatus === "New"; + const hasError = data.getSubmission.metadataValidationStatus === "Error" || data.getSubmission.fileValidationStatus === "Error"; + return isValidating || hasNew || (user?.role !== "Admin" && hasError); + }, + [data?.getSubmission, user] ); const [listBatches] = useLazyQuery(LIST_BATCHES, { From 90398c578679770a9b73c08c15288eeff6562aa7 Mon Sep 17 00:00:00 2001 From: Alejandro-Vega Date: Tue, 9 Jan 2024 14:58:09 -0500 Subject: [PATCH 2/2] Disable submit if metadata is missing --- src/content/dataSubmissions/DataSubmission.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/content/dataSubmissions/DataSubmission.tsx b/src/content/dataSubmissions/DataSubmission.tsx index a69f9c3b..1820f622 100644 --- a/src/content/dataSubmissions/DataSubmission.tsx +++ b/src/content/dataSubmissions/DataSubmission.tsx @@ -317,10 +317,11 @@ const DataSubmission = () => { if (!data?.getSubmission?._id) { return true; } + const isMissingMetadata = !data.getSubmission.metadataValidationStatus; const isValidating = data.getSubmission.metadataValidationStatus === "Validating" || data.getSubmission.fileValidationStatus === "Validating"; const hasNew = data.getSubmission.metadataValidationStatus === "New" || data.getSubmission.fileValidationStatus === "New"; const hasError = data.getSubmission.metadataValidationStatus === "Error" || data.getSubmission.fileValidationStatus === "Error"; - return isValidating || hasNew || (user?.role !== "Admin" && hasError); + return isValidating || isMissingMetadata || hasNew || (user?.role !== "Admin" && hasError); }, [data?.getSubmission, user] ); @@ -404,9 +405,8 @@ const DataSubmission = () => { setChangesAlert({ message, severity }); setTimeout(() => setChangesAlert(null), 10000); - const preInProgressStatuses: SubmissionStatus[] = ["New", "Withdrawn", "Rejected"]; - // createBatch will update the status to 'In Progress' - if (preInProgressStatuses.includes(data?.getSubmission?.status)) { + const refreshStatuses: SubmissionStatus[] = ["New", "Withdrawn", "Rejected", "In Progress"]; + if (refreshStatuses.includes(data?.getSubmission?.status)) { await getSubmission(); } };