Bug 32807: Fix cypress tests
[srvgit] / koha-tmpl / intranet-tmpl / prog / js / vue / components / ERM / LicensesList.vue
index 84eb25b..4ddf9fe 100644 (file)
@@ -1,11 +1,11 @@
 <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>
@@ -26,6 +26,8 @@ export default {
         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)
 
@@ -34,25 +36,27 @@ export default {
             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 => {}
@@ -64,8 +68,35 @@ export default {
         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
@@ -203,6 +234,7 @@ export default {
                             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",
                                     {
@@ -227,7 +259,10 @@ export default {
                                         class: "btn btn-default btn-xs",
                                         role: "button",
                                         onClick: () => {
-                                            delete_license(license_id)
+                                            delete_license(
+                                                license_id,
+                                                license_name
+                                            )
                                         },
                                     },
                                     [