From 891c0d2347159527d0493bc7ccf349eaed612f38 Mon Sep 17 00:00:00 2001
From: jorgep <jorgep@verdnatura.es>
Date: Fri, 21 Jun 2024 13:05:28 +0200
Subject: [PATCH 1/4] feat: refs 6238 show notes & create vnPopup

---
 src/components/common/VnPopup.vue    | 23 +++++++++++++++++++++
 src/components/ui/CardDescriptor.vue |  3 ++-
 src/i18n/locale/en.yml               |  1 +
 src/i18n/locale/es.yml               |  1 +
 src/pages/Travel/ExtraCommunity.vue  | 30 +++++++++++++++++++++-------
 5 files changed, 50 insertions(+), 8 deletions(-)
 create mode 100644 src/components/common/VnPopup.vue

diff --git a/src/components/common/VnPopup.vue b/src/components/common/VnPopup.vue
new file mode 100644
index 000000000..7dcb08f53
--- /dev/null
+++ b/src/components/common/VnPopup.vue
@@ -0,0 +1,23 @@
+<script setup>
+defineProps({
+    title: { type: String, default: null },
+    content: { type: [String, Number], default: null },
+});
+</script>
+<template>
+    <QPopupProxy>
+        <QCard>
+            <slot name="title">
+                <div
+                    class="header q-px-sm q-py-xs q-ma-none text-white text-bold bg-primary"
+                    v-text="title"
+                />
+            </slot>
+            <slot name="content">
+                <QCardSection class="change-detail q-pa-sm">
+                    {{ content }}
+                </QCardSection>
+            </slot>
+        </QCard>
+    </QPopupProxy>
+</template>
diff --git a/src/components/ui/CardDescriptor.vue b/src/components/ui/CardDescriptor.vue
index b2084479d..8bb2a603e 100644
--- a/src/components/ui/CardDescriptor.vue
+++ b/src/components/ui/CardDescriptor.vue
@@ -39,6 +39,7 @@ const $props = defineProps({
 });
 
 const state = useState();
+const route = useRoute();
 const { t } = useI18n();
 const { viewSummary } = useSummaryDialog();
 let arrayData;
