Bug 32991: Flag the deletion messages as displayed already
[srvgit] / koha-tmpl / intranet-tmpl / prog / js / vue / components / ERM / EHoldingsLocalPackagesShow.vue
1 <template>
2     <div v-if="!initialized">{{ $__("Loading") }}</div>
3     <div v-else-if="erm_package" id="packages_show">
4         <h2>
5             {{ $__("Package #%s").format(erm_package.package_id) }}
6             <span class="action_links">
7                 <router-link
8                     :to="`/cgi-bin/koha/erm/eholdings/local/packages/edit/${erm_package.package_id}`"
9                     :title="$__('Edit')"
10                     ><i class="fa fa-pencil"></i
11                 ></router-link>
12
13                 <a
14                     @click="
15                         delete_package(erm_package.package_id, erm_package.name)
16                     "
17                     ><i class="fa fa-trash"></i
18                 ></a>
19             </span>
20         </h2>
21         <div>
22             <fieldset class="rows">
23                 <ol>
24                     <li>
25                         <label>{{ $__("Package name") }}:</label>
26                         <span>
27                             {{ erm_package.name }}
28                         </span>
29                     </li>
30                     <li v-if="erm_package.vendor">
31                         <label>{{ $__("Vendor") }}:</label>
32                         <span>
33                             <a
34                                 :href="`/cgi-bin/koha/acqui/booksellers.pl?booksellerid=${erm_package.vendor_id}`"
35                                 >{{ erm_package.vendor.name }}</a
36                             >
37                         </span>
38                     </li>
39                     <li>
40                         <label>{{ $__("Package type") }}:</label>
41                         <span>{{
42                             get_lib_from_av(
43                                 "av_package_types",
44                                 erm_package.package_type
45                             )
46                         }}</span>
47                     </li>
48                     <li>
49                         <label>{{ $__("Content type") }}:</label>
50                         <span>{{
51                             get_lib_from_av(
52                                 "av_package_content_types",
53                                 erm_package.content_type
54                             )
55                         }}</span>
56                     </li>
57                     <li>
58                         <label>{{ $__("Notes") }}:</label>
59                         <span>{{ erm_package.notes }}</span>
60                     </li>
61                     <li v-if="erm_package.created_on">
62                         <label>{{ $__("Created on") }}:</label>
63                         <span>{{ format_date(erm_package.created_on) }}</span>
64                     </li>
65                     <li v-if="erm_package.package_agreements.length">
66                         <label>{{ $__("Agreements") }}</label>
67                         <div
68                             v-for="package_agreement in erm_package.package_agreements"
69                             :key="package_agreement.agreement_id"
70                         >
71                             <router-link
72                                 :to="`/cgi-bin/koha/erm/agreements/${package_agreement.agreement.agreement_id}`"
73                                 >{{
74                                     package_agreement.agreement.name
75                                 }}</router-link
76                             >
77                         </div>
78                     </li>
79                     <li>
80                         <label>{{
81                             $__("Titles (%s)").format(
82                                 erm_package.resources_count
83                             )
84                         }}</label>
85                         <div v-if="erm_package.resources_count">
86                             <EHoldingsPackageTitlesList
87                                 :package_id="erm_package.package_id.toString()"
88                             />
89                         </div>
90                     </li>
91
92                     <li></li>
93                 </ol>
94             </fieldset>
95             <fieldset class="action">
96                 <router-link
97                     to="/cgi-bin/koha/erm/eholdings/local/packages"
98                     role="button"
99                     class="cancel"
100                     >{{ $__("Close") }}</router-link
101                 >
102             </fieldset>
103         </div>
104     </div>
105 </template>
106
107 <script>
108 import { inject } from "vue"
109 import EHoldingsPackageTitlesList from "./EHoldingsLocalPackageTitlesList.vue"
110 import { APIClient } from "../../fetch/api-client.js"
111
112 export default {
113     setup() {
114         const format_date = $date
115
116         const { setConfirmationDialog, setMessage } = inject("mainStore")
117
118         const AVStore = inject("AVStore")
119         const { get_lib_from_av } = AVStore
120
121         return {
122             format_date,
123             get_lib_from_av,
124             setConfirmationDialog,
125             setMessage,
126         }
127     },
128     data() {
129         return {
130             erm_package: {
131                 package_id: null,
132                 vendor_id: null,
133                 name: "",
134                 external_id: "",
135                 package_type: "",
136                 content_type: "",
137                 created_on: null,
138                 resources: null,
139                 package_agreements: [],
140             },
141             initialized: false,
142         }
143     },
144     beforeRouteEnter(to, from, next) {
145         next(vm => {
146             vm.getPackage(to.params.package_id)
147         })
148     },
149     beforeRouteUpdate(to, from) {
150         this.erm_package = this.getPackage(to.params.package_id)
151     },
152     methods: {
153         getPackage(package_id) {
154             const client = APIClient.erm
155             client.localPackages.get(package_id).then(
156                 erm_package => {
157                     this.erm_package = erm_package
158                     this.initialized = true
159                 },
160                 error => {}
161             )
162         },
163         delete_package: function (package_id, package_name) {
164             this.setConfirmationDialog(
165                 {
166                     title: this.$__(
167                         "Are you sure you want to remove this package?"
168                     ),
169                     message: package_name,
170                     accept_label: this.$__("Yes, delete"),
171                     cancel_label: this.$__("No, do not delete"),
172                 },
173                 () => {
174                     const client = APIClient.erm
175                     client.localPackages.delete(package_id).then(
176                         success => {
177                             this.setMessage(
178                                 this.$__("Local package %s deleted").format(
179                                     package_name
180                                 ),
181                                 true
182                             )
183                             this.$router.push(
184                                 "/cgi-bin/koha/erm/eholdings/local/packages"
185                             )
186                         },
187                         error => {}
188                     )
189                 }
190             )
191         },
192     },
193     components: {
194         EHoldingsPackageTitlesList,
195     },
196     name: "EHoldingsLocalPackagesShow",
197 }
198 </script>
199 <style scoped>
200 .action_links a {
201     padding-left: 0.2em;
202     font-size: 11px;
203     cursor: pointer;
204 }
205 fieldset.rows label {
206     width: 25rem;
207 }
208 </style>