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 |
- |
|
|