do not allow empty steps in workflows

This commit is contained in:
Joao Correia
2025-02-03 11:34:56 +00:00
parent 835a9bee03
commit d59b654ac2
3 changed files with 28 additions and 2 deletions

View File

@@ -123,6 +123,14 @@ export default function Home({ user, workflow, userEntitiesWithLabel, entityUnav
return; return;
} }
for (const step of cloneWorkflow.steps) {
if (step.assignees.every(x => !x)) {
toast.warning("There is at least one empty step in the workflow.");
setIsLoading(false);
return;
}
}
const filteredWorkflow: ApprovalWorkflow = { const filteredWorkflow: ApprovalWorkflow = {
...cloneWorkflow, ...cloneWorkflow,
steps: cloneWorkflow.steps.map(step => ({ steps: cloneWorkflow.steps.map(step => ({

View File

@@ -94,6 +94,14 @@ export default function Home({ user, workflow, workflowEntityApprovers }: Props)
return; return;
} }
for (const step of updatedWorkflow.steps) {
if (step.assignees.every(x => !x)) {
toast.warning("There is at least one empty step in the workflow.");
setIsLoading(false);
return;
}
}
const filteredWorkflow: ApprovalWorkflow = { const filteredWorkflow: ApprovalWorkflow = {
...updatedWorkflow, ...updatedWorkflow,
steps: updatedWorkflow.steps.map(step => ({ steps: updatedWorkflow.steps.map(step => ({
@@ -174,7 +182,7 @@ export default function Home({ user, workflow, workflowEntityApprovers }: Props)
exit={{ opacity: 0, x: 60 }} exit={{ opacity: 0, x: 60 }}
transition={{ duration: 0.20 }} transition={{ duration: 0.20 }}
> >
{updatedWorkflow && {/* {updatedWorkflow &&
<WorkflowForm <WorkflowForm
workflow={updatedWorkflow} workflow={updatedWorkflow}
onWorkflowChange={onWorkflowChange} onWorkflowChange={onWorkflowChange}
@@ -182,7 +190,7 @@ export default function Home({ user, workflow, workflowEntityApprovers }: Props)
isLoading={isLoading} isLoading={isLoading}
isRedirecting={isRedirecting} isRedirecting={isRedirecting}
/> />
} } */}
</motion.div> </motion.div>
</form> </form>
</Layout> </Layout>

View File

@@ -124,6 +124,16 @@ export default function Home({ user, allConfiguredWorkflows, userEntitiesWithLab
return; return;
} }
for (const workflow of workflows) {
for (const step of workflow.steps) {
if (step.assignees.every(x => !x)) {
toast.warning("There are empty steps in at least one of the configured workflows.");
setIsLoading(false);
return;
}
}
}
const filteredWorkflows: ApprovalWorkflow[] = workflows.map(workflow => ({ const filteredWorkflows: ApprovalWorkflow[] = workflows.map(workflow => ({
...workflow, ...workflow,
steps: workflow.steps.map(step => ({ steps: workflow.steps.map(step => ({