diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/BaseResource.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/BaseResource.vue index 065bb6d887..2524bf7b07 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/BaseResource.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/BaseResource.vue @@ -82,18 +82,6 @@ export default { const format_date = $date; const patron_to_html = $patron_to_html; - const optionalResourceProps = { - embedded: props.embedded || false, - extendedAttributesResourceType: - props.extendedAttributesResourceType || null, - resourceListFiltersRequired: - props.resourceListFiltersRequired || null, - formGroupsDisplayMode: props.formGroupsDisplayMode || null, - appendToShow: props.appendToShow || [], - nameAttr: props.nameAttr || null, - idAttr: props.idAttr || null, - }; - return { ...props, setConfirmationDialog, @@ -107,12 +95,23 @@ export default { get_lib_from_av, map_av_dt_filter, build_url, - optionalResourceProps, }; }, data() { + const optionalResourceProps = { + embedded: this.embedded || false, + extendedAttributesResourceType: + this.extendedAttributesResourceType || null, + resourceListFiltersRequired: + this.resourceListFiltersRequired || null, + formGroupsDisplayMode: this.formGroupsDisplayMode || null, + appendToShow: this.appendToShow ? this.appendToShow() : [], + nameAttr: this.nameAttr || null, + idAttr: this.idAttr || null, + }; return { resourceToBeGenerated: {}, + optionalResourceProps, }; }, methods: { diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackageResource.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackageResource.vue index 0fdc690ba0..f30cb4a6b3 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackageResource.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackageResource.vue @@ -19,94 +19,6 @@ export default { const vendorStore = inject("vendorStore"); const { vendors } = storeToRefs(vendorStore); - const appendToShow = get_lib_from_av => { - return [ - { - type: "component", - name: __("Titles"), - hidden: erm_package => erm_package, - componentPath: "./RelationshipTableDisplay.vue", - componentProps: { - tableOptions: { - type: "object", - value: { - columns: [ - { - title: __("Name"), - data: "title.publication_title", - searchable: true, - orderable: true, - render: function ( - data, - type, - row, - meta - ) { - return ( - '' + - escape_str( - `${row.title.publication_title} (#${row.title.title_id})` - ) + - "" - ); - }, - }, - { - title: __("Publication type"), - data: "title.publication_type", - searchable: true, - orderable: true, - render: function ( - data, - type, - row, - meta - ) { - return escape_str( - get_lib_from_av( - "av_title_publication_types", - row.title.publication_type - ) - ); - }, - }, - ], - options: { - embed: "title", - }, - url: - APIClient.erm.httpClient._baseURL + - "eholdings/local/resources", - }, - }, - apiClient: { - type: "object", - value: APIClient.erm.localPackages, - }, - filters: { - type: "filter", - keys: { - package_id: { property: "package_id" }, - }, - }, - resource: { - type: "resource", - }, - resourceName: { - type: "string", - value: "title", - }, - resourceNamePlural: { - type: "string", - value: "titles", - }, - }, - }, - ]; - }; - return { ...BaseResource.setup({ resourceName: "package", @@ -135,7 +47,7 @@ export default { av_package_content_types, eholdings_packages_table_settings, vendors, - appendToShow: appendToShow(get_lib_from_av), + get_lib_from_av, }), }; }, @@ -367,6 +279,94 @@ export default { ); } }, + appendToShow() { + let get_lib_from_av = this.get_lib_from_av; + return [ + { + type: "component", + name: __("Titles"), + hidden: erm_package => erm_package, + componentPath: "./RelationshipTableDisplay.vue", + componentProps: { + tableOptions: { + type: "object", + value: { + columns: [ + { + title: __("Name"), + data: "title.publication_title", + searchable: true, + orderable: true, + render: function ( + data, + type, + row, + meta + ) { + return ( + '' + + escape_str( + `${row.title.publication_title} (#${row.title.title_id})` + ) + + "" + ); + }, + }, + { + title: __("Publication type"), + data: "title.publication_type", + searchable: true, + orderable: true, + render: function ( + data, + type, + row, + meta + ) { + return escape_str( + get_lib_from_av( + "av_title_publication_types", + row.title.publication_type + ) + ); + }, + }, + ], + options: { + embed: "title", + }, + url: + APIClient.erm.httpClient._baseURL + + "eholdings/local/resources", + }, + }, + apiClient: { + type: "object", + value: APIClient.erm.localPackages, + }, + filters: { + type: "filter", + keys: { + package_id: { property: "package_id" }, + }, + }, + resource: { + type: "resource", + }, + resourceName: { + type: "string", + value: "title", + }, + resourceNamePlural: { + type: "string", + value: "titles", + }, + }, + }, + ]; + }, }, name: "EHoldingsLocalPackageResource", }; diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalTitleResource.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalTitleResource.vue index 78cea4385e..18dd01805a 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalTitleResource.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalTitleResource.vue @@ -17,23 +17,6 @@ export default { const vendorStore = inject("vendorStore"); const { vendors } = storeToRefs(vendorStore); - function additionalToolbarButtons(resource) { - return { - list: [ - { - to: { name: "EHoldingsLocalTitlesFormImport" }, - icon: "plus", - title: __("Import from list"), - }, - { - to: { name: "EHoldingsLocalTitlesKBARTImport" }, - icon: "plus", - title: __("Import from KBART file"), - }, - ], - }; - } - return { ...BaseResource.setup({ resourceName: "title", @@ -60,7 +43,6 @@ export default { av_title_publication_types, eholdings_titles_table_settings, vendors, - additionalToolbarButtons, }), }; }, @@ -494,6 +476,22 @@ export default { ); } }, + additionalToolbarButtons(resource) { + return { + list: [ + { + to: { name: "EHoldingsLocalTitlesFormImport" }, + icon: "plus", + title: __("Import from list"), + }, + { + to: { name: "EHoldingsLocalTitlesKBARTImport" }, + icon: "plus", + title: __("Import from KBART file"), + }, + ], + }; + }, }, emits: ["select-resource"], name: "EHoldingsLocalTitlesResource", diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Preservation/TrainResource.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Preservation/TrainResource.vue index a1be77f489..5d3c5e38cc 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Preservation/TrainResource.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Preservation/TrainResource.vue @@ -16,51 +16,6 @@ export default { const PreservationStore = inject("PreservationStore"); const { config } = storeToRefs(PreservationStore); - function additionalToolbarButtons(resource) { - return { - show: [ - resource?.closed_on == null - ? { - to: { - name: "TrainsFormAddItem", - params: { train_id: resource?.train_id }, - }, - icon: "plus", - title: __("Add items"), - index: -1, - } - : {}, - !resource?.closed_on && - !resource?.sent_on && - !resource?.received_on - ? { - onClick: () => this.closeTrain(resource), - icon: "remove", - title: __("Close"), - } - : {}, - resource?.closed_on && - !resource?.sent_on && - !resource?.received_on - ? { - onClick: () => this.sendTrain(resource), - icon: "paper-plane", - title: __("Send"), - } - : {}, - resource?.closed_on && - resource?.sent_on && - !resource?.received_on - ? { - onClick: () => this.receiveTrain(resource), - icon: "inbox", - title: __("Receive"), - } - : {}, - ].filter(b => Object.keys(b).length), - }; - } - return { ...BaseResource.setup({ resourceName: "train", @@ -88,7 +43,6 @@ export default { }, av_notforloan, config, - additionalToolbarButtons, }), }; }, @@ -361,6 +315,50 @@ export default { }); } }, + additionalToolbarButtons(resource) { + return { + show: [ + resource?.closed_on == null + ? { + to: { + name: "TrainsFormAddItem", + params: { train_id: resource?.train_id }, + }, + icon: "plus", + title: __("Add items"), + index: -1, + } + : {}, + !resource?.closed_on && + !resource?.sent_on && + !resource?.received_on + ? { + onClick: () => this.closeTrain(resource), + icon: "remove", + title: __("Close"), + } + : {}, + resource?.closed_on && + !resource?.sent_on && + !resource?.received_on + ? { + onClick: () => this.sendTrain(resource), + icon: "paper-plane", + title: __("Send"), + } + : {}, + resource?.closed_on && + resource?.sent_on && + !resource?.received_on + ? { + onClick: () => this.receiveTrain(resource), + icon: "inbox", + title: __("Receive"), + } + : {}, + ].filter(b => Object.keys(b).length), + }; + }, }, name: "TrainResource", };