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

(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ResourceFormSave.vue (-5 / +31 lines)
Lines 11-17 Link Here
11
        <h2 v-else>{{ instancedResource.i18n.newLabel }}</h2>
11
        <h2 v-else>{{ instancedResource.i18n.newLabel }}</h2>
12
        <slot
12
        <slot
13
            name="toolbar"
13
            name="toolbar"
14
            :componentPropData="{ ...$props, ...$data, resourceForm }"
14
            :componentPropData="{
15
                ...$props,
16
                ...$data,
17
                resourceForm,
18
                saveDropdownButtonActions,
19
            }"
15
        />
20
        />
16
        <form
21
        <form
17
            @submit="saveAndNavigate($event, resourceToSave)"
22
            @submit="saveAndNavigate($event, resourceToSave)"
Lines 94-100 Link Here
94
                "
99
                "
95
            >
100
            >
96
                <DropdownButtons
101
                <DropdownButtons
97
                    :dropdownButtons="dropdownButtons"
102
                    :dropdownButtons="saveDropdownButtonActions"
98
                    :cssClass="'btn-primary'"
103
                    :cssClass="'btn-primary'"
99
                >
104
                >
100
                    <ButtonSubmit :title="$__('Save')" />
105
                    <ButtonSubmit :title="$__('Save')" />
