Bug 38201: Apply changes to eHoldings local packages

Signed-off-by: Michaela Sieber <michaela.sieber@kit.edu>
Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
Signed-off-by: Lucas Gass <lucas@bywatersolutions.com>
This commit is contained in:
Pedro Amorim 2024-10-17 11:48:23 +00:00 committed by Lucas Gass
parent d989ce4946
commit b45c655735
No known key found for this signature in database
GPG Key ID: 60B447398B0D36CA
3 changed files with 49 additions and 99 deletions

View File

@ -0,0 +1,30 @@
<script>
import BaseResource from "../BaseResource.vue";
import { APIClient } from "../../fetch/api-client.js";
export default {
extends: BaseResource,
setup(props) {
return {
...BaseResource.setup({
resource_name: "erm_package",
name_attr: "name",
id_attr: "package_id",
show_component: "EHoldingsLocalPackagesShow",
list_component: "EHoldingsLocalPackagesList",
add_component: "EHoldingsLocalPackagesFormAdd",
edit_component: "EHoldingsLocalPackagesFormAddEdit",
api_client: APIClient.erm.localPackages,
resource_table_url:
APIClient.erm._baseURL + "eholdings/local/packages",
i18n: {
display_name: __("Local package"),
},
}),
//EHoldingsLocalPackageResource specific setup here
};
},
methods: {},
name: "EHoldingsLocalPackageResource",
};
</script>

View File

@ -4,8 +4,8 @@
<div v-else id="packages_list">
<Toolbar>
<ToolbarButton
:to="{ name: 'EHoldingsLocalPackagesFormAdd' }"
icon="plus"
action="add"
@go-to-add-resource="goToResourceAdd"
:title="$__('New package')"
/>
</Toolbar>
@ -19,9 +19,9 @@
v-bind="tableOptions"
:searchable_additional_fields="searchable_additional_fields"
:searchable_av_options="searchable_av_options"
@show="doShow"
@edit="doEdit"
@delete="doDelete"
@show="goToResourceShow"
@edit="goToResourceEdit"
@delete="doResourceDelete"
></KohaTable>
</div>
<div v-else class="alert alert-info">
@ -38,8 +38,10 @@ import { inject, ref, reactive } from "vue";
import { storeToRefs } from "pinia";
import { APIClient } from "../../fetch/api-client.js";
import KohaTable from "../KohaTable.vue";
import EHoldingsLocalPackageResource from "./EHoldingsLocalPackageResource.vue";
export default {
extends: EHoldingsLocalPackageResource,
setup() {
const vendorStore = inject("vendorStore");
const { vendors } = storeToRefs(vendorStore);
@ -47,8 +49,6 @@ export default {
const ERMStore = inject("ERMStore");
const { get_lib_from_av, map_av_dt_filter } = ERMStore;
const { setConfirmationDialog, setMessage } = inject("mainStore");
const table = ref();
const filters = reactive({
package_name: "",
@ -56,13 +56,12 @@ export default {
});
return {
...EHoldingsLocalPackageResource.setup(),
vendors,
get_lib_from_av,
map_av_dt_filter,
table,
filters,
setConfirmationDialog,
setMessage,
escape_str,
eholdings_packages_table_settings,
};
@ -80,7 +79,7 @@ export default {
searchable_av_options: [],
tableOptions: {
columns: this.getTableColumns(),
url: "/api/v1/erm/eholdings/local/packages",
url: this.getResourceTableUrl(),
options: {
embed: "resources+count,vendor.name,extended_attributes,+strings",
searchCols: [
@ -169,46 +168,6 @@ export default {
});
});
},
doShow: function ({ package_id }, dt, event) {
event.preventDefault();
this.$router.push({
name: "EHoldingsLocalPackagesShow",
params: { package_id },
});
},
doEdit: function ({ package_id }, dt, event) {
this.$router.push({
name: "EHoldingsLocalPackagesFormAddEdit",
params: { package_id },
});
},
doDelete: function (erm_package, dt, event) {
this.setConfirmationDialog(
{
title: this.$__(
"Are you sure you want to remove this package?"
),
message: erm_package.name,
accept_label: this.$__("Yes, delete"),
cancel_label: this.$__("No, do not delete"),
},
() => {
const client = APIClient.erm;
client.localPackages.delete(erm_package.package_id).then(
success => {
this.setMessage(
this.$__("Local package %s deleted").format(
erm_package.name
),
true
);
dt.draw();
},
error => {}
);
}
);
},
getTableColumns: function () {
let get_lib_from_av = this.get_lib_from_av;
let escape_str = this.escape_str;
@ -220,9 +179,7 @@ export default {
orderable: true,
render: function (data, type, row, meta) {
return (
'<a href="/cgi-bin/koha/erm/eholdings/local/packages/' +
row.package_id +
'" class="show">' +
'<a role="button" class="show">' +
escape_str(`${row.name} (#${row.package_id})`) +
"</a>"
);

View File

@ -3,20 +3,13 @@
<div v-else-if="erm_package" id="packages_show">
<Toolbar>
<ToolbarButton
:to="{
name: 'EHoldingsLocalPackagesFormAddEdit',
params: { package_id: erm_package.package_id },
}"
icon="pencil"
:title="$__('Edit')"
action="edit"
@go-to-edit-resource="goToResourceEdit"
/>
<ToolbarButton
action="delete"
@delete-resource="doResourceDelete"
/>
<a
@click="
delete_package(erm_package.package_id, erm_package.name)
"
class="btn btn-default"
><font-awesome-icon icon="trash" /> {{ $__("Delete") }}</a
>
</Toolbar>
<h2>
@ -126,21 +119,20 @@ import { APIClient } from "../../fetch/api-client.js";
import Toolbar from "../Toolbar.vue";
import ToolbarButton from "../ToolbarButton.vue";
import AdditionalFieldsDisplay from "../AdditionalFieldsDisplay.vue";
import EHoldingsLocalPackageResource from "./EHoldingsLocalPackageResource.vue";
export default {
extends: EHoldingsLocalPackageResource,
setup() {
const format_date = $date;
const { setConfirmationDialog, setMessage } = inject("mainStore");
const ERMStore = inject("ERMStore");
const { get_lib_from_av } = ERMStore;
return {
...EHoldingsLocalPackageResource.setup(),
format_date,
get_lib_from_av,
setConfirmationDialog,
setMessage,
};
},
data() {
@ -180,35 +172,6 @@ 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
),
true
);
this.$router.push({
name: "EHoldingsLocalPackagesList",
});
},
error => {}
);
}
);
},
},
components: {
EHoldingsPackageTitlesList,