Bug 32030: Add users to licenses - Preparation
[koha-ffzg.git] / koha-tmpl / intranet-tmpl / prog / js / vue / components / ERM / AgreementsShow.vue
1 <template>
2     <div v-if="!initialized">{{ $__("Loading") }}</div>
3     <div v-else id="agreements_show">
4         <h2>
5             {{ $__("Agreement #%s").format(agreement.agreement_id) }}
6             <span class="action_links">
7                 <router-link
8                     :to="`/cgi-bin/koha/erm/agreements/edit/${agreement.agreement_id}`"
9                     :title="$__('Edit')"
10                     ><i class="fa fa-pencil"></i
11                 ></router-link>
12
13                 <router-link
14                     :to="`/cgi-bin/koha/erm/agreements/delete/${agreement.agreement_id}`"
15                     :title="$__('Delete')"
16                     ><i class="fa fa-trash"></i
17                 ></router-link>
18             </span>
19         </h2>
20         <div>
21             <fieldset class="rows">
22                 <ol>
23                     <li>
24                         <label>{{ $__("Agreement name") }}:</label>
25                         <span>
26                             {{ agreement.name }}
27                         </span>
28                     </li>
29                     <li>
30                         <label>{{ $__("Vendor") }}:</label>
31                         <span v-if="agreement.vendor_id">
32                             <a
33                                 :href="`/cgi-bin/koha/acqui/booksellers.pl?booksellerid=${agreement.vendor_id}`"
34                             >
35                                 {{ agreement.vendor.name }}
36                             </a>
37                         </span>
38                     </li>
39                     <li>
40                         <label>{{ $__("Description") }}:</label>
41                         <span>
42                             {{ agreement.description }}
43                         </span>
44                     </li>
45                     <li>
46                         <label>{{ $__("Status") }}:</label>
47                         <span>{{
48                             get_lib_from_av(
49                                 "av_agreement_statuses",
50                                 agreement.status
51                             )
52                         }}</span>
53                     </li>
54                     <li>
55                         <label>{{ $__("Closure reason") }}:</label>
56                         <span>{{
57                             get_lib_from_av(
58                                 "av_agreement_closure_reasons",
59                                 agreement.closure_reason
60                             )
61                         }}</span>
62                     </li>
63                     <li>
64                         <label>{{ $__("Is perpetual") }}:</label>
65                         <span v-if="agreement.is_perpetual">Yes</span>
66                         <span v-else>No</span>
67                     </li>
68                     <li>
69                         <label>{{ $__("Renewal priority") }}:</label>
70                         <span>{{
71                             get_lib_from_av(
72                                 "av_agreement_renewal_priorities",
73                                 agreement.renewal_priority
74                             )
75                         }}</span>
76                     </li>
77                     <li>
78                         <label>{{ $__("License info") }}:</label>
79                         <span>{{ agreement.license_info }}</span>
80                     </li>
81
82                     <li v-if="agreement.periods.length">
83                         <label>{{ $__("Periods") }}</label>
84                         <table>
85                             <thead>
86                                 <th>{{ $__("Period start") }}</th>
87                                 <th>{{ $__("Period end") }}</th>
88                                 <th>{{ $__("Cancellation deadline") }}</th>
89                                 <th>{{ $__("Period note") }}</th>
90                             </thead>
91                             <tbody>
92                                 <tr
93                                     v-for="(
94                                         period, counter
95                                     ) in agreement.periods"
96                                     v-bind:key="counter"
97                                 >
98                                     <td>
99                                         {{ format_date(period.started_on) }}
100                                     </td>
101                                     <td>{{ format_date(period.ended_on) }}</td>
102                                     <td>
103                                         {{
104                                             format_date(
105                                                 period.cancellation_deadline
106                                             )
107                                         }}
108                                     </td>
109                                     <td>{{ period.notes }}</td>
110                                 </tr>
111                             </tbody>
112                         </table>
113                     </li>
114
115                     <li v-if="agreement.user_roles.length">
116                         <label>{{ $__("Users") }}</label>
117                         <table>
118                             <thead>
119                                 <th>{{ $__("Name") }}</th>
120                                 <th>{{ $__("Role") }}</th>
121                             </thead>
122                             <tbody>
123                                 <tr
124                                     v-for="(
125                                         role, counter
126                                     ) in agreement.user_roles"
127                                     v-bind:key="counter"
128                                 >
129                                     <td>{{ patron_to_html(role.patron) }}</td>
130                                     <td>
131                                         {{
132                                             get_lib_from_av(
133                                                 "av_user_roles",
134                                                 role.role
135                                             )
136                                         }}
137                                     </td>
138                                 </tr>
139                             </tbody>
140                         </table>
141                     </li>
142
143                     <li v-if="agreement.agreement_licenses.length">
144                         <label>{{ $__("Licenses") }}</label>
145                         <table>
146                             <thead>
147                                 <th>{{ $__("Name") }}</th>
148                                 <th>{{ $__("Status") }}</th>
149                                 <th>{{ $__("Physical location") }}</th>
150                                 <th>{{ $__("Notes") }}</th>
151                                 <th>{{ $__("URI") }}</th>
152                             </thead>
153                             <tbody>
154                                 <tr
155                                     v-for="(
156                                         agreement_license, counter
157                                     ) in agreement.agreement_licenses"
158                                     v-bind:key="counter"
159                                 >
160                                     <td>
161                                         <router-link
162                                             :to="`/cgi-bin/koha/erm/licenses/${agreement_license.license_id}`"
163                                         >
164                                             {{ agreement_license.license.name }}
165                                         </router-link>
166                                     </td>
167                                     <td>
168                                         {{
169                                             get_lib_from_av(
170                                                 "av_agreement_license_statuses",
171                                                 agreement_license.status
172                                             )
173                                         }}
174                                     </td>
175                                     <td>
176                                         {{
177                                             get_lib_from_av(
178                                                 "av_agreement_license_location",
179                                                 agreement_license.physical_location
180                                             )
181                                         }}
182                                     </td>
183                                     <td>{{ agreement_license.notes }}</td>
184                                     <td>{{ agreement_license.uri }}</td>
185                                 </tr>
186                             </tbody>
187                         </table>
188                     </li>
189
190                     <li v-if="agreement.agreement_relationships.length">
191                         <label>{{ $__("Related agreements") }}</label>
192                         <div id="agreement_relationships">
193                             <div
194                                 v-for="relationship in agreement.agreement_relationships"
195                                 v-bind:key="relationship.related_agreement_id"
196                             >
197                                 <span
198                                     ><router-link
199                                         :to="`/cgi-bin/koha/erm/agreements/${relationship.related_agreement.agreement_id}`"
200                                         >{{
201                                             relationship.related_agreement.name
202                                         }}</router-link
203                                     ></span
204                                 >
205                                 {{
206                                     get_lib_from_av(
207                                         "av_agreement_relationships",
208                                         relationship.relationship
209                                     )
210                                 }}
211                                 {{ agreement.name }}
212                             </div>
213                         </div>
214                     </li>
215
216                     <li v-if="agreement.agreement_packages.length">
217                         <label>{{ $__("Packages") }}</label>
218                         <div id="agreement_packages">
219                             <div
220                                 v-for="agreement_package in agreement.agreement_packages"
221                                 v-bind:key="agreement_package.package_id"
222                             >
223                                 <span
224                                     v-if="
225                                         agreement_package.package.external_id &&
226                                         agreement_package.package.provider ==
227                                             'ebsco'
228                                     "
229                                 >
230                                     <router-link
231                                         :to="`/cgi-bin/koha/erm/eholdings/ebsco/packages/${agreement_package.package.external_id}`"
232                                         >{{
233                                             agreement_package.package.name
234                                         }}</router-link
235                                     >
236                                     (EBSCO)</span
237                                 >
238                                 <span v-else
239                                     ><router-link
240                                         :to="`/cgi-bin/koha/erm/eholdings/local/packages/${agreement_package.package.package_id}`"
241                                         >{{
242                                             agreement_package.package.name
243                                         }}</router-link
244                                     >
245                                     (local)</span
246                                 >
247                             </div>
248                         </div>
249                     </li>
250
251                     <li v-if="agreement.documents.length">
252                         <label>{{ $__("Documents") }}</label>
253                         <div id="agreement_documents">
254                             <ul>
255                                 <li
256                                     v-for="document in agreement.documents"
257                                     v-bind:key="document.document_id"
258                                 >
259                                     <div v-if="document.file_name">
260                                         <span v-if="document.file_description"
261                                             >{{ document.file_description }} -
262                                         </span>
263                                         <a
264                                             download
265                                             :href="`/api/v1/erm/documents/${document.document_id}/file/content`"
266                                         >
267                                             {{ document.file_name }}
268                                             <i class="fa fa-download"></i>
269                                         </a>
270                                         ({{ document.file_type }}) Uploaded on:
271                                         {{ format_date(document.uploaded_on) }}
272                                     </div>
273                                     <div v-if="document.physical_location">
274                                         {{ $__("Physical location") }}:
275                                         {{ document.physical_location }}
276                                     </div>
277                                     <div v-if="document.uri">
278                                         {{ $__("URI") }}: {{ document.uri }}
279                                     </div>
280                                     <div v-if="document.notes">
281                                         {{ $__("Notes") }}: {{ document.notes }}
282                                     </div>
283                                 </li>
284                             </ul>
285                         </div>
286                     </li>
287                 </ol>
288             </fieldset>
289             <fieldset class="action">
290                 <router-link
291                     to="/cgi-bin/koha/erm/agreements"
292                     role="button"
293                     class="cancel"
294                     >{{ $__("Close") }}</router-link
295                 >
296             </fieldset>
297         </div>
298     </div>
299 </template>
300
301 <script>
302 import { inject } from "vue"
303 import { fetchAgreement } from "../../fetch"
304
305 export default {
306     setup() {
307         const format_date = $date
308         const patron_to_html = $patron_to_html
309
310         const AVStore = inject("AVStore")
311         const { get_lib_from_av } = AVStore
312
313         return {
314             format_date,
315             patron_to_html,
316             get_lib_from_av,
317         }
318     },
319     data() {
320         return {
321             agreement: {
322                 agreement_id: null,
323                 name: "",
324                 vendor_id: null,
325                 vendor: null,
326                 description: "",
327                 status: "",
328                 closure_reason: "",
329                 is_perpetual: false,
330                 renewal_priority: "",
331                 license_info: "",
332                 periods: [],
333                 user_roles: [],
334                 agreement_packages: [],
335             },
336             initialized: false,
337         }
338     },
339     beforeRouteEnter(to, from, next) {
340         next(vm => {
341             vm.getAgreement(to.params.agreement_id)
342         })
343     },
344     beforeRouteUpdate(to, from) {
345         this.agreement = this.getAgreement(to.params.agreement_id)
346     },
347     methods: {
348         async getAgreement(agreement_id) {
349             const agreement = await fetchAgreement(agreement_id)
350             this.agreement = agreement
351             this.initialized = true
352         },
353     },
354     name: "AgreementsShow",
355 }
356 </script>
357 <style scoped>
358 .action_links a {
359     padding-left: 0.2em;
360     font-size: 11px;
361 }
362 #agreement_documents ul {
363     padding-left: 0px;
364 }
365 </style>