View | Details | Raw Unified | Return to bug 37301
Collapse All | Expand All

(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackageResource.vue (+30 lines)
Line 0 Link Here
1
<script>
2
import BaseResource from "../BaseResource.vue"
3
import { APIClient } from "../../fetch/api-client.js"
4
5
export default {
6
    extends: BaseResource,
7
    setup(props) {
8
        return {
9
            ...BaseResource.setup({
10
                resource_name: "erm_package",
11
                name_attr: "name",
12
                id_attr: "package_id",
13
                show_component: "EHoldingsLocalPackagesShow",
14
                list_component: "EHoldingsLocalPackagesList",
15
                add_component: "EHoldingsLocalPackagesFormAdd",
16
                edit_component: "EHoldingsLocalPackagesFormAddEdit",
17
                api_client: APIClient.erm.localPackages,
18
                resource_table_url:
19
                    APIClient.erm._baseURL + "eholdings/local/packages",
20
                i18n: {
21
                    display_name: __("Local package"),
22
                },
23
            }),
24
            //EHoldingsLocalPackageResource specific setup here
25
        }
26
    },
27
    methods: {},
28
    name: "EHoldingsLocalPackageResource",
29
}
30
</script>
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackagesList.vue (-53 / +10 lines)
Lines 4-11 Link Here
4
        <div v-else id="packages_list">
4
        <div v-else id="packages_list">
5
            <Toolbar>
5
            <Toolbar>
6
                <ToolbarButton
6
                <ToolbarButton
7
                    :to="{ name: 'EHoldingsLocalPackagesFormAdd' }"
7
                    action="add"
8
                    icon="plus"
8
                    @go-to-add-resource="goToResourceAdd"
9
                    :title="$__('New package')"
9
                    :title="$__('New package')"
10
                />
10
                />
11
            </Toolbar>
11
            </Toolbar>
Lines 19-27 Link Here
19
                    v-bind="tableOptions"
19
                    v-bind="tableOptions"
20
                    :searchable_additional_fields="searchable_additional_fields"
20
                    :searchable_additional_fields="searchable_additional_fields"
21
                    :searchable_av_options="searchable_av_options"
21
                    :searchable_av_options="searchable_av_options"
22
                    @show="doShow"
22
                    @show="goToResourceShow"
23
                    @edit="doEdit"
23
                    @edit="goToResourceEdit"
24
                    @delete="doDelete"
24
                    @delete="doResourceDelete"
25
                ></KohaTable>
25
                ></KohaTable>
26
            </div>
26
            </div>
27
            <div v-else class="alert alert-info">
27
            <div v-else class="alert alert-info">
Lines 38-45 import { inject, ref, reactive } from "vue" Link Here
38
import { storeToRefs } from "pinia"
38
import { storeToRefs } from "pinia"
39
import { APIClient } from "../../fetch/api-client.js"
39
import { APIClient } from "../../fetch/api-client.js"
40
import KohaTable from "../KohaTable.vue"
40
import KohaTable from "../KohaTable.vue"
41
import EHoldingsLocalPackageResource from "./EHoldingsLocalPackageResource.vue"
41
42
42
export default {
43
export default {
44
    extends: EHoldingsLocalPackageResource,
43
    setup() {
45
    setup() {
44
        const vendorStore = inject("vendorStore")
46
        const vendorStore = inject("vendorStore")
45
        const { vendors } = storeToRefs(vendorStore)
47
        const { vendors } = storeToRefs(vendorStore)
Lines 47-54 export default { Link Here
47
        const AVStore = inject("AVStore")
49
        const AVStore = inject("AVStore")
48
        const { get_lib_from_av, map_av_dt_filter } = AVStore
50
        const { get_lib_from_av, map_av_dt_filter } = AVStore
49
51
50
        const { setConfirmationDialog, setMessage } = inject("mainStore")
51
52
        const table = ref()
52
        const table = ref()
53
        const filters = reactive({
53
        const filters = reactive({
54
            package_name: "",
54
            package_name: "",
Lines 56-68 export default { Link Here
56
        })
56
        })
57
57
58
        return {
58
        return {
59
            ...EHoldingsLocalPackageResource.setup(),
59
            vendors,
60
            vendors,
60
            get_lib_from_av,
61
            get_lib_from_av,
61
            map_av_dt_filter,
62
            map_av_dt_filter,
62
            table,
63
            table,
63
            filters,
64
            filters,
64
            setConfirmationDialog,
65
            setMessage,
66
            escape_str,
65
            escape_str,
67
            eholdings_packages_table_settings,
66
            eholdings_packages_table_settings,
68
        }
67
        }
Lines 80-86 export default { Link Here
80
            searchable_av_options: [],
79
            searchable_av_options: [],
81
            tableOptions: {
80
            tableOptions: {
82
                columns: this.getTableColumns(),
81
                columns: this.getTableColumns(),
83
                url: "/api/v1/erm/eholdings/local/packages",
82
                url: this.getResourceTableUrl(),
84
                options: {
83
                options: {
85
                    embed: "resources+count,vendor.name,extended_attributes,+strings",
84
                    embed: "resources+count,vendor.name,extended_attributes,+strings",
86
                    searchCols: [
85
                    searchCols: [
Lines 169-214 export default { Link Here
169
                    })
168
                    })
170
                })
169
                })
171
        },
170
        },
172
        doShow: function ({ package_id }, dt, event) {
173
            event.preventDefault()
174
            this.$router.push({
175
                name: "EHoldingsLocalPackagesShow",
176
                params: { package_id },
177
            })
178
        },
179
        doEdit: function ({ package_id }, dt, event) {
180
            this.$router.push({
181
                name: "EHoldingsLocalPackagesFormAddEdit",
182
                params: { package_id },
183
            })
184
        },
185
        doDelete: function (erm_package, dt, event) {
186
            this.setConfirmationDialog(
187
                {
188
                    title: this.$__(
189
                        "Are you sure you want to remove this package?"
190
                    ),
191
                    message: erm_package.name,
192
                    accept_label: this.$__("Yes, delete"),
193
                    cancel_label: this.$__("No, do not delete"),
194
                },
195
                () => {
196
                    const client = APIClient.erm
197
                    client.localPackages.delete(erm_package.package_id).then(
198
                        success => {
199
                            this.setMessage(
200
                                this.$__("Local package %s deleted").format(
201
                                    erm_package.name
202
                                ),
203
                                true
204
                            )
205
                            dt.draw()
206
                        },
207
                        error => {}
208
                    )
209
                }
210
            )
211
        },
212
        getTableColumns: function () {
171
        getTableColumns: function () {
213
            let get_lib_from_av = this.get_lib_from_av
172
            let get_lib_from_av = this.get_lib_from_av
214
            let escape_str = this.escape_str
173
            let escape_str = this.escape_str
Lines 220-228 export default { Link Here
220
                    orderable: true,
179
                    orderable: true,
221
                    render: function (data, type, row, meta) {
180
                    render: function (data, type, row, meta) {
222
                        return (
181
                        return (
223
                            '<a href="/cgi-bin/koha/erm/eholdings/local/packages/' +
182
                            '<a role="button" class="show">' +
224
                            row.package_id +
225
                            '" class="show">' +
226
                            escape_str(`${row.name} (#${row.package_id})`) +
183
                            escape_str(`${row.name} (#${row.package_id})`) +
227
                            "</a>"
184
                            "</a>"
228
                        )
185
                        )
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/EHoldingsLocalPackagesShow.vue (-47 / +9 lines)
Lines 3-22 Link Here
3
    <div v-else-if="erm_package" id="packages_show">
3
    <div v-else-if="erm_package" id="packages_show">
4
        <Toolbar>
4
        <Toolbar>
5
            <ToolbarButton
5
            <ToolbarButton
6
                :to="{
6
                action="edit"
7
                    name: 'EHoldingsLocalPackagesFormAddEdit',
7
                @go-to-edit-resource="goToResourceEdit"
8
                    params: { package_id: erm_package.package_id },
8
            />
9
                }"
9
            <ToolbarButton
10
                icon="pencil"
10
                action="delete"
11
                :title="$__('Edit')"
11
                @delete-resource="doResourceDelete"
12
            />
12
            />
13
            <a
14
                @click="
15
                    delete_package(erm_package.package_id, erm_package.name)
16
                "
17
                class="btn btn-default"
18
                ><font-awesome-icon icon="trash" /> {{ $__("Delete") }}</a
19
            >
20
        </Toolbar>
13
        </Toolbar>
21
14
22
        <h2>
15
        <h2>
Lines 126-146 import { APIClient } from "../../fetch/api-client.js" Link Here
126
import Toolbar from "../Toolbar.vue"
119
import Toolbar from "../Toolbar.vue"
127
import ToolbarButton from "../ToolbarButton.vue"
120
import ToolbarButton from "../ToolbarButton.vue"
128
import AdditionalFieldsDisplay from "../AdditionalFieldsDisplay.vue"
121
import AdditionalFieldsDisplay from "../AdditionalFieldsDisplay.vue"
122
import EHoldingsLocalPackageResource from "./EHoldingsLocalPackageResource.vue"
129
123
130
export default {
124
export default {
125
    extends: EHoldingsLocalPackageResource,
131
    setup() {
126
    setup() {
132
        const format_date = $date
127
        const format_date = $date
133
128
134
        const { setConfirmationDialog, setMessage } = inject("mainStore")
135
136
        const AVStore = inject("AVStore")
129
        const AVStore = inject("AVStore")
137
        const { get_lib_from_av } = AVStore
130
        const { get_lib_from_av } = AVStore
138
131
139
        return {
132
        return {
133
            ...EHoldingsLocalPackageResource.setup(),
140
            format_date,
134
            format_date,
141
            get_lib_from_av,
135
            get_lib_from_av,
142
            setConfirmationDialog,
143
            setMessage,
144
        }
136
        }
145
    },
137
    },
146
    data() {
138
    data() {
Lines 180-214 export default { Link Here
180
                error => {}
172
                error => {}
181
            )
173
            )
182
        },
174
        },
183
        delete_package: function (package_id, package_name) {
184
            this.setConfirmationDialog(
185
                {
186
                    title: this.$__(
187
                        "Are you sure you want to remove this package?"
188
                    ),
189
                    message: package_name,
190
                    accept_label: this.$__("Yes, delete"),
191
                    cancel_label: this.$__("No, do not delete"),
192
                },
193
                () => {
194
                    const client = APIClient.erm
195
                    client.localPackages.delete(package_id).then(
196
                        success => {
197
                            this.setMessage(
198
                                this.$__("Local package %s deleted").format(
199
                                    package_name
200
                                ),
201
                                true
202
                            )
203
                            this.$router.push({
204
                                name: "EHoldingsLocalPackagesList",
205
                            })
206
                        },
207
                        error => {}
208
                    )
209
                }
210
            )
211
        },
212
    },
175
    },
213
    components: {
176
    components: {
214
        EHoldingsPackageTitlesList,
177
        EHoldingsPackageTitlesList,
215
- 

Return to bug 37301