From 44e3eb779dae04057aa84f2a57d8fb413065beb8 Mon Sep 17 00:00:00 2001
From: alexm <alexm@verdnatura.es>
Date: Wed, 7 Aug 2024 14:40:28 +0200
Subject: [PATCH] feat(VnCard): use props searchbar

---
 src/components/common/VnCard.vue           |  9 ++-------
 src/pages/Account/Alias/Card/AliasCard.vue |  9 ++++++---
 src/pages/Account/Card/AccountCard.vue     | 10 ++++++----
 src/pages/Account/Role/Card/RoleCard.vue   | 10 ++++++----
 src/pages/Claim/Card/ClaimCard.vue         |  8 +++++---
 src/pages/Customer/Card/CustomerCard.vue   |  8 +++++---
 src/pages/Entry/Card/EntryCard.vue         |  8 +++++---
 src/pages/Item/Card/ItemCard.vue           |  8 +++++---
 src/pages/Parking/Card/ParkingCard.vue     |  8 +++++---
 src/pages/Route/Agency/Card/AgencyCard.vue |  8 +++++---
 src/pages/Route/Roadmap/RoadmapCard.vue    |  8 +++++---
 src/pages/Supplier/Card/SupplierCard.vue   |  4 +++-
 src/pages/Ticket/Card/TicketCard.vue       |  9 ++++++---
 src/pages/Travel/Card/TravelCard.vue       |  8 +++++---
 src/pages/Worker/Card/WorkerCard.vue       |  8 +++++---
 src/pages/Zone/Card/ZoneCard.vue           | 11 ++++++-----
 16 files changed, 80 insertions(+), 54 deletions(-)

diff --git a/src/components/common/VnCard.vue b/src/components/common/VnCard.vue
index b211a3c7f..24da5417b 100644
--- a/src/components/common/VnCard.vue
+++ b/src/components/common/VnCard.vue
@@ -20,10 +20,7 @@ const props = defineProps({
     searchUrl: { type: String, default: undefined },
     searchbarLabel: { type: String, default: '' },
     searchbarInfo: { type: String, default: '' },
-    searchCustomRouteRedirect: { type: String, default: undefined },
-    searchRedirect: { type: Boolean, default: true },
-    searchMakeFetch: { type: Boolean, default: true },
-    searchUrlQuery: { type: String, default: undefined },
+    searchbar: { type: Object, default: undefined },
 });
 
 const stateStore = useStateStore();
