Bug 32806: Move Vue files for reusability
[koha.git] / koha-tmpl / intranet-tmpl / prog / js / vue / components / ERM / LicensesFormConfirmDelete.vue
1 <template>
2     <div v-if="!initialized">{{ $__("Loading") }}</div>
3     <div v-else id="licenses_confirm_delete">
4         <h2>{{ $__("Delete license") }}</h2>
5         <div>
6             <form @submit="onSubmit($event)">
7                 <fieldset class="rows">
8                     <ol>
9                         <li>
10                             {{ $__("License name") }}:
11                             {{ license.name }}
12                         </li>
13                         <li>
14                             {{ $__("Description") }}:
15                             {{ license.description }}
16                         </li>
17                     </ol>
18                 </fieldset>
19                 <fieldset class="action">
20                     <input
21                         type="submit"
22                         variant="primary"
23                         :value="$__('Yes, delete')"
24                     />
25                     <router-link
26                         to="/cgi-bin/koha/erm/licenses"
27                         role="button"
28                         class="cancel"
29                         >{{ $__("No, do not delete") }}</router-link
30                     >
31                 </fieldset>
32             </form>
33         </div>
34     </div>
35 </template>
36
37 <script>
38 import { fetchLicense, checkError } from "../../fetch/erm.js"
39 import { setMessage, setError } from "../../messages"
40
41 export default {
42     data() {
43         return {
44             license: {},
45             initialized: false,
46         }
47     },
48     beforeRouteEnter(to, from, next) {
49         next(vm => {
50             vm.license = vm.getLicense(to.params.license_id)
51             vm.initialized = true
52         })
53     },
54     methods: {
55         async getLicense(license_id) {
56             const license = await fetchLicense(license_id)
57             this.license = license
58             this.initialized = true
59         },
60         onSubmit(e) {
61             e.preventDefault()
62
63             let apiUrl = "/api/v1/erm/licenses/" + this.license.license_id
64
65             const options = {
66                 method: "DELETE",
67                 headers: {
68                     "Content-Type": "application/json;charset=utf-8",
69                 },
70             }
71
72             fetch(apiUrl, options)
73                 .then(response => checkError(response, 1))
74                 .then(response => {
75                     if (response.status == 204) {
76                         this.$router.push("/cgi-bin/koha/erm/licenses")
77                         setMessage(this.$__("License deleted"))
78                     } else {
79                         setError(response.message || response.statusText)
80                     }
81                 })
82                 .catch(error => {
83                     setError(error)
84                 })
85         },
86     },
87     name: "LicensesFormConfirmDelete",
88 }
89 </script>