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

(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/AgreementLicenses.vue (+4 lines)
Lines 22-28 Link Here
22
                    <InfiniteScrollSelect
22
                    <InfiniteScrollSelect
23
                        :id="`license_id_${counter}`"
23
                        :id="`license_id_${counter}`"
24
                        v-model="agreement_license.license_id"
24
                        v-model="agreement_license.license_id"
25
                        :selectedData="agreement_license.license"
25
                        dataType="licenses"
26
                        dataType="licenses"
27
                        dataIdentifier="license_id"
28
                        label="name"
26
                        :required="true"
29
                        :required="true"
27
                    />
30
                    />
28
                    <span class="required">{{ $__("Required") }}</span>
31
                    <span class="required">{{ $__("Required") }}</span>
Lines 124-129 export default { Link Here
124
                physical_location: null,
127
                physical_location: null,
125
                notes: "",
128
                notes: "",
126
                uri: "",
129
                uri: "",
130
                license: { name: "" },
127
            })
131
            })
128
        },
132
        },
129
        deleteLicense(counter) {
133
        deleteLicense(counter) {
(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/InfiniteScrollSelect.vue (-30 / +8 lines)
Lines 2-8 Link Here
2
    <v-select
2
    <v-select
3
        :id="id"
3
        :id="id"
4
        v-model="model"
4
        v-model="model"
5
        :label="queryProperty"
5
        :label="label"
6
        :options="paginationRequired ? paginated : data"
6
        :options="paginationRequired ? paginated : data"
7
        :reduce="item => item[dataIdentifier]"
7
        :reduce="item => item[dataIdentifier]"
8
        @open="onOpen"
8
        @open="onOpen"
Lines 30-74 Link Here
30
import { APIClient } from "../fetch/api-client.js"
30
import { APIClient } from "../fetch/api-client.js"
31
31
32
export default {
32
export default {
33
    created() {
34
        switch (this.dataType) {
35
            case "vendors":
36
                this.dataIdentifier = "id"
37
                this.queryProperty = "name"
38
                break
39
            case "agreements":
40
                this.dataIdentifier = "agreement_id"
41
                this.queryProperty = "name"
42
                break
43
            case "licenses":
44
                this.dataIdentifier = "license_id"
45
                this.queryProperty = "name"
46
                break
47
            case "localPackages":
48
                this.dataIdentifier = "package_id"
49
                this.queryProperty = "name"
50
                break
51
            default:
52
                break
53
        }
54
    },
55
    props: {
33
    props: {
56
        id: String,
34
        id: String,
35
        selectedData: Object,
57
        dataType: String,
36
        dataType: String,
58
        modelValue: Number,
37
        modelValue: Number,
38
        dataIdentifier: String,
39
        label: String,
59
        required: Boolean,
40
        required: Boolean,
60
    },
41
    },
61
    emits: ["update:modelValue"],
42
    emits: ["update:modelValue"],
62
    data() {
43
    data() {
63
        return {
44
        return {
64
            observer: null,
45
            observer: null,
65
            dataIdentifier: null,
66
            queryProperty: null,
67
            limit: null,
46
            limit: null,
68
            search: "",
47
            search: "",
69
            scrollPage: null,
48
            scrollPage: null,
70
            data: [],
49
            data: [this.selectedData],
71
            paginationRequired: true,
50
            paginationRequired: false,
72
        }
51
        }
73
    },
52
    },
74
    computed: {
53
    computed: {
Lines 82-88 export default { Link Here
82
        },
61
        },
83
        filtered() {
62
        filtered() {
84
            return this.data.filter(item =>
63
            return this.data.filter(item =>
85
                item[this.queryProperty].includes(this.search)
64
                item[this.label].includes(this.search)
86
            )
65
            )
87
        },
66
        },
88
        paginated() {
67
        paginated() {
Lines 124-130 export default { Link Here
124
                this.data = []
103
                this.data = []
125
                this.search = e
104
                this.search = e
126
                const client = APIClient.erm
105
                const client = APIClient.erm
127
                const attribute = "me." + this.queryProperty
106
                const attribute = "me." + this.label
128
                const q = {}
107
                const q = {}
129
                q[attribute] = { like: `%${e}%` }
108
                q[attribute] = { like: `%${e}%` }
130
                await client[this.dataType]
109
                await client[this.dataType]
131
- 

Return to bug 32474