2 <transition name="modal">
3 <div v-if="showModal" class="modal">
4 <AgreementsList @select-agreement="addAgreement" />
7 @click="showModal = false"
12 <div id="package_agreements">
15 package_agreement, counter
16 ) in erm_package.package_agreements"
20 :to="`/cgi-bin/koha/erm/agreements/${package_agreement.agreement.agreement_id}`"
21 >{{ package_agreement.agreement.name }}</router-link
26 @click.prevent="deleteAgreement(counter)"
27 :title="$t('Remove this agreement')"
28 ><i class="fa fa-trash"></i
31 <a class="btn btn-default btn-xs" @click="showModal = true"
32 ><font-awesome-icon icon="plus" /> {{ $t("Add new agreement") }}</a
38 import AgreementsList from "./AgreementsList.vue"
39 import { createPackage, editPackage } from "../../fetch"
40 import { setWarning, removeMessages } from "../../messages"
44 return { showModal: false, }
49 serializeAgreement() {
50 let erm_package = JSON.parse(JSON.stringify(this.erm_package)) // copy
51 delete erm_package.vendor_id // This is the EBSCO's vendor_id
53 // Remove remote data, we don't need to store them (don't we?)
54 // Keep the name, it's mandatory by the REST API specs
55 delete erm_package.package_type
56 delete erm_package.content_type
57 erm_package.external_id = erm_package.package_id
58 delete erm_package.package_id
59 erm_package.provider = 'ebsco'
60 erm_package.package_id = erm_package.koha_internal_id
61 delete erm_package.koha_internal_id
64 addAgreement(agreement_id) {
66 this.showModal = false
67 let erm_package = this.serializeAgreement()
68 // Only add if it does not exist
69 if (!erm_package.package_agreements.find((a) => a.agreement_id == agreement_id)) {
70 erm_package.package_agreements.push({ agreement_id })
71 if (this.erm_package.koha_internal_id) {
72 editPackage(erm_package).then(() => {
73 this.$emit('refresh-agreements')
76 createPackage(erm_package).then(() => {
77 this.$emit('refresh-agreements')
81 setWarning(this.$t("This agreement is already linked with this package"))
84 deleteAgreement(counter) {
85 let erm_package = this.serializeAgreement()
86 erm_package.package_agreements.splice(counter, 1)
87 editPackage(erm_package).then(() => {
88 this.$emit('refresh-agreements')
98 emits: ['refresh-agreements'],
99 name: 'EHoldingsEBSCOPackageAgreements',
103 #package_agreements {
113 background-color: rgba(0, 0, 0, 0.5);
115 transition: opacity 0.3s ease;
118 background-color: #fff;
120 box-shadow: 0 2px 8px rgba(0, 0, 0, 0.33);
121 transition: all 0.3s ease;
122 font-family: Helvetica, Arial, sans-serif;