@@ -57,7 +58,7 @@ onBeforeMount(async () => {
     store = arrayData.store;
     entity = computed(() => (Array.isArray(store.data) ? store.data[0] : store.data));
     // It enables to load data only once if the module is the same as the dataKey
-    if ($props.dataKey !== useRoute().meta.moduleName) await getData();
+    if ($props.dataKey !== route.meta.moduleName || !route.params.id) await getData();
     watch(
         () => [$props.url, $props.filter],
         async () => await getData()
diff --git a/src/i18n/locale/en.yml b/src/i18n/locale/en.yml
index b3a85eefa..645e12b7a 100644
--- a/src/i18n/locale/en.yml
+++ b/src/i18n/locale/en.yml
@@ -113,6 +113,7 @@ globals:
     name: Name
     new: New
     comment: Comment
+    observations: Observations
 errors:
     statusUnauthorized: Access denied
     statusInternalServerError: An internal server error has ocurred
diff --git a/src/i18n/locale/es.yml b/src/i18n/locale/es.yml
index d03ee9d5c..29373efd0 100644
--- a/src/i18n/locale/es.yml
+++ b/src/i18n/locale/es.yml
@@ -113,6 +113,7 @@ globals:
     name: Nombre
     new: Nuevo
     comment: Comentario
+    observations: Observaciones
 errors:
     statusUnauthorized: Acceso denegado
     statusInternalServerError: Ha ocurrido un error interno del servidor
diff --git a/src/pages/Travel/ExtraCommunity.vue b/src/pages/Travel/ExtraCommunity.vue
index 639c7d894..480240b26 100644
--- a/src/pages/Travel/ExtraCommunity.vue
+++ b/src/pages/Travel/ExtraCommunity.vue
@@ -2,7 +2,6 @@
 import { onMounted, ref, computed, watch } from 'vue';
 import { QBtn } from 'quasar';
 import { useI18n } from 'vue-i18n';
-import { useRouter } from 'vue-router';
 
 import SupplierDescriptorProxy from 'src/pages/Supplier/Card/SupplierDescriptorProxy.vue';
 import TravelDescriptorProxy from 'src/pages/Travel/Card/TravelDescriptorProxy.vue';
@@ -19,8 +18,8 @@ import { usePrintService } from 'composables/usePrintService';
 import VnSubToolbar from 'src/components/ui/VnSubToolbar.vue';
 import axios from 'axios';
 import RightMenu from 'src/components/common/RightMenu.vue';
+import VnPopup from 'src/components/common/VnPopup.vue';
 
-const router = useRouter();
 const stateStore = useStateStore();
 const { t } = useI18n();
 const { openReport } = usePrintService();
@@ -125,6 +124,10 @@ const tableColumnComponents = {
         component: 'span',
         attrs: {},
     },
+    notes: {
+        component: 'span',
+        attrs: {},
+    },
 };
 
 const columns = computed(() => [
@@ -250,6 +253,14 @@ const columns = computed(() => [
         sortable: true,
         format: (value) => toDate(value),
     },
+    {
+        label: t('notes'),
+        field: '',
+        name: 'notes',
+        align: 'center',
+        showValue: false,
+        sortable: true,
+    },
 ]);
 
 async function getData() {
@@ -298,10 +309,6 @@ const saveFieldValue = async (val, field, index) => {
     }
 };
 
-const navigateToTravelId = (id) => {
-    router.push({ path: `/travel/${id}` });
-};
-
 const stopEventPropagation = (event, col) => {
     // Detener la propagación del evento de los siguientes elementos para evitar el click sobre la row que dispararía  la función navigateToTravelId
     if (!['ref', 'id', 'cargoSupplierNickname', 'kg'].includes(col.name)) return;
@@ -486,7 +493,7 @@ const getColor = (percentage) => {
                 <QTr
                     :props="props"
                     class="cursor-pointer bg-travel"
-                    @click="navigateToTravelId(props.row.id)"
+                    @click="$router.push({ path: `/travel/${props.row.id}` })"
                     @dragenter="handleDragEnter($event, props.rowIndex)"
                     @dragover.prevent
                     @drop="handleDrop()"
@@ -607,6 +614,14 @@ const getColor = (percentage) => {
                     <QTd />
                     <QTd />
                     <QTd />
+                    <QTd>
+                        <QBtn icon="comment" size="sm" color="primary">
+                            <VnPopup
+                                :title="t('globals.observations')"
+                                :content="entry.evaNotes"
+                            />
+                        </QBtn>
+                    </QTd>
                 </QTr>
             </template>
         </QTable>
@@ -675,6 +690,7 @@ en:
     physicKg: Phy. KG
     shipped: W. shipped
     landed: W. landed
+    observations: Observations
 
 es:
     searchExtraCommunity: Buscar por envío extra comunitario

From bebb20c76f45b1f87211b07a1ee962a691154af5 Mon Sep 17 00:00:00 2001
From: jorgep <jorgep@verdnatura.es>
Date: Fri, 21 Jun 2024 13:07:43 +0200
Subject: [PATCH 2/4] fix: refs 6238 drop locale

---
 src/pages/Travel/ExtraCommunity.vue | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/pages/Travel/ExtraCommunity.vue b/src/pages/Travel/ExtraCommunity.vue
index 480240b26..0a00c6419 100644
--- a/src/pages/Travel/ExtraCommunity.vue
+++ b/src/pages/Travel/ExtraCommunity.vue
@@ -690,7 +690,6 @@ en:
     physicKg: Phy. KG
     shipped: W. shipped
     landed: W. landed
-    observations: Observations
 
 es:
     searchExtraCommunity: Buscar por envío extra comunitario

From 606c629d7755d0bdf95e200a86e1005aef3fb880 Mon Sep 17 00:00:00 2001
From: jorgep <jorgep@verdnatura.es>
Date: Fri, 21 Jun 2024 13:47:42 +0200
Subject: [PATCH 3/4] feat: refs #6238 function name

---
 src/components/CrudModel.vue | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/components/CrudModel.vue b/src/components/CrudModel.vue
index fe15d2db1..406516d46 100644
--- a/src/components/CrudModel.vue
+++ b/src/components/CrudModel.vue
@@ -135,7 +135,7 @@ async function onSubmit() {
     await saveChanges($props.saveFn ? formData.value : null);
 }
 
-async function onSumbitAndGo() {
+async function onSubmitAndGo() {
     await onSubmit();
     push({ path: $props.goTo });
 }
@@ -324,7 +324,7 @@ watch(formUrl, async () => {
             />
             <QBtnDropdown
                 v-if="$props.goTo && $props.defaultSave"
-                @click="onSumbitAndGo"
+                @click="onSubmitAndGo"
                 :label="tMobile('globals.saveAndContinue')"
                 :title="t('globals.saveAndContinue')"
                 :disable="!hasChanges"

From 44d762694a2f5b367b6faa0a9adcae7b03819796 Mon Sep 17 00:00:00 2001
From: jorgep <jorgep@verdnatura.es>
Date: Fri, 21 Jun 2024 13:53:35 +0200
Subject: [PATCH 4/4] fix: refs 6238 replace style

---
 src/pages/Travel/ExtraCommunity.vue | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/pages/Travel/ExtraCommunity.vue b/src/pages/Travel/ExtraCommunity.vue
index 0a00c6419..98648512f 100644
--- a/src/pages/Travel/ExtraCommunity.vue
+++ b/src/pages/Travel/ExtraCommunity.vue
@@ -615,7 +615,13 @@ const getColor = (percentage) => {
                     <QTd />
                     <QTd />
                     <QTd>
-                        <QBtn icon="comment" size="sm" color="primary">
+                        <QBtn
+                            v-if="entry.evaNotes"
+                            icon="comment"
+                            size="sm"
+                            flat
+                            color="primary"
+                        >
                             <VnPopup
                                 :title="t('globals.observations')"
                                 :content="entry.evaNotes"