me + ai = javascript
This commit is contained in:
parent
98ac17d478
commit
0955fbd88e
web/src/app
@ -1,3 +1,5 @@
|
||||
import { Roles } from "@/app/ts/Roles";
|
||||
import { SubmissionStatus } from "@/app/ts/Submission";
|
||||
import { Button, ButtonOwnProps } from "@mui/material";
|
||||
import { useState, useEffect } from "react";
|
||||
|
||||
@ -60,8 +62,8 @@ export default function ReviewButtons(props: ReviewId) {
|
||||
// Upload | MapAdmin | Validated
|
||||
// ResetUploading | MapAdmin | Uploading
|
||||
const { submissionId } = props;
|
||||
const [roles, setRoles] = useState<string[]>([]);
|
||||
const [status, setStatus] = useState<string | null>(null);
|
||||
const [roles, setRoles] = useState<Roles>(Roles.Empty);
|
||||
const [status, setStatus] = useState<SubmissionStatus>(SubmissionStatus.UnderConstruction);
|
||||
const [loading, setLoading] = useState(true);
|
||||
|
||||
useEffect(() => {
|
||||
@ -93,36 +95,37 @@ export default function ReviewButtons(props: ReviewId) {
|
||||
|
||||
const visibleButtons: ReviewButton[] = [];
|
||||
|
||||
if (roles.includes("Submitter")) {
|
||||
if (["UnderConstruction", "ChangesRequested"].includes(status!)) {
|
||||
const is_submitter = false; // TODO: MY_USER === submission.Submitter
|
||||
if (is_submitter) {
|
||||
if ([SubmissionStatus.UnderConstruction, SubmissionStatus.ChangesRequested].includes(status!)) {
|
||||
visibleButtons.push({ name: "Submit", action: "submit", color: "info", submissionId });
|
||||
}
|
||||
if (["Submitted", "ChangesRequested"].includes(status!)) {
|
||||
if ([SubmissionStatus.Submitted, SubmissionStatus.ChangesRequested].includes(status!)) {
|
||||
visibleButtons.push({ name: "Revoke", action: "revoke", color: "info", submissionId });
|
||||
}
|
||||
}
|
||||
|
||||
if (roles.includes("Reviewer")) {
|
||||
if (status === "Submitted") {
|
||||
if (roles&Roles.SubmissionReview) {
|
||||
if (status === SubmissionStatus.Submitted) {
|
||||
visibleButtons.push({ name: "Accept", action: "trigger-validate", color: "info", submissionId });
|
||||
visibleButtons.push({ name: "Reject", action: "reject", color: "error", submissionId });
|
||||
}
|
||||
if (status === "Accepted") {
|
||||
if (status === SubmissionStatus.Accepted) {
|
||||
visibleButtons.push({ name: "Validate", action: "retry-validate", color: "info", submissionId });
|
||||
}
|
||||
if (status === "Validating") {
|
||||
if (status === SubmissionStatus.Validating) {
|
||||
visibleButtons.push({ name: "Reset Validating (fix softlocked status)", action: "reset-validating", color: "error", submissionId });
|
||||
}
|
||||
if (["Validated", "Accepted", "Submitted"].includes(status!)) {
|
||||
if ([SubmissionStatus.Validated, SubmissionStatus.Accepted, SubmissionStatus.Submitted].includes(status!)) {
|
||||
visibleButtons.push({ name: "Request Changes", action: "request-changes", color: "error", submissionId });
|
||||
}
|
||||
}
|
||||
|
||||
if (roles.includes("MapAdmin")) {
|
||||
if (status === "Validated") {
|
||||
if (roles&Roles.SubmissionUpload) {
|
||||
if (status === SubmissionStatus.Validated) {
|
||||
visibleButtons.push({ name: "Upload", action: "trigger-upload", color: "info", submissionId });
|
||||
}
|
||||
if (status === "Uploading") {
|
||||
if (status === SubmissionStatus.Uploading) {
|
||||
visibleButtons.push({ name: "Reset Uploading (fix softlocked status)", action: "reset-uploading", color: "error", submissionId });
|
||||
}
|
||||
}
|
||||
|
15
web/src/app/ts/Roles.ts
Normal file
15
web/src/app/ts/Roles.ts
Normal file
@ -0,0 +1,15 @@
|
||||
// Submissions roles bitflag
|
||||
enum Roles {
|
||||
SubmissionUpload = 1 << 6,
|
||||
SubmissionReview = 1 << 5,
|
||||
SubmissionRelease = 1 << 4,
|
||||
ScriptWrite = 1 << 3,
|
||||
MapfixUpload = 1 << 2,
|
||||
MapfixReview = 1 << 1,
|
||||
MapDownload = 1 << 0,
|
||||
Empty = 0
|
||||
}
|
||||
|
||||
export {
|
||||
Roles,
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user