diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackageResource.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackageResource.vue
new file mode 100644
index 0000000000..e088357a47
--- /dev/null
+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackageResource.vue
@@ -0,0 +1,30 @@
+
diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackagesList.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackagesList.vue
index 8f931267cf..5b0b4a7f0f 100644
--- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackagesList.vue
+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackagesList.vue
@@ -4,8 +4,8 @@
@@ -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 (
- '
' +
+ '' +
escape_str(`${row.name} (#${row.package_id})`) +
""
);
diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackagesShow.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackagesShow.vue
index 2a266c6f2a..e0ab2e84ba 100644
--- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackagesShow.vue
+++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackagesShow.vue
@@ -3,20 +3,13 @@
+
- {{ $__("Delete") }}
@@ -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,