@@ -71,9 +68,7 @@ if (props.baseUrl) {
             :url="props.searchUrl"
             :label="props.searchbarLabel"
             :info="props.searchbarInfo"
-            :search-url="props.searchUrlQuery"
-            :custom-route-redirect-name="searchCustomRouteRedirect"
-            :redirect="searchRedirect"
+            v-bind="$attrs['searchbar']"
         />
     </slot>
     <slot v-else name="searchbar" />
diff --git a/src/pages/Account/Alias/Card/AliasCard.vue b/src/pages/Account/Alias/Card/AliasCard.vue
index f5103cf03..c4321c070 100644
--- a/src/pages/Account/Alias/Card/AliasCard.vue
+++ b/src/pages/Account/Alias/Card/AliasCard.vue
@@ -25,9 +25,12 @@ const searchBarDataKeys = {
         base-url="MailAliases"
         :descriptor="AliasDescriptor"
         :search-data-key="searchBarDataKeys[routeName]"
-        :search-custom-route-redirect="customRouteRedirectName"
-        :search-redirect="!!customRouteRedirectName"
         :searchbar-label="t('mailAlias.search')"
-        :searchbar-info="t('mailAlias.searchInfo')"
+        :searchbar="{
+            redirect: !!customRouteRedirectName,
+            customRouteRedirectName,
+            info: t('mailAlias.searchInfo'),
+            label: t('mailAlias.search'),
+        }"
     />
 </template>
diff --git a/src/pages/Account/Card/AccountCard.vue b/src/pages/Account/Card/AccountCard.vue
index e4db3ee2b..46d6e77b1 100644
--- a/src/pages/Account/Card/AccountCard.vue
+++ b/src/pages/Account/Card/AccountCard.vue
@@ -26,9 +26,11 @@ const searchBarDataKeys = {
         data-key="Account"
         :descriptor="AccountDescriptor"
         :search-data-key="searchBarDataKeys[routeName]"
-        :search-custom-route-redirect="customRouteRedirectName"
-        :search-redirect="!!customRouteRedirectName"
-        :searchbar-label="t('account.search')"
-        :searchbar-info="t('account.searchInfo')"
+        :searchbar="{
+            redirect: !!customRouteRedirectName,
+            customRouteRedirectName,
+            label: t('account.search'),
+            info: t('account.searchInfo'),
+        }"
     />
 </template>
diff --git a/src/pages/Account/Role/Card/RoleCard.vue b/src/pages/Account/Role/Card/RoleCard.vue
index 8a65d37d7..c24b36745 100644
--- a/src/pages/Account/Role/Card/RoleCard.vue
+++ b/src/pages/Account/Role/Card/RoleCard.vue
@@ -23,9 +23,11 @@ const searchBarDataKeys = {
         data-key="Role"
         :descriptor="RoleDescriptor"
         :search-data-key="searchBarDataKeys[routeName]"
-        :search-custom-route-redirect="customRouteRedirectName"
-        :search-redirect="!!customRouteRedirectName"
-        :searchbar-label="t('role.searchRoles')"
-        :searchbar-info="t('role.searchInfo')"
+        :searchbar="{
+            redirect: !!customRouteRedirectName,
+            customRouteRedirectName,
+            label: t('role.searchRoles'),
+            info: t('role.searchInfo'),
+        }"
     />
 </template>
diff --git a/src/pages/Claim/Card/ClaimCard.vue b/src/pages/Claim/Card/ClaimCard.vue
index 19d63e3b2..09eaa13d4 100644
--- a/src/pages/Claim/Card/ClaimCard.vue
+++ b/src/pages/Claim/Card/ClaimCard.vue
@@ -11,9 +11,11 @@ import filter from './ClaimFilter.js';
         :descriptor="ClaimDescriptor"
         :filter-panel="ClaimFilter"
         search-data-key="ClaimList"
-        search-url="Claims/filter"
-        searchbar-label="Search claim"
-        searchbar-info="You can search by claim id or customer name"
         :filter="filter"
+        :searchbar="{
+            url: 'Claims/filter',
+            label: 'Search claim',
+            info: 'You can search by claim id or customer name',
+        }"
     />
 </template>
diff --git a/src/pages/Customer/Card/CustomerCard.vue b/src/pages/Customer/Card/CustomerCard.vue
index 17f123e7b..0cc41e024 100644
--- a/src/pages/Customer/Card/CustomerCard.vue
+++ b/src/pages/Customer/Card/CustomerCard.vue
@@ -10,8 +10,10 @@ import CustomerFilter from '../CustomerFilter.vue';
         :descriptor="CustomerDescriptor"
         :filter-panel="CustomerFilter"
         search-data-key="CustomerList"
-        search-url="Clients/extendedListFilter"
-        searchbar-label="Search customer"
-        searchbar-info="You can search by customer id or name"
+        :searchbar="{
+            url: 'Clients/extendedListFilter',
+            label: 'Search customer',
+            info: 'You can search by customer id or name',
+        }"
     />
 </template>
diff --git a/src/pages/Entry/Card/EntryCard.vue b/src/pages/Entry/Card/EntryCard.vue
index 9fadd2d06..75a3567cb 100644
--- a/src/pages/Entry/Card/EntryCard.vue
+++ b/src/pages/Entry/Card/EntryCard.vue
@@ -10,8 +10,10 @@ import EntryFilter from '../EntryFilter.vue';
         :descriptor="EntryDescriptor"
         :filter-panel="EntryFilter"
         search-data-key="EntryList"
