From 0b1d416b4956fc753d004fb99a4cd0780e695fa5 Mon Sep 17 00:00:00 2001 From: Matt Blenkinsop Date: Wed, 18 Jun 2025 16:38:46 +0100 Subject: [PATCH] Bug 38201: Migrate vendors to the framework Signed-off-by: Michaela Sieber Signed-off-by: Jonathan Druart Signed-off-by: Lucas Gass --- .../Elements/InputNumberElement.vue | 4 +- .../prog/js/vue/components/FormElement.vue | 1 + .../prog/js/vue/components/LeftMenu.vue | 11 +- .../js/vue/components/RelationshipWidget.vue | 4 +- .../prog/js/vue/components/ShowElement.vue | 5 +- .../prog/js/vue/components/Vendors/Main.vue | 61 +- .../vue/components/Vendors/VendorContacts.vue | 367 +++------ .../vue/components/Vendors/VendorResource.vue | 733 ++++++++++++++++++ .../prog/js/vue/composables/base-element.js | 3 + .../prog/js/vue/routes/acquisitions.js | 10 +- 10 files changed, 881 insertions(+), 318 deletions(-) create mode 100644 koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorResource.vue diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Elements/InputNumberElement.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Elements/InputNumberElement.vue index 5f73d2f2de..42a26222af 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Elements/InputNumberElement.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Elements/InputNumberElement.vue @@ -1,10 +1,11 @@ @@ -16,6 +17,7 @@ export default { modelValue: Number, placeholder: String, required: Boolean, + size: Number | null, }, emits: ["update:modelValue"], setup(props, { emit }) { diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/FormElement.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/FormElement.vue index ea2b963b06..07290d8bbe 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/FormElement.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/FormElement.vue @@ -12,6 +12,7 @@ v-model="resource[attr.name]" :placeholder="attr.placeholder || attr.label" :required="attr.required ? true : false" + :size="attr.size" /> diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorResource.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorResource.vue new file mode 100644 index 0000000000..5a48952e8a --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorResource.vue @@ -0,0 +1,733 @@ + + diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/composables/base-element.js b/koha-tmpl/intranet-tmpl/prog/js/vue/composables/base-element.js index 4d4d147f78..6436f07926 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/composables/base-element.js +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/composables/base-element.js @@ -122,6 +122,9 @@ export function useBaseElement(instancedElement) { } }); } + if (instancedElement.attr.indexRequired) { + acc.index = instancedElement.index; + } return acc; }, {}); const attr = show diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/routes/acquisitions.js b/koha-tmpl/intranet-tmpl/prog/js/vue/routes/acquisitions.js index f8e8b02317..48b2718f73 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/routes/acquisitions.js +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/routes/acquisitions.js @@ -4,6 +4,7 @@ import Home from "../components/Vendors/Home.vue"; import VendorList from "../components/Vendors/VendorList.vue"; import VendorShow from "../components/Vendors/VendorShow.vue"; import VendorFormAdd from "../components/Vendors/VendorFormAdd.vue"; +import ResourceWrapper from "../components/ResourceWrapper.vue"; import { $__ } from "../i18n"; @@ -33,31 +34,32 @@ export const routes = [ icon: "fa fa-shopping-cart", is_end_node: true, breadcrumbFormat: vendorSearchBreadcrumb, + resource: "Vendors/VendorResource.vue", children: [ { path: "", name: "VendorList", - component: markRaw(VendorList), + component: markRaw(ResourceWrapper), alternateLeftMenu: "AcquisitionsMenu", }, { path: ":id", name: "VendorShow", - component: markRaw(VendorShow), + component: markRaw(ResourceWrapper), title: $__("Show vendor"), alternateLeftMenu: "VendorMenu", }, { path: "add", name: "VendorFormAdd", - component: markRaw(VendorFormAdd), + component: markRaw(ResourceWrapper), title: $__("Add vendor"), alternateLeftMenu: "none", }, { path: "edit/:id", name: "VendorFormAddEdit", - component: markRaw(VendorFormAdd), + component: markRaw(ResourceWrapper), title: $__("Edit vendor"), alternateLeftMenu: "VendorMenu", },