Bug 32030: Use router for current view and object_id
[koha.git] / koha-tmpl / intranet-tmpl / prog / js / vue / components / ERM / LicensesShow.vue
1 <template>
2     <h2>License #{{ license.license_id }}</h2>
3     <div>
4         <fieldset class="rows">
5             <ol>
6                 <li>
7                     <label>License name:</label>
8                     <span>
9                         {{ license.name }}
10                     </span>
11                 </li>
12                 <li>
13                     <label>Description: </label>
14                     <span>
15                         {{ license.description }}
16                     </span>
17                 </li>
18                 <li>
19                     <label>Type: </label>
20                     <span>{{
21                         get_lib_from_av(av_license_types, license.type)
22                     }}</span>
23                 </li>
24                 <li>
25                     <label>Status: </label>
26                     <span>{{
27                         get_lib_from_av(av_license_statuses, license.status)
28                     }}</span>
29                 </li>
30
31                 <li>
32                     <label>Started on:</label>
33                     <span>{{ format_date(license.started_on) }}</span>
34                 </li>
35
36                 <li>
37                     <label>Ended on:</label>
38                     <span>{{ format_date(license.ended_on) }}</span>
39                 </li>
40             </ol>
41         </fieldset>
42         <fieldset class="action">
43             <router-link
44                 to="/cgi-bin/koha/erm/licenses"
45                 role="button"
46                 class="cancel"
47                 >Close</router-link
48             >
49         </fieldset>
50     </div>
51 </template>
52
53 <script>
54 import { useAVStore } from "../../stores/authorised_values"
55 import { useMainStore } from "../../stores/main"
56 import { storeToRefs } from "pinia"
57 import { fetchLicense } from "../../fetch"
58
59 export default {
60     setup() {
61         const format_date = $date
62         const get_lib_from_av = function (arr, av) {
63             let o = arr.find(
64                 (e) => e.authorised_value == av
65             )
66             return o ? o.lib : ""
67         }
68
69         const AVStore = useAVStore()
70         const {
71             av_license_types,
72             av_license_statuses,
73         } = storeToRefs(AVStore)
74
75         const mainStore = useMainStore()
76         const { setError } = mainStore
77
78         return {
79             format_date,
80             get_lib_from_av,
81             av_license_types,
82             av_license_statuses,
83             setError,
84         }
85     },
86     data() {
87         return {
88             license: {
89                 license_id: null,
90                 name: '',
91                 description: '',
92                 type: '',
93                 status: '',
94                 started_on: undefined,
95                 ended_on: undefined,
96             }
97         }
98     },
99     beforeRouteEnter(to, from, next) {
100         if (to.params.license_id) {
101             next(vm => {
102                 vm.license = vm.getLicense(to.params.license_id)
103             })
104         } else {
105             next()
106         }
107     },
108     methods: {
109         async getLicense(license_id) {
110             const license = await fetchLicense(license_id)
111             this.license = license
112         },
113     },
114     components: {
115     },
116     name: "LicensesShow",
117 }
118 </script>