-        search-url="Entries/filter"
-        searchbar-label="Search entries"
-        searchbar-info="You can search by entry reference"
+        :searchbar="{
+            url: 'Entries/filter',
+            label: 'Search entries',
+            info: 'You can search by entry reference',
+        }"
     />
 </template>
diff --git a/src/pages/Item/Card/ItemCard.vue b/src/pages/Item/Card/ItemCard.vue
index 66d46f576..01eda25b0 100644
--- a/src/pages/Item/Card/ItemCard.vue
+++ b/src/pages/Item/Card/ItemCard.vue
@@ -10,8 +10,10 @@ import ItemListFilter from '../ItemListFilter.vue';
         :descriptor="ItemDescriptor"
         :filter-panel="ItemListFilter"
         search-data-key="ItemList"
-        search-url="Items/filter"
-        searchbar-label="searchbar.label"
-        searchbar-info="searchbar.info"
+        :searchbar="{
+            url: 'Items/filter',
+            label: 'searchbar.labelr',
+            info: 'searchbar.info',
+        }"
     />
 </template>
diff --git a/src/pages/Parking/Card/ParkingCard.vue b/src/pages/Parking/Card/ParkingCard.vue
index 620f4bb2d..5912c424c 100644
--- a/src/pages/Parking/Card/ParkingCard.vue
+++ b/src/pages/Parking/Card/ParkingCard.vue
@@ -16,8 +16,10 @@ const filter = {
         :descriptor="ParkingDescriptor"
         :filter-panel="ParkingFilter"
         search-data-key="ParkingList"
-        search-url="Parkings"
-        searchbar-label="parking.searchBar.label"
-        searchbar-info="parking.searchBar.info"
+        :searchbar="{
+            url: 'Parkings',
+            label: 'parking.searchBar.label',
+            info: 'parking.searchBar.info',
+        }"
     />
 </template>
diff --git a/src/pages/Route/Agency/Card/AgencyCard.vue b/src/pages/Route/Agency/Card/AgencyCard.vue
index e1eebabf7..365cb6f58 100644
--- a/src/pages/Route/Agency/Card/AgencyCard.vue
+++ b/src/pages/Route/Agency/Card/AgencyCard.vue
@@ -8,8 +8,10 @@ import VnCard from 'components/common/VnCard.vue';
         base-url="Agencies"
         :descriptor="AgencyDescriptor"
         search-data-key="AgencyList"
-        search-url="Agencies"
-        searchbar-label="agency.searchBar.label"
-        searchbar-info="agency.searchBar.info"
+        :searchbar="{
+            url: 'Agencies',
+            label: 'agency.searchBar.label',
+            info: 'agency.searchBar.info',
+        }"
     />
 </template>
diff --git a/src/pages/Route/Roadmap/RoadmapCard.vue b/src/pages/Route/Roadmap/RoadmapCard.vue
index 4e8f8dd50..02450887b 100644
--- a/src/pages/Route/Roadmap/RoadmapCard.vue
+++ b/src/pages/Route/Roadmap/RoadmapCard.vue
@@ -10,8 +10,10 @@ import RoadmapFilter from 'pages/Route/Roadmap/RoadmapFilter.vue';
         :descriptor="RoadmapDescriptor"
         :filter-panel="RoadmapFilter"
         search-data-key="RoadmapList"
-        search-url="Roadmaps"
-        searchbar-label="Search roadmap"
-        searchbar-info="You can search by roadmap id or customer name"
+        :searchbar="{
+            url: 'Roadmaps',
+            label: 'Search roadmap',
+            info: 'You can search by roadmap id or customer name',
+        }"
     />
 </template>
diff --git a/src/pages/Supplier/Card/SupplierCard.vue b/src/pages/Supplier/Card/SupplierCard.vue
index ed4ce7eb2..880d2a977 100644
--- a/src/pages/Supplier/Card/SupplierCard.vue
+++ b/src/pages/Supplier/Card/SupplierCard.vue
@@ -12,6 +12,8 @@ import SupplierListFilter from '../SupplierListFilter.vue';
         search-data-key="SupplierList"
         search-url="Suppliers/filter"
         searchbar-label="Search suppliers"
