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)"