Bug 32991: Local Packages: Add delete dialog to list and show. Removed FormConfirmDelete component and routes.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Pedro Amorim <pedro.amorim@ptfs-europe.com>
Signed-off-by: Agustín Moyano <agustinmoyano@theke.io>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
(cherry picked from commit dbb606983c)
Signed-off-by: Jacob O'Mara <jacob.omara@ptfs-europe.com>
This commit is contained in:
Pedro Amorim 2023-02-24 18:30:54 +00:00 committed by Jacob O'Mara
parent 7a6a14f807
commit 9dc63a663a
4 changed files with 76 additions and 102 deletions

View file

@ -1,76 +0,0 @@
<template>
<div v-if="!initialized">{{ $__("Loading") }}</div>
<div v-else id="packages_confirm_delete">
<h2>{{ $__("Delete package") }}</h2>
<div>
<form @submit="onSubmit($event)">
<fieldset class="rows">
<ol>
<li>
{{ $__("Package name") }}:
{{ erm_package.name }}
</li>
</ol>
</fieldset>
<fieldset class="action">
<input
type="submit"
variant="primary"
:value="$__('Yes, delete')"
/>
<router-link
to="/cgi-bin/koha/erm/eholdings/local/packages"
role="button"
class="cancel"
>{{ $__("No, do not delete") }}</router-link
>
</fieldset>
</form>
</div>
</div>
</template>
<script>
import { setMessage, setError } from "../../messages"
import { APIClient } from "../../fetch/api-client.js"
export default {
data() {
return {
erm_package: {},
initialized: false,
}
},
beforeRouteEnter(to, from, next) {
next(vm => {
vm.getPackage(to.params.package_id)
})
},
methods: {
getPackage(package_id) {
const client = APIClient.erm
client.localPackages.get(package_id).then(
erm_package => {
this.erm_package = erm_package
this.initialized = true
},
error => {}
)
},
onSubmit(e) {
e.preventDefault()
const client = APIClient.erm
client.localPackages.delete(this.erm_package.package_id).then(
success => {
setMessage(this.$__("Package deleted"))
this.$router.push(
"/cgi-bin/koha/erm/eholdings/local/packages"
)
},
error => {}
)
},
},
name: "EHoldingsLocalPackagesFormConfirmDelete",
}
</script>

View file

@ -32,6 +32,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 = "package_list"
useDataTable(table_id)
@ -40,6 +42,8 @@ export default {
get_lib_from_av,
map_av_dt_filter,
table_id,
setConfirmationDialog,
setMessage,
}
},
data: function () {
@ -78,10 +82,35 @@ export default {
"/cgi-bin/koha/erm/eholdings/local/packages/edit/" + package_id
)
},
delete_package: function (package_id) {
this.$router.push(
"/cgi-bin/koha/erm/eholdings/local/packages/delete/" +
package_id
delete_package: function (package_id, package_name) {
this.setConfirmationDialog(
{
title: this.$__(
"Are you sure you want to remove this package?"
),
message: package_name,
accept_label: this.$__("Yes, delete"),
cancel_label: this.$__("No, do not delete"),
},
() => {
const client = APIClient.erm
client.localPackages.delete(package_id).then(
success => {
this.setMessage(
this.$__("Local package %s deleted").format(
package_name
)
)
$("#" + this.table_id)
.DataTable()
.ajax.url(
"/api/v1/erm/eholdings/local/packages"
)
.draw()
},
error => {}
)
}
)
},
build_datatable: function () {
@ -205,6 +234,7 @@ export default {
function (index, e) {
let tr = $(this).parent().parent()
let package_id = api.row(tr).data().package_id
let package_name = api.row(tr).data().name
let editButton = createVNode(
"a",
{
@ -229,7 +259,10 @@ export default {
class: "btn btn-default btn-xs",
role: "button",
onClick: () => {
delete_package(package_id)
delete_package(
package_id,
package_name
)
},
},
[

View file

@ -10,11 +10,12 @@
><i class="fa fa-pencil"></i
></router-link>
<router-link
:to="`/cgi-bin/koha/erm/eholdings/local/packages/delete/${erm_package.package_id}`"
:title="$__('Delete')"
<a
@click="
delete_package(erm_package.package_id, erm_package.name)
"
><i class="fa fa-trash"></i
></router-link>
></a>
</span>
</h2>
<div>
@ -112,12 +113,16 @@ export default {
setup() {
const format_date = $date
const { setConfirmationDialog, setMessage } = inject("mainStore")
const AVStore = inject("AVStore")
const { get_lib_from_av } = AVStore
return {
format_date,
get_lib_from_av,
setConfirmationDialog,
setMessage,
}
},
data() {
@ -155,6 +160,34 @@ export default {
error => {}
)
},
delete_package: function (package_id, package_name) {
this.setConfirmationDialog(
{
title: this.$__(
"Are you sure you want to remove this package?"
),
message: package_name,
accept_label: this.$__("Yes, delete"),
cancel_label: this.$__("No, do not delete"),
},
() => {
const client = APIClient.erm
client.localPackages.delete(package_id).then(
success => {
this.setMessage(
this.$__("Local package %s deleted").format(
package_name
)
)
this.$router.push(
"/cgi-bin/koha/erm/eholdings/local/packages"
)
},
error => {}
)
}
)
},
},
components: {
EHoldingsPackageTitlesList,
@ -166,6 +199,7 @@ export default {
.action_links a {
padding-left: 0.2em;
font-size: 11px;
cursor: pointer;
}
fieldset.rows label {
width: 25rem;

View file

@ -8,7 +8,6 @@ import EHoldingsLocalTitlesFormAdd from "../components/ERM/EHoldingsLocalTitlesF
import EHoldingsLocalTitlesFormImport from "../components/ERM/EHoldingsLocalTitlesFormImport.vue";
import EHoldingsLocalPackagesList from "../components/ERM/EHoldingsLocalPackagesList.vue";
import EHoldingsLocalPackagesShow from "../components/ERM/EHoldingsLocalPackagesShow.vue";
import EHoldingsLocalPackagesFormConfirmDelete from "../components/ERM/EHoldingsLocalPackagesFormConfirmDelete.vue";
import EHoldingsLocalResourcesShow from "../components/ERM/EHoldingsLocalResourcesShow.vue";
import EHoldingsLocalTitlesList from "../components/ERM/EHoldingsLocalTitlesList.vue";
import EHoldingsLocalTitlesShow from "../components/ERM/EHoldingsLocalTitlesShow.vue";
@ -236,22 +235,6 @@ export const routes = [
),
},
},
{
path: "delete/:package_id",
component:
EHoldingsLocalPackagesFormConfirmDelete,
meta: {
breadcrumb: () =>
build_breadcrumb(
[
breadcrumb_paths.eholdings_local,
breadcrumbs.eholdings.local
.packages,
],
"Delete package" // $t("Delete package")
),
},
},
{
path: "add",
component: EHoldingsLocalPackagesFormAdd,