<template>
<div v-if="!initialized">{{ $__("Loading") }}</div>
- <div v-else-if="licenses" id="licenses_list">
+ <div v-else id="licenses_list">
<Toolbar />
- <div v-if="licenses.length" class="page-section">
+ <div v-if="license_count > 0" class="page-section">
<table :id="table_id"></table>
</div>
- <div v-else-if="initialized" class="dialog message">
+ <div v-else class="dialog message">
{{ $__("There are no licenses defined") }}
</div>
</div>
const AVStore = inject("AVStore")
const { get_lib_from_av, map_av_dt_filter } = AVStore
+ const { setConfirmationDialog, setMessage } = inject("mainStore")
+
const table_id = "license_list"
useDataTable(table_id)
get_lib_from_av,
map_av_dt_filter,
table_id,
+ setConfirmationDialog,
+ setMessage,
}
},
data: function () {
return {
- licenses: [],
+ license_count: 0,
initialized: false,
}
},
beforeRouteEnter(to, from, next) {
next(vm => {
- vm.getLicenses().then(() => vm.build_datatable())
+ vm.getLicenseCount().then(() => vm.build_datatable())
})
},
methods: {
- async getLicenses() {
+ async getLicenseCount() {
const client = APIClient.erm
- await client.licenses.getAll().then(
- licenses => {
- this.licenses = licenses
+ await client.licenses.count().then(
+ count => {
+ this.license_count = count
this.initialized = true
},
error => {}
edit_license: function (license_id) {
this.$router.push("/cgi-bin/koha/erm/licenses/edit/" + license_id)
},
- delete_license: function (license_id) {
- this.$router.push("/cgi-bin/koha/erm/licenses/delete/" + license_id)
+ delete_license: function (license_id, license_name) {
+ this.setConfirmationDialog(
+ {
+ title: this.$__(
+ "Are you sure you want to remove this license?"
+ ),
+ message: license_name,
+ accept_label: this.$__("Yes, delete"),
+ cancel_label: this.$__("No, do not delete"),
+ },
+ () => {
+ const client = APIClient.erm
+ client.licenses.delete(license_id).then(
+ success => {
+ this.setMessage(
+ this.$__("License %s deleted").format(
+ license_name
+ ),
+ true
+ )
+ $("#" + this.table_id)
+ .DataTable()
+ .ajax.url("/api/v1/erm/licenses")
+ .draw()
+ },
+ error => {}
+ )
+ }
+ )
},
build_datatable: function () {
let show_license = this.show_license
function (index, e) {
let tr = $(this).parent().parent()
let license_id = api.row(tr).data().license_id
+ let license_name = api.row(tr).data().name
let editButton = createVNode(
"a",
{
class: "btn btn-default btn-xs",
role: "button",
onClick: () => {
- delete_license(license_id)
+ delete_license(
+ license_id,
+ license_name
+ )
},
},
[