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

(-)a/koha-tmpl/intranet-tmpl/prog/js/vue/components/ERM/AgreementsList.vue (-32 / +34 lines)
Lines 9-22 Link Here
9
                id="expired_filter"
9
                id="expired_filter"
10
                v-model="filters.by_expired"
10
                v-model="filters.by_expired"
11
                @keyup.enter="filter_table"
11
                @keyup.enter="filter_table"
12
                @change="updateMaxExpirationDate($event)"
13
            />
12
            />
14
            {{ $__("on") }}
13
            {{ $__("on") }}
15
            <flat-pickr
14
            <flat-pickr
16
                id="max_expiration_date_filter"
15
                id="max_expiration_date_filter"
17
                v-model="this.filters.max_expiration_date"
16
                v-model="filters.max_expiration_date"
18
                :config="fp_config"
17
                :config="fp_config"
19
                :disabled="is_fp_disabled"
18
                :disabled="!filters.by_expired"
20
            />
19
            />
21
20
22
            <label for="by_mine_filter">{{ $__("Show mine only") }}:</label>
21
            <label for="by_mine_filter">{{ $__("Show mine only") }}:</label>
Lines 53-59 Link Here
53
<script>
52
<script>
54
import flatPickr from "vue-flatpickr-component"
53
import flatPickr from "vue-flatpickr-component"
55
import Toolbar from "./AgreementsToolbar.vue"
54
import Toolbar from "./AgreementsToolbar.vue"
56
import { inject, ref, reactive } from "vue"
55
import { inject, ref, reactive, computed } from "vue"
57
import { APIClient } from "../../fetch/api-client.js"
56
import { APIClient } from "../../fetch/api-client.js"
58
import { storeToRefs } from "pinia"
57
import { storeToRefs } from "pinia"
59
import { build_url } from "../../composables/datatables"
58
import { build_url } from "../../composables/datatables"
Lines 71-82 export default { Link Here
71
70
72
        const table = ref()
71
        const table = ref()
73
72
73
        const expiration_date = ref()
74
        const by_expired = ref(false)
75
        const by_mine = ref(false)
76
74
        const filters = reactive({
77
        const filters = reactive({
75
            by_expired: false,
78
            by_expired,
76
            max_expiration_date: "",
79
            max_expiration_date: computed({
77
            by_mine: "",
80
                get() {
81
                    if (by_expired.value) {
82
                        if (!expiration_date.value) {
83
                            expiration_date.value = new Date()
84
                                .toISOString()
85
                                .substring(0, 10)
86
                        }
87
                        return expiration_date.value
88
                    }
89
                    return ""
90
                },
91
                set(new_date) {
92
                    expiration_date.value = new_date
93
                },
94
            }),
95
            by_mine,
78
        })
96
        })
79
80
        return {
97
        return {
81
            vendors,
98
            vendors,
82
            get_lib_from_av,
99
            get_lib_from_av,
Lines 91-108 export default { Link Here
91
        }
108
        }
92
    },
109
    },
93
    data: function () {
110
    data: function () {
94
        this.filters = {
111
        this.filters.by_expired =
95
            by_expired: this.$route.query.by_expired === "true" || false,
112
            this.$route.query.by_expired === "true" || false
96
            max_expiration_date: this.$route.query.max_expiration_date || "",
113
        this.filters.by_mine = this.$route.query.by_mine || false
97
            by_mine: this.$route.query.by_mine || false,
114
98
        }
99
        let filters = this.filters
115
        let filters = this.filters
100
        this.updateMaxExpirationDate() // Set date to today if empty
101
116
102
        let logged_in_user = this.logged_in_user
117
        let logged_in_user = this.logged_in_user
103
        return {
118
        return {
104
            fp_config: flatpickr_defaults,
119
            fp_config: flatpickr_defaults,
105
            is_fp_disabled: !filters.by_expired,
106
            agreement_count: 0,
120
            agreement_count: 0,
107
            initialized: false,
121
            initialized: false,
108
            tableOptions: {
122
            tableOptions: {
Lines 218-247 export default { Link Here
218
            return url
232
            return url
219
        },
233
        },
220
        filter_table: async function () {
234
        filter_table: async function () {
221
            this.updateMaxExpirationDate()
222
            if (!this.embedded) {
235
            if (!this.embedded) {
236
                let filters = Object.assign({}, this.filters)
237
                if (!filters.by_expired) {
238
                    filters.max_expiration_date = null
239
                }
223
                let new_route = build_url(
240
                let new_route = build_url(
224
                    "/cgi-bin/koha/erm/agreements",
241
                    "/cgi-bin/koha/erm/agreements",
225
                    this.filters
242
                    filters
226
                )
243
                )
227
                this.$router.push(new_route)
244
                this.$router.push(new_route)
228
            }
245
            }
229
            this.$refs.table.redraw(this.table_url())
246
            this.$refs.table.redraw(this.table_url())
230
        },
247
        },
231
        updateMaxExpirationDate: function (event) {
232
            if (event) {
233
                this.is_fp_disabled = !event.target.checked
234
            }
235
            if (
236
                this.filters.by_expired &&
237
                (!this.filters.max_expiration_date ||
238
                    this.filters.max_expiration_date === "")
239
            ) {
240
                this.filters.max_expiration_date = new Date()
241
                    .toISOString()
242
                    .substring(0, 10)
243
            }
244
        },
245
        getTableColumns: function () {
248
        getTableColumns: function () {
246
            let get_lib_from_av = this.get_lib_from_av
249
            let get_lib_from_av = this.get_lib_from_av
247
            let escape_str = this.escape_str
250
            let escape_str = this.escape_str
248
- 

Return to bug 33490