Lines 197-206 export default { Link Here
197
        const saveOptionSelected = ref(
202
        const saveOptionSelected = ref(
198
            props.instancedResource.navigationOnFormSave
203
            props.instancedResource.navigationOnFormSave
199
        );
204
        );
200
        const dropdownButtons = computed(() => {
205
        const saveDropdownButtonActions = computed(() => {
201
            const { components, navigationOnFormSave } =
206
            const { components, navigationOnFormSave } =
202
                props.instancedResource;
207
                props.instancedResource;
203
208
            const formToSubmit = resourceForm.value;
204
            const buttonOptions = {
209
            const buttonOptions = {
205
                list: {
210
                list: {
206
                    title: $__("Save and return to list"),
211
                    title: $__("Save and return to list"),
Lines 208-213 export default { Link Here
208
                    cssClass: "btn btn-default",
213
                    cssClass: "btn btn-default",
209
                    callback: () => {
214
                    callback: () => {
210
                        saveOptionSelected.value = components.list;
215
                        saveOptionSelected.value = components.list;
216
                        if (
217
                            props.instancedResource.stickyToolbar.includes(
218
                                "Form"
219
                            )
220
                        ) {
221
                            formToSubmit.value.requestSubmit();
222
                        }
211
                    },
223
                    },
212
                },
224
                },
213
                show: {
225
                show: {
Lines 216-221 export default { Link Here
216
                    cssClass: "btn btn-default",
228
                    cssClass: "btn btn-default",
217
                    callback: () => {
229
                    callback: () => {
218
                        saveOptionSelected.value = components.show;
230
                        saveOptionSelected.value = components.show;
231
                        if (
232
                            props.instancedResource.stickyToolbar.includes(
233
                                "Form"
234
                            )
235
                        ) {
236
                            formToSubmit.value.requestSubmit();
237
                        }
219
                    },
238
                    },
220
                },
239
                },
221
                edit: {
240
                edit: {
Lines 224-229 export default { Link Here
224
                    cssClass: "btn btn-default",
243
                    cssClass: "btn btn-default",
225
                    callback: () => {
244
                    callback: () => {
226
                        saveOptionSelected.value = components.edit;
245
                        saveOptionSelected.value = components.edit;
246
                        if (
247
                            props.instancedResource.stickyToolbar.includes(
248
                                "Form"
249
                            )
250
                        ) {
251
                            formToSubmit.value.requestSubmit();
252
                        }
227
                    },
253
                    },
228
                },
254
                },
229
            };
255
            };
Lines 241-247 export default { Link Here
241
            resourceForm,
267
            resourceForm,
242
            saveAndNavigate,
268
            saveAndNavigate,
243
            editMode,
269
            editMode,
244
            dropdownButtons,
270
            saveDropdownButtonActions,
245
        };
271
        };
246
    },
272
    },
247
    props: {
273
    props: {
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Toolbar.vue (-1 / +29 lines)
Lines 4-9 Link Here
4
        :class="sticky ? 'btn-toolbar sticky' : 'btn-toolbar'"
4
        :class="sticky ? 'btn-toolbar sticky' : 'btn-toolbar'"
5
        ref="toolbar"
5
        ref="toolbar"
6
    >
6
    >
7
        <template v-if="sticky">
8
            <fieldset class="action" style="padding: 0; margin-bottom: 0">
9
                <DropdownButtons
10
                    :dropdownButtons="
11
                        componentPropData.saveDropdownButtonActions
12
                    "
13
                    :cssClass="'btn-primary'"
14
                >
15
                    <ButtonSubmit
16
                        :title="$__('Save')"
17
                        :callback="
18
                            () =>
19
                                componentPropData.resourceForm.value.requestSubmit()
20
                        "
21
                    />
22
                </DropdownButtons>
23
                <router-link
24
                    :to="{
25
                        name: componentPropData.instancedResource.components
26
                            .list,
27
                    }"
28
                    role="button"
29
                    class="cancel"
30
                    >{{ $__("Cancel") }}</router-link
31
                >
32
            </fieldset>
33
        </template>
7
        <template v-if="toolbarButtons">
34
        <template v-if="toolbarButtons">
8
            <template
35
            <template
9
                :key="`toolbar-button-${i}`"
36
                :key="`toolbar-button-${i}`"
Lines 28-33 Link Here
28
import { computed, useTemplateRef, watch } from "vue";
55
import { computed, useTemplateRef, watch } from "vue";
29
import ToolbarButton from "./ToolbarButton.vue";
56
import ToolbarButton from "./ToolbarButton.vue";
30
import DropdownButtons from "./DropdownButtons.vue";
57
import DropdownButtons from "./DropdownButtons.vue";
58
import ButtonSubmit from "./ButtonSubmit.vue";
31
export default {
59
export default {
32
    props: {
60
    props: {
33
        toolbarButtons: Function,
61
        toolbarButtons: Function,
Lines 39-45 export default { Link Here
39
            default: false,
67
            default: false,
40
        },
68
        },
41
    },
69
    },
42
    components: { ToolbarButton, DropdownButtons },
70
    components: { ToolbarButton, DropdownButtons, ButtonSubmit },
43
    name: "Toolbar",
71
    name: "Toolbar",
44
    setup(props) {
72
    setup(props) {
45
        const toolbar = computed(() => {
73
        const toolbar = computed(() => {
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/VendorResource.vue (-21 / +2 lines)
Lines 33-56 export default { Link Here
33
        const additionalToolbarButtons = (resource, componentData) => {
33
        const additionalToolbarButtons = (resource, componentData) => {
34
            const { instancedResource } = componentData;
34
            const { instancedResource } = componentData;
35
            const buttons = {
35
            const buttons = {
36
                form: [
37
                    {
38
                        title: $__("Save"),
39
                        icon: "save",
40
                        callback: () => {
41
                            componentData.resourceForm.value.requestSubmit()
42
                        },
43
                        cssClass: "btn btn-primary"
44
                    },
45
                    {
46
                        to: {
47
                            name: "VendorList",
48
                        },
49
                        title: $__("Cancel"),
50
                        icon: "times",
51
                        cssClass: "btn btn-link",
52
                    },
53
                ],
54
                show: [
36
                show: [
55
                    {
37
                    {
56
                        dropdownButtons: [
38
                        dropdownButtons: [
Lines 801-807 export default { Link Here
801
                return baseResource.apiClient.update(vendor, vendorId).then(
783
                return baseResource.apiClient.update(vendor, vendorId).then(
802
                    vendor => {
784
                    vendor => {
803
                        baseResource.setMessage($__("Vendor updated"));
785
                        baseResource.setMessage($__("Vendor updated"));
804
                        return vendor
786
                        return vendor;
805
                    },
787
                    },
806
                    error => {}
788
                    error => {}
807
                );
789
                );
Lines 809-815 export default { Link Here
809
                return baseResource.apiClient.create(vendor).then(
791
                return baseResource.apiClient.create(vendor).then(
810
                    vendor => {
792
                    vendor => {
811
                        baseResource.setMessage($__("Vendor created"));
793
                        baseResource.setMessage($__("Vendor created"));
812
                        return vendor
794
                        return vendor;
813
                    },
795
                    },
814
                    error => {}
796
                    error => {}
815
                );
797
                );
816
- 

Return to bug 40191