From 6748bc6570e2132b88afe211b892b7fdea0d0f24 Mon Sep 17 00:00:00 2001 From: Matt Blenkinsop Date: Tue, 29 Oct 2024 17:12:24 +0000 Subject: [PATCH] Bug 38262: Update UI --- .../en/modules/admin/additional-fields.tt | 5 +- .../vue/components/Vendors/VendorFormAdd.vue | 12 +++++ .../js/vue/components/Vendors/VendorList.vue | 51 ++++++++++++++++++- .../js/vue/components/Vendors/VendorShow.vue | 9 ++++ .../js/vue/fetch/acquisition-api-client.js | 2 +- 5 files changed, 74 insertions(+), 5 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/additional-fields.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/additional-fields.tt index 62e85cc3eab..0db21aa7981 100755 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/additional-fields.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/additional-fields.tt @@ -24,7 +24,7 @@ [% marcfield_tables = ['subscription', 'aqorders'] %] -[% searchable_tables = ['subscription', 'aqbasket', 'aqinvoices', 'erm_licenses', 'erm_agreements', 'erm_packages'] %] +[% searchable_tables = ['subscription', 'aqbasket', 'aqinvoices', 'erm_licenses', 'erm_agreements', 'erm_packages', 'aqbooksellers'] %] [% show_marcfield = marcfield_tables.grep('^' _ tablename _ '$').size ? 1 : 0 %] [% show_searchable = searchable_tables.grep('^' _ tablename _ '$').size ? 1 : 0 %] @@ -130,7 +130,8 @@ [% IF CAN_user_acquisition_order_manage %] [% WRAPPER table_option value="aqbasket" %]Order baskets[% END %] [% WRAPPER table_option value="aqorders" %]Order lines[% END %] - [% END %] + [% WRAPPER table_option value="aqbooksellers:vendor" %]Vendors[% END %] + [% END %] [% END %] [% IF CAN_user_erm %] 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 8abe3d977d8..c38128ac262 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 @@ -11,6 +11,11 @@ +
@@ -142,6 +150,9 @@ export default { ) } }, + additionalFieldsChanged(additionalFieldValues) { + this.vendor.extended_attributes = additionalFieldValues + }, }, components: { ButtonSubmit, @@ -149,6 +160,7 @@ export default { VendorContacts, VendorOrderingInformation, VendorInterfaces, + AdditionalFieldsEntry, }, name: "VendorFormAdd", } 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 7d3c30ba3ef..71c7f72e2f2 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 @@ -12,6 +12,8 @@ this.tableURL(), add_filters: true, @@ -120,7 +124,15 @@ export default { }, beforeRouteEnter(to, from, next) { next(vm => { - vm.getVendorCount().then(() => (vm.initialized = true)) + vm.getVendorCount().then(() => + vm + .getSearchableAdditionalFields() + .then(() => + vm + .getSearchableAVOptions() + .then(() => (vm.initialized = true)) + ) + ) if (to.query.supplier) { vm.searchTerm = to.query.supplier } @@ -230,6 +242,41 @@ export default { }, ] }, + async getSearchableAdditionalFields() { + const client = APIClient.additional_fields + await client.additional_fields.getAll("vendor").then( + searchable_additional_fields => { + this.searchable_additional_fields = + searchable_additional_fields.filter( + field => field.searchable + ) + }, + error => {} + ) + }, + async getSearchableAVOptions() { + const client_av = APIClient.authorised_values + let av_cat_array = this.searchable_additional_fields + .filter(field => field.authorised_value_category_name) + .map(field => field.authorised_value_category_name) + + await client_av.values + .getCategoriesWithValues([ + ...new Set(av_cat_array.map(av_cat => '"' + av_cat + '"')), + ]) // unique + .then(av_categories => { + av_cat_array.forEach(av_cat => { + let av_match = av_categories.find( + element => element.category_name == av_cat + ) + this.searchable_av_options[av_cat] = + av_match.authorised_values.map(av => ({ + value: av.value, + label: av.description, + })) + }) + }) + }, }, components: { flatPickr, Toolbar, ToolbarButton, KohaTable }, name: "VendorList", diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorShow.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorShow.vue index 8208a1b4472..653f7c43aab 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorShow.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorShow.vue @@ -57,6 +57,13 @@
+
-- 2.39.5 (Apple Git-154)