From c69e0cd08cf9657879f13c7b42f1bb35eb2778e3 Mon Sep 17 00:00:00 2001
From: Matt Blenkinsop <matt.blenkinsop@ptfs-europe.com>
Date: Thu, 7 Nov 2024 13:24:00 +0000
Subject: [PATCH] Bug 38010: Rebase for bug 38390

---
 api/v1/swagger/paths/acquisitions_vendors.yaml         |  2 +-
 .../prog/js/vue/components/Vendors/VendorFormAdd.vue   |  1 +
 .../prog/js/vue/components/Vendors/VendorList.vue      | 10 +++++-----
 .../js/vue/components/Vendors/VendorSubscriptions.vue  |  4 ++--
 .../prog/js/vue/fetch/acquisition-api-client.js        |  2 +-
 5 files changed, 10 insertions(+), 9 deletions(-)

diff --git a/api/v1/swagger/paths/acquisitions_vendors.yaml b/api/v1/swagger/paths/acquisitions_vendors.yaml
index 98980dc757f..52463cd1493 100644
--- a/api/v1/swagger/paths/acquisitions_vendors.yaml
+++ b/api/v1/swagger/paths/acquisitions_vendors.yaml
@@ -149,7 +149,7 @@
           enum:
             - aliases
             - baskets
-            - subscriptions
+            - subscriptions+count
             - interfaces
             - contacts
             - contracts
diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorFormAdd.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorFormAdd.vue
index 58ebab686f9..d8f60195084 100644
--- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorFormAdd.vue
+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorFormAdd.vue
@@ -112,6 +112,7 @@ export default {
                 });
             }
             delete vendor.physical;
+            delete vendor.subscriptions_count;
 
             vendor.contacts = vendor.contacts.map(
                 ({ id, booksellerid, ...requiredProperties }) =>
diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorList.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorList.vue
index b6cc8c62ecc..d22798c1f0e 100644
--- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorList.vue
+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorList.vue
@@ -62,7 +62,7 @@ export default {
             searchTerm: null,
             tableOptions: {
                 columns: this.getTableColumns(),
-                options: { embed: "aliases,baskets,subscriptions" },
+                options: { embed: "aliases,baskets,subscriptions+count" },
                 url: () => this.tableURL(),
                 add_filters: true,
                 filters_options: {
@@ -85,8 +85,8 @@ export default {
                                 should_display: row =>
                                     (!row.baskets ||
                                         row.baskets.length === 0) &&
-                                    (!row.subscriptions ||
-                                        row.subscriptions.length === 0),
+                                    (!row.subscriptions_count ||
+                                        row.subscriptions_count === 0),
                             },
                         },
                     ],
@@ -234,13 +234,13 @@ export default {
                     searchable: false,
                     orderable: false,
                     render(data, type, row, meta) {
-                        return row.subscriptions.length
+                        return row.subscriptions_count
                             ? '<a href="/cgi-bin/koha/serials/serials-search.pl?bookseller_filter=' +
                                   row.name +
                                   "&searched=1" +
                                   '" class="show">' +
                                   escape_str(
-                                      `${row.subscriptions.length} subscription(s)`
+                                      `${row.subscriptions_count} subscription(s)`
                                   ) +
                                   "</a>"
                             : escape_str(__("No subscriptions"));
diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorSubscriptions.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorSubscriptions.vue
index e6e31a8343a..bfc1a6ede32 100644
--- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorSubscriptions.vue
+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorSubscriptions.vue
@@ -8,9 +8,9 @@
             <a
                 v-if="isUserPermitted('CAN_user_serials')"
                 :href="`/cgi-bin/koha/serials/serials-search.pl?bookseller_filter=${vendor.name}&searched=1`"
-                >{{ vendor.subscriptions.length }}</a
+                >{{ vendor.subscriptions_count }}</a
             >
-            <span v-else>{{ vendor.subscriptions.length }}</span>
+            <span v-else>{{ vendor.subscriptions_count }}</span>
         </p>
     </fieldset>
 </template>
diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/acquisition-api-client.js b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/acquisition-api-client.js
index 1d20627209a..373b9d6fd47 100644
--- a/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/acquisition-api-client.js
+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/fetch/acquisition-api-client.js
@@ -14,7 +14,7 @@ export class AcquisitionAPIClient extends HttpClient {
                     endpoint: "vendors/" + id,
                     headers: {
                         "x-koha-embed":
-                            "aliases,subscriptions,interfaces,contacts,contracts",
+                            "aliases,subscriptions+count,interfaces,contacts,contracts",
                     },
                 }),
             getAll: (query, params) =>
-- 
2.48.1