-        search-url-query="table"
+        :searchbar="{
+            searchUrl: 'table',
+        }"
     />
 </template>
diff --git a/src/pages/Ticket/Card/TicketCard.vue b/src/pages/Ticket/Card/TicketCard.vue
index 8c9745c02..11ac53832 100644
--- a/src/pages/Ticket/Card/TicketCard.vue
+++ b/src/pages/Ticket/Card/TicketCard.vue
@@ -11,6 +11,7 @@ const { t } = useI18n();
 const route = useRoute();
 
 const routeName = computed(() => route.name);
+const customRouteRedirectName = computed(() => routeName.value);
 </script>
 <template>
     <VnCard
@@ -19,8 +20,10 @@ const routeName = computed(() => route.name);
         :filter-panel="TicketFilter"
         :descriptor="TicketDescriptor"
         search-data-key="TicketList"
-        :search-custom-route-redirect="routeName"
-        :searchbar-label="t('card.search')"
-        :searchbar-info="t('card.searchInfo')"
+        :searchbar="{
+            customRouteRedirectName,
+            label: t('card.search'),
+            info: t('card.searchInfo'),
+        }"
     />
 </template>
diff --git a/src/pages/Travel/Card/TravelCard.vue b/src/pages/Travel/Card/TravelCard.vue
index a3c1430e9..2a42d4580 100644
--- a/src/pages/Travel/Card/TravelCard.vue
+++ b/src/pages/Travel/Card/TravelCard.vue
@@ -35,10 +35,12 @@ const filter = {
         data-key="Travel"
         base-url="Travels"
         search-data-key="TravelList"
-        searchbar-label="Search travel"
-        searchbar-info="You can search by travel id or name"
-        search-url="Travels"
         :filter="filter"
         :descriptor="TravelDescriptor"
+        :searchbar="{
+            url: 'Travels',
+            label: 'Search travel',
+            info: 'You can search by travel id or name',
+        }"
     />
 </template>
diff --git a/src/pages/Worker/Card/WorkerCard.vue b/src/pages/Worker/Card/WorkerCard.vue
index 1a5bacf2f..8d8e348e0 100644
--- a/src/pages/Worker/Card/WorkerCard.vue
+++ b/src/pages/Worker/Card/WorkerCard.vue
@@ -10,8 +10,10 @@ import WorkerFilter from '../WorkerFilter.vue';
         :descriptor="WorkerDescriptor"
         :filter-panel="WorkerFilter"
         search-data-key="WorkerList"
-        search-url="Workers/filter"
-        searchbar-label="Search worker"
-        searchbar-info="You can search by worker id or name"
+        :searchbar="{
+            url: 'Workers/filter',
+            label: 'Search worker',
+            info: 'You can search by worker id or name',
+        }"
     />
 </template>
diff --git a/src/pages/Zone/Card/ZoneCard.vue b/src/pages/Zone/Card/ZoneCard.vue
index 59049a5b3..84a1df5f5 100644
--- a/src/pages/Zone/Card/ZoneCard.vue
+++ b/src/pages/Zone/Card/ZoneCard.vue
@@ -28,11 +28,12 @@ const searchBarDataKeys = {
         data-key="Zone"
         :descriptor="ZoneDescriptor"
         :search-data-key="searchBarDataKeys[routeName]"
-        :search-custom-route-redirect="customRouteRedirectName"
-        :search-redirect="!!customRouteRedirectName"
-        :search-make-fetch="searchbarMakeFetch"
-        :searchbar-label="t('list.searchZone')"
-        :searchbar-info="t('list.searchInfo')"
+        :filter-panel="ZoneFilterPanel"
+        :searchbar="{
+            url: 'Zones',
+            label: t('list.searchZone'),
+            info: t('list.searchInfo'),
+        }"
     >
         <template #searchbar>
             <ZoneSearchbar />