plumb status

This commit is contained in:
Quaternions 2025-04-03 20:49:41 -07:00
parent 1e880cb95c
commit 5e8fd0744c
Signed by: Quaternions
GPG Key ID: D0DF5964F79AC131
2 changed files with 14 additions and 20 deletions
web/src/app/submissions/[submissionId]

@ -15,7 +15,8 @@ interface ReviewButton {
}
interface ReviewId {
submissionId: string
submissionId: string,
submissionStatus: number,
}
async function ReviewButtonClicked(action: ApiActions, submissionId: string) {
@ -61,9 +62,8 @@ export default function ReviewButtons(props: ReviewId) {
// RequestChanges | Reviewer | Validated, Accepted, Submitted
// Upload | MapAdmin | Validated
// ResetUploading | MapAdmin | Uploading
const { submissionId } = props;
const { submissionId, submissionStatus } = props;
const [roles, setRoles] = useState<Roles>(Roles.Empty);
const [status, setStatus] = useState<SubmissionStatus>(SubmissionStatus.UnderConstruction);
const [loading, setLoading] = useState(true);
useEffect(() => {
@ -73,14 +73,7 @@ export default function ReviewButtons(props: ReviewId) {
const rolesResponse = await fetch("/api/session/roles");
const rolesData = parseInt(await rolesResponse.text());
// Fetch submission status
const statusResponse = await fetch(
`/api/submissions/${submissionId}/status`
);
const statusData = await statusResponse.json();
setRoles(rolesData);
setStatus(statusData.status);
} catch (error) {
console.error("Error fetching data:", error);
} finally {
@ -97,35 +90,35 @@ export default function ReviewButtons(props: ReviewId) {
const is_submitter = false; // TODO: MY_USER === submission.Submitter
if (is_submitter) {
if ([SubmissionStatus.UnderConstruction, SubmissionStatus.ChangesRequested].includes(status!)) {
if ([SubmissionStatus.UnderConstruction, SubmissionStatus.ChangesRequested].includes(submissionStatus!)) {
visibleButtons.push({ name: "Submit", action: "submit", color: "info", submissionId });
}
if ([SubmissionStatus.Submitted, SubmissionStatus.ChangesRequested].includes(status!)) {
if ([SubmissionStatus.Submitted, SubmissionStatus.ChangesRequested].includes(submissionStatus!)) {
visibleButtons.push({ name: "Revoke", action: "revoke", color: "info", submissionId });
}
}
if (roles&Roles.SubmissionReview) {
if (status === SubmissionStatus.Submitted) {
if (submissionStatus === SubmissionStatus.Submitted) {
visibleButtons.push({ name: "Accept", action: "trigger-validate", color: "info", submissionId });
visibleButtons.push({ name: "Reject", action: "reject", color: "error", submissionId });
}
if (status === SubmissionStatus.Accepted) {
if (submissionStatus === SubmissionStatus.Accepted) {
visibleButtons.push({ name: "Validate", action: "retry-validate", color: "info", submissionId });
}
if (status === SubmissionStatus.Validating) {
if (submissionStatus === SubmissionStatus.Validating) {
visibleButtons.push({ name: "Reset Validating (fix softlocked status)", action: "reset-validating", color: "error", submissionId });
}
if ([SubmissionStatus.Validated, SubmissionStatus.Accepted, SubmissionStatus.Submitted].includes(status!)) {
if ([SubmissionStatus.Validated, SubmissionStatus.Accepted, SubmissionStatus.Submitted].includes(submissionStatus!)) {
visibleButtons.push({ name: "Request Changes", action: "request-changes", color: "error", submissionId });
}
}
if (roles&Roles.SubmissionUpload) {
if (status === SubmissionStatus.Validated) {
if (submissionStatus === SubmissionStatus.Validated) {
visibleButtons.push({ name: "Upload", action: "trigger-upload", color: "info", submissionId });
}
if (status === SubmissionStatus.Uploading) {
if (submissionStatus === SubmissionStatus.Uploading) {
visibleButtons.push({ name: "Reset Uploading (fix softlocked status)", action: "reset-uploading", color: "error", submissionId });
}
}

@ -17,6 +17,7 @@ import "./(styles)/page.scss";
interface ReviewId {
submissionId: string;
assetId: number;
submissionStatus: number;
}
function Ratings() {
@ -47,7 +48,7 @@ function RatingArea(submission: ReviewId) {
<MapImage id={submission.assetId}/>
</section>
<Ratings/>
<ReviewButtons submissionId={submission.submissionId}/>
<ReviewButtons submissionId={submission.submissionId} submissionStatus={submission.submissionStatus}/>
</aside>
)
}
@ -97,7 +98,7 @@ export default function SubmissionInfoPage() {
<Webpage>
<main className="map-page-main">
<section className="review-section">
<RatingArea assetId={submission.AssetID} submissionId={dynamicId.submissionId}/>
<RatingArea assetId={submission.AssetID} submissionId={dynamicId.submissionId} submissionStatus={submission.StatusID}/>
<TitleAndComments name={submission.DisplayName} creator={submission.Creator} review={submission.StatusID} status_message={submission.StatusMessage} asset_id={submission.AssetID} comments={[]}/>
</section>
</main>