From bce7e2ad565f31d4f3f374d4fe082186f25c43f8 Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Thu, 13 Mar 2025 08:06:39 +0100 Subject: [PATCH 1/6] feat: refs #8118 enhance VnDropdown component; simplify usage in Claim and Ticket summaries --- src/components/common/VnDropdown.vue | 22 ++++++++++++---------- src/pages/Claim/Card/ClaimSummary.vue | 9 ++------- src/pages/Ticket/Card/TicketSummary.vue | 1 - 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/src/components/common/VnDropdown.vue b/src/components/common/VnDropdown.vue index 63d6b96f6..75b6878a0 100644 --- a/src/components/common/VnDropdown.vue +++ b/src/components/common/VnDropdown.vue @@ -11,14 +11,18 @@ const $props = defineProps({ type: Boolean, default: null, }, - moduleName: { - type: String, - default: null, - }, options: { type: Array, default: null, }, + optionLabel: { + type: String, + default: 'name', + }, + optionValue: { + type: String, + default: 'id', + }, }); async function changeState(value) { @@ -37,8 +41,9 @@ async function changeState(value) { > <VnSelect :options="$props.options" + :option-label="$props.optionLabel" + :option-value="$props.optionValue" hide-selected - option-value="code" hide-dropdown-icon focus-on-mount @update:model-value="changeState" @@ -46,11 +51,8 @@ async function changeState(value) { <template #option="scope"> <QItem v-bind="scope.itemProps"> <QItemSection> - <QItemLabel v-if="$props.moduleName === 'Ticket'"> - {{ scope.opt?.name }} - </QItemLabel> - <QItemLabel v-if="$props.moduleName === 'Claim'"> - {{ scope.opt?.description }} + <QItemLabel> + {{ scope.opt?.name || scope.opt?.description }} </QItemLabel> </QItemSection> </QItem> diff --git a/src/pages/Claim/Card/ClaimSummary.vue b/src/pages/Claim/Card/ClaimSummary.vue index 23a9f1073..25910cfc0 100644 --- a/src/pages/Claim/Card/ClaimSummary.vue +++ b/src/pages/Claim/Card/ClaimSummary.vue @@ -173,9 +173,8 @@ function openDialog(dmsId) { } async function changeState(value) { - const newState = claimStates.value.find((state) => state.code == value); await axios.patch(`Claims/updateClaim/${entityId.value}`, { - claimStateFk: newState.id, + claimStateFk: value, }); router.go(route.fullPath); } @@ -208,11 +207,7 @@ onMounted(async () => { {{ claim.id }} - {{ claim.client.name }} ({{ claim.client.id }}) </template> <template #header-right> - <VnDropdown - :moduleName="route.meta.moduleName" - :options="claimStates" - @change-state="changeState($event)" - /> + <VnDropdown :options="claimStates" @change-state="changeState($event)" /> </template> <template #menu="{ entity }"> <ClaimDescriptorMenu :claim="entity.claim" /> diff --git a/src/pages/Ticket/Card/TicketSummary.vue b/src/pages/Ticket/Card/TicketSummary.vue index a575d66e7..907276849 100644 --- a/src/pages/Ticket/Card/TicketSummary.vue +++ b/src/pages/Ticket/Card/TicketSummary.vue @@ -114,7 +114,6 @@ onMounted(async () => { </template> <template #header-right> <VnDropdown - :moduleName="route.meta.moduleName" :moduleId="entityId" :options="editableStates" :disable="!isEditable()" From 96b02a3b223591ad98226291d4101b37368bdc1a Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Thu, 13 Mar 2025 13:10:55 +0100 Subject: [PATCH 2/6] fix: refs #8118 correct spelling in success message for work center removal --- test/cypress/integration/route/agency/agencyWorkCenter.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/cypress/integration/route/agency/agencyWorkCenter.spec.js b/test/cypress/integration/route/agency/agencyWorkCenter.spec.js index a3e0aac81..79dcd6f70 100644 --- a/test/cypress/integration/route/agency/agencyWorkCenter.spec.js +++ b/test/cypress/integration/route/agency/agencyWorkCenter.spec.js @@ -9,7 +9,7 @@ describe('AgencyWorkCenter', () => { const messages = { dataCreated: 'Data created', alreadyAssigned: 'This workCenter is already assigned to this agency', - removed: 'WorkCenter removed successfully', + removed: 'Work center removed successfully', }; beforeEach(() => { From b7309298aa591f06059a389f8e8f0320a760fb95 Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Thu, 20 Mar 2025 10:04:27 +0100 Subject: [PATCH 3/6] refactor: refs #8118 simplify VnDropdown usage and replace onMounted data fetching with FetchData component --- src/components/common/VnDropdown.vue | 9 --------- src/pages/Claim/Card/ClaimSummary.vue | 18 ++++++++++++------ src/pages/Ticket/Card/TicketSummary.vue | 2 ++ 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/components/common/VnDropdown.vue b/src/components/common/VnDropdown.vue index 75b6878a0..1b3f2237b 100644 --- a/src/components/common/VnDropdown.vue +++ b/src/components/common/VnDropdown.vue @@ -48,15 +48,6 @@ async function changeState(value) { focus-on-mount @update:model-value="changeState" > - <template #option="scope"> - <QItem v-bind="scope.itemProps"> - <QItemSection> - <QItemLabel> - {{ scope.opt?.name || scope.opt?.description }} - </QItemLabel> - </QItemSection> - </QItem> - </template> </VnSelect> </QBtnDropdown> </template> diff --git a/src/pages/Claim/Card/ClaimSummary.vue b/src/pages/Claim/Card/ClaimSummary.vue index f43ba4dad..37e73a99d 100644 --- a/src/pages/Claim/Card/ClaimSummary.vue +++ b/src/pages/Claim/Card/ClaimSummary.vue @@ -183,14 +183,15 @@ async function changeState(value) { function claimUrl(section) { return '#/claim/' + entityId.value + '/' + section; } - -onMounted(async () => { - const { data } = await axios.get('ClaimStates'); - claimStates.value = data; -}); </script> <template> + <FetchData + url="ClaimStates" + :filter="{ fields: ['id', 'description'] }" + @on-fetch="(data) => (claimStates = data)" + auto-load + /> <FetchData url="ClaimDms" :filter="claimDmsFilter" @@ -208,7 +209,12 @@ onMounted(async () => { {{ claim.id }} - {{ claim.client.name }} ({{ claim.client.id }}) </template> <template #header-right> - <VnDropdown :options="claimStates" @change-state="changeState($event)" /> + <VnDropdown + :options="claimStates" + option-value="id" + option-label="description" + @change-state="changeState($event)" + /> </template> <template #menu="{ entity }"> <ClaimDescriptorMenu :claim="entity.claim" /> diff --git a/src/pages/Ticket/Card/TicketSummary.vue b/src/pages/Ticket/Card/TicketSummary.vue index f1c5a1072..9cd8a75d2 100644 --- a/src/pages/Ticket/Card/TicketSummary.vue +++ b/src/pages/Ticket/Card/TicketSummary.vue @@ -117,6 +117,8 @@ onMounted(async () => { :moduleId="entityId" :options="editableStates" :disable="!isEditable()" + :option-label="'name'" + :option-value="'code'" @change-state="changeState($event)" /> </template> From efb6c2357bd4c491472642878a63a9f948e39b78 Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Thu, 20 Mar 2025 12:55:46 +0100 Subject: [PATCH 4/6] fix: refs #8118 update Cypress parallel test execution to run with a single instance --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 7f4144a54..05ef34791 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -126,7 +126,7 @@ pipeline { sh "docker-compose ${env.COMPOSE_PARAMS} up -d" image.inside("--network ${env.COMPOSE_PROJECT}_default -e CI -e TZ --init") { - sh 'sh test/cypress/cypressParallel.sh 2' + sh 'sh test/cypress/cypressParallel.sh 1' } } } From 7de4bd4f4a4ce1de7a4fc3ed990b09c475272262 Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Thu, 20 Mar 2025 13:01:13 +0100 Subject: [PATCH 5/6] fix: refs #8118 update Cypress parallel test execution to run with two instances --- Jenkinsfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 05ef34791..7f4144a54 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -126,7 +126,7 @@ pipeline { sh "docker-compose ${env.COMPOSE_PARAMS} up -d" image.inside("--network ${env.COMPOSE_PROJECT}_default -e CI -e TZ --init") { - sh 'sh test/cypress/cypressParallel.sh 1' + sh 'sh test/cypress/cypressParallel.sh 2' } } } From 3e956cda6998f4b6bc5c59f91bd09aa49baa09d9 Mon Sep 17 00:00:00 2001 From: benjaminedc <benjaminedc@verdnatura.es> Date: Fri, 21 Mar 2025 09:26:09 +0100 Subject: [PATCH 6/6] fix: refs #8118 update VnDropdown options in ClaimSummary and TicketSummary components --- src/pages/Claim/Card/ClaimSummary.vue | 2 +- src/pages/Ticket/Card/TicketSummary.vue | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/pages/Claim/Card/ClaimSummary.vue b/src/pages/Claim/Card/ClaimSummary.vue index 37e73a99d..85f37f440 100644 --- a/src/pages/Claim/Card/ClaimSummary.vue +++ b/src/pages/Claim/Card/ClaimSummary.vue @@ -211,8 +211,8 @@ function claimUrl(section) { <template #header-right> <VnDropdown :options="claimStates" - option-value="id" option-label="description" + option-value="id" @change-state="changeState($event)" /> </template> diff --git a/src/pages/Ticket/Card/TicketSummary.vue b/src/pages/Ticket/Card/TicketSummary.vue index 9cd8a75d2..d79c5a9ac 100644 --- a/src/pages/Ticket/Card/TicketSummary.vue +++ b/src/pages/Ticket/Card/TicketSummary.vue @@ -114,9 +114,8 @@ onMounted(async () => { </template> <template #header-right> <VnDropdown - :moduleId="entityId" - :options="editableStates" :disable="!isEditable()" + :options="editableStates" :option-label="'name'" :option-value="'code'" @change-state="changeState($event)"