From 4dc2348893012c78923c19ea295441185040034c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Mon, 4 Nov 2024 14:05:57 +0100 Subject: [PATCH] Change behaviour to allow to add a new workflow (if available) and open the modal to list existing workflows in the same button Use the feature of splitted dropdown buttons, from bootstrap. See: - OP#776 - https://champs-libres.openproject.com/work_packages/776 --- .../EntityWorkflow/ListWorkflowModal.vue | 15 +++---- .../EntityWorkflow/PickWorkflow.vue | 42 ++++++++++++++++++- .../vuejs/AccompanyingCourseWorkEdit/App.vue | 2 - 3 files changed, 45 insertions(+), 14 deletions(-) diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/ListWorkflowModal.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/ListWorkflowModal.vue index 151bc06c7..ab52b7452 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/ListWorkflowModal.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/ListWorkflowModal.vue @@ -1,20 +1,13 @@ diff --git a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/PickWorkflow.vue b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/PickWorkflow.vue index 13d6c4e46..3cd88369c 100644 --- a/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/PickWorkflow.vue +++ b/src/Bundle/ChillMainBundle/Resources/public/vuejs/_components/EntityWorkflow/PickWorkflow.vue @@ -1,6 +1,6 @@ @@ -30,12 +62,18 @@ interface PickWorkflowConfig { workflowsAvailables: WorkflowAvailable[]; preventDefaultMoveToGenerate: boolean; goToGenerateWorkflowPayload: object; + countExistingWorkflows: number; + /** + * if true, this button will not present a splitted button + */ + embeddedWithinListModal: boolean; } -const props = withDefaults(defineProps(), {preventDefaultMoveToGenerate: false, goToGenerateWorkflowPayload: {}}); +const props = withDefaults(defineProps(), {preventDefaultMoveToGenerate: false, goToGenerateWorkflowPayload: {}, allowCreateWorkflow: false}); const emit = defineEmits<{ (e: 'goToGenerateWorkflow', {event: MouseEvent, workflowName: string, isLinkValid: boolean, link: string, payload: object}): void; + (e: 'clickOpenList'): void; }>(); const makeLink = (workflowName: string): string => buildLinkCreate(workflowName, props.relatedEntityClass, props.relatedEntityId); diff --git a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue index d0b4affbf..a17cfbd0d 100644 --- a/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue +++ b/src/Bundle/ChillPersonBundle/Resources/public/vuejs/AccompanyingCourseWorkEdit/App.vue @@ -340,7 +340,6 @@ import ThirdPartyRenderBox from 'ChillThirdPartyAssets/vuejs/_components/Entity/ import PickTemplate from 'ChillDocGeneratorAssets/vuejs/_components/PickTemplate.vue'; import OnTheFly from 'ChillMainAssets/vuejs/OnTheFly/components/OnTheFly.vue'; import ListWorkflowModal from 'ChillMainAssets/vuejs/_components/EntityWorkflow/ListWorkflowModal.vue'; -import PickWorkflow from 'ChillMainAssets/vuejs/_components/EntityWorkflow/PickWorkflow.vue'; import PersonText from 'ChillPersonAssets/vuejs/_components/Entity/PersonText.vue'; import {buildLinkCreate} from 'ChillMainAssets/lib/entity-workflow/api'; import { makeFetch } from 'ChillMainAssets/lib/api/apiMethods'; @@ -406,7 +405,6 @@ export default { PickTemplate, ListWorkflowModal, OnTheFly, - PickWorkflow, PersonText, }, i18n,