2 <div v-if="!initialized">{{ $__("Loading") }}</div>
3 <div v-else-if="erm_package" id="packages_show">
5 {{ $__("Package #%s").format(erm_package.package_id) }}
6 <span v-if="!updating_is_selected">
8 v-if="!erm_package.is_selected"
9 class="btn btn-default btn-xs"
11 @click="add_to_holdings"
12 ><font-awesome-icon icon="plus" />
13 {{ $__("Add package to holdings") }}</a
17 class="btn btn-default btn-xs"
19 id="remove-from-holdings"
20 @click="remove_from_holdings"
21 ><font-awesome-icon icon="minus" />
22 {{ $__("Remove package from holdings") }}</a
24 ><span v-else><font-awesome-icon icon="spinner" /></span>
27 <fieldset class="rows">
30 <label>{{ $__("Package name") }}:</label>
32 {{ erm_package.name }}
35 <li v-if="erm_package.vendor">
36 <label>{{ $__("Vendor") }}:</label>
37 <span>{{ erm_package.vendor.name }}</span>
40 <label>{{ $__("External ID") }}:</label>
43 >FIXME - Does not replace this v-if with an HTML
44 comment, it breaks xgettext</span
47 >FIXME - Create a syspref to store the URL</span
50 :href="`https://replace_with_syspref_value_here.folio.ebsco.com/eholdings/packages/${erm_package.vendor.external_id}-${erm_package.external_id}`"
52 {{ erm_package.vendor.external_id }}-{{
53 erm_package.external_id
59 <label>{{ $__("Package type") }}:</label>
63 erm_package.package_type
68 <label>{{ $__("Content type") }}:</label>
71 "av_package_content_types",
72 erm_package.content_type
76 <li v-if="erm_package.created_on">
77 <label>{{ $__("Created on") }}:</label>
78 <span>{{ format_date(erm_package.created_on) }}</span>
82 <label>Agreements</label>
83 <EHoldingsPackageAgreements
84 :erm_package="erm_package"
85 @refresh-agreements="refreshAgreements"
91 >Titles ({{ erm_package.resources_count }})</label
93 <div v-if="erm_package.resources_count">
94 <EHoldingsPackageTitlesList
95 :package_id="erm_package.package_id.toString()"
103 <fieldset class="action">
105 to="/cgi-bin/koha/erm/eholdings/ebsco/packages"
108 >{{ $__("Close") }}</router-link
116 import { inject } from "vue"
117 import EHoldingsPackageAgreements from "./EHoldingsEBSCOPackageAgreements.vue"
118 import EHoldingsPackageTitlesList from "./EHoldingsEBSCOPackageTitlesList.vue"
119 import { fetchEBSCOPackage, checkError } from "../../fetch"
123 const format_date = $date
125 const AVStore = inject("AVStore")
126 const { get_lib_from_av } = AVStore
145 package_agreements: [],
148 updating_is_selected: false,
151 beforeRouteEnter(to, from, next) {
153 vm.getPackage(to.params.package_id)
156 beforeRouteUpdate(to, from) {
157 this.erm_package = this.getPackage(to.params.package_id)
160 async getPackage(package_id) {
161 const erm_package = await fetchEBSCOPackage(package_id)
162 this.erm_package = erm_package
163 this.initialized = true
164 this.updating_is_selected = false
166 edit_selected(is_selected) {
167 this.updating_is_selected = true
169 "/api/v1/erm/eholdings/ebsco/packages/" +
170 this.erm_package.package_id,
173 body: JSON.stringify({ is_selected }),
175 Accept: "application/json",
176 "Content-Type": "application/json",
182 // Refresh the page. We should not need that actually.
183 this.getPackage(this.erm_package.package_id)
190 this.edit_selected(true)
192 remove_from_holdings() {
193 this.edit_selected(false)
195 refreshAgreements() {
196 // FIXME We could GET /erm/eholdings/packages/$package_id/agreements instead
197 this.initialized = false
198 this.getPackage(this.erm_package.package_id)
202 EHoldingsPackageAgreements,
203 EHoldingsPackageTitlesList,
205 name: "EHoldingsEBSCOPackagesShow",
209 fieldset.rows label {