3 <div v-if="!initialized">{{ $__("Loading") }}</div>
4 <div v-else id="packages_list">
5 <Toolbar :options="this.toolbar_options" />
7 v-if="package_count > 0"
8 id="package_list_result"
19 <div v-else class="dialog message">
20 {{ $__("There are no packages defined") }}
27 import Toolbar from "../Toolbar.vue"
28 import { inject, ref, reactive } from "vue"
29 import { storeToRefs } from "pinia"
30 import { APIClient } from "../../fetch/api-client.js"
31 import KohaTable from "../KohaTable.vue"
35 const vendorStore = inject("vendorStore")
36 const { vendors } = storeToRefs(vendorStore)
38 const AVStore = inject("AVStore")
39 const { get_lib_from_av, map_av_dt_filter } = AVStore
41 const { setConfirmationDialog, setMessage } = inject("mainStore")
44 const filters = reactive({
55 setConfirmationDialog,
58 eholdings_packages_table_settings,
63 package_name: this.$route.query.package_name || "",
64 content_type: this.$route.query.content_type || "",
66 let filters = this.filters
71 columns: this.getTableColumns(),
72 url: "/api/v1/erm/eholdings/local/packages",
74 embed: "resources+count,vendor.name",
76 { search: filters.package_name },
79 { search: filters.content_type },
84 table_settings: this.eholdings_packages_table_settings,
88 this.vendors.map(e => {
93 2: () => this.map_av_dt_filter("av_package_types"),
94 3: () => this.map_av_dt_filter("av_package_content_types"),
98 "-1": ["edit", "delete"],
103 to: "EHoldingsLocalPackagesFormAdd",
104 button_title: "New package",
109 beforeRouteEnter(to, from, next) {
111 vm.getPackageCount().then(() => (vm.initialized = true))
115 async getPackageCount() {
116 const client = APIClient.erm
117 await client.localPackages.count().then(
119 this.package_count = count
124 doShow: function ({ package_id }, dt, event) {
125 event.preventDefault()
127 name: "EHoldingsLocalPackagesShow",
128 params: { package_id },
131 doEdit: function ({ package_id }, dt, event) {
133 name: "EHoldingsLocalPackagesFormAddEdit",
134 params: { package_id },
137 doDelete: function (erm_package, dt, event) {
138 this.setConfirmationDialog(
141 "Are you sure you want to remove this package?"
143 message: erm_package.name,
144 accept_label: this.$__("Yes, delete"),
145 cancel_label: this.$__("No, do not delete"),
148 const client = APIClient.erm
149 client.localPackages.delete(erm_package.package_id).then(
152 this.$__("Local package %s deleted").format(
164 getTableColumns: function () {
165 let get_lib_from_av = this.get_lib_from_av
166 let escape_str = this.escape_str
170 data: "me.package_id:me.name",
173 render: function (data, type, row, meta) {
175 '<a href="/cgi-bin/koha/erm/eholdings/local/packages/' +
178 escape_str(`${row.name} (#${row.package_id})`) +
188 render: function (data, type, row, meta) {
189 return row.vendor_id != undefined
190 ? '<a href="/cgi-bin/koha/acqui/supplier.pl?booksellerid=' +
193 escape_str(row.vendor.name) +
200 data: "package_type",
203 render: function (data, type, row, meta) {
213 title: __("Content type"),
214 data: "content_type",
217 render: function (data, type, row, meta) {
220 "av_package_content_types",
227 title: __("Created on"),
231 render: function (data, type, row, meta) {
232 return $date(row.created_on)
240 render: function (data, type, row, meta) {
247 components: { Toolbar, KohaTable },
248 name: "EHoldingsLocalPackagesList",