From 5572095b912510dd6380ba438b1ee5b2cbcae2d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20N=C3=A4ther?= Date: Thu, 6 Mar 2025 12:46:04 +0100 Subject: [PATCH 1/2] display delete dialog also for collaborations --- .../usecases/processmodel/ProcessModelUsecase.java | 8 +++----- frontend/src/components/ProcessList/ProcessList.vue | 10 +++++----- 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/backend/src/main/java/de/envite/proa/usecases/processmodel/ProcessModelUsecase.java b/backend/src/main/java/de/envite/proa/usecases/processmodel/ProcessModelUsecase.java index 3a11730..92a3ee3 100644 --- a/backend/src/main/java/de/envite/proa/usecases/processmodel/ProcessModelUsecase.java +++ b/backend/src/main/java/de/envite/proa/usecases/processmodel/ProcessModelUsecase.java @@ -30,10 +30,8 @@ public Long saveProcessModel(Long projectId, String name, String xml, String des ProcessModelTable existingProcessModel = repository.findByNameOrBpmnProcessIdWithoutCollaborations(name, bpmnProcessId, projectId); - if (existingProcessModel != null) { - if (!isUploadedProcessCollaboration) { - return replaceProcessModel(projectId, existingProcessModel.getId(), name, xml, description); - } + if (existingProcessModel != null && !isUploadedProcessCollaboration) { + return replaceProcessModel(projectId, existingProcessModel.getId(), name, xml, description); } if (isUploadedProcessCollaboration) { @@ -189,4 +187,4 @@ private void copyConnections(Long projectId, Long oldProcessId, Long newProcessI private void copyMessageFlowsAndRelations(Long projectId, Long oldProcessId, Long newProcessId) { processMapRepository.copyMessageFlowsAndRelations(projectId, oldProcessId, newProcessId); } -} \ No newline at end of file +} diff --git a/frontend/src/components/ProcessList/ProcessList.vue b/frontend/src/components/ProcessList/ProcessList.vue index 91cc9b7..2196a6f 100644 --- a/frontend/src/components/ProcessList/ProcessList.vue +++ b/frontend/src/components/ProcessList/ProcessList.vue @@ -401,8 +401,8 @@ export default defineComponent({ processModelNode: ProcessModelNode, skipConfirm: boolean = false ) { - const isParticipant = processModelNode.processType === "PARTICIPANT"; - if (!skipConfirm && isParticipant) { + const isProcess = processModelNode.processType === "PROCESS"; + if (!skipConfirm && !isProcess) { this.processModelToBeDeleted = processModelNode; this.confirmDeleteDialog = true; return; @@ -488,9 +488,9 @@ export default defineComponent({ const xmlDoc = parser.parseFromString(content, "text/xml"); const isCollaboration = - xmlDoc.getElementsByTagName("bpmn:participant")?.length > 1 || - xmlDoc.getElementsByTagName("semantic:participant")?.length > 1 || - xmlDoc.getElementsByTagName("participant")?.length > 1; + xmlDoc.getElementsByTagName("bpmn:participant")?.length > 1 || + xmlDoc.getElementsByTagName("semantic:participant")?.length > 1 || + xmlDoc.getElementsByTagName("participant")?.length > 1; if (isCollaboration) { const collaboration = From 75a3cc9d3ce0c9b8e27acb5b0c4db0f186546b58 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20N=C3=A4ther?= Date: Fri, 7 Mar 2025 09:11:59 +0100 Subject: [PATCH 2/2] define process type as enum --- .../src/components/ProcessList/ProcessList.vue | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/frontend/src/components/ProcessList/ProcessList.vue b/frontend/src/components/ProcessList/ProcessList.vue index 2196a6f..3e4c81c 100644 --- a/frontend/src/components/ProcessList/ProcessList.vue +++ b/frontend/src/components/ProcessList/ProcessList.vue @@ -315,7 +315,13 @@ interface ProcessModelInformation { description: string; createdAt: string; childrenIds: number[]; - processType: string; + processType: ProcessType; +} + +enum ProcessType { + COLLABORATION = "COLLABORATION", + PARTICIPANT = "PARTICIPANT", + PROCESS = "PROCESS" } export interface ProcessModelNode extends ProcessModelInformation { @@ -401,7 +407,7 @@ export default defineComponent({ processModelNode: ProcessModelNode, skipConfirm: boolean = false ) { - const isProcess = processModelNode.processType === "PROCESS"; + const isProcess = processModelNode.processType === ProcessType.PROCESS; if (!skipConfirm && !isProcess) { this.processModelToBeDeleted = processModelNode; this.confirmDeleteDialog = true; @@ -436,9 +442,9 @@ export default defineComponent({ const modelMap = new Map(); processModelInformation.forEach((model) => modelMap.set(model.id, model)); return processModelInformation - .filter((model) => model.processType !== "PARTICIPANT") + .filter((model) => model.processType !== ProcessType.PARTICIPANT) .map((model) => { - if (model.processType === "COLLABORATION") { + if (model.processType === ProcessType.COLLABORATION) { const children = model.childrenIds.map((id) => modelMap.get(id)!); const childrenAsNodes = children.map((child) => ({ ...child,