diff --git a/public/js/tabulator/filters/Dates.js b/public/js/tabulator/filters/Dates.js index 7c9f268f0..429d63e1a 100644 --- a/public/js/tabulator/filters/Dates.js +++ b/public/js/tabulator/filters/Dates.js @@ -7,26 +7,49 @@ Tabulator.extendModule('filter', 'filters', { "dates": (headerValue, rowValue) => { if (!headerValue) return true; - let v = new Date(rowValue); - if (Array.isArray(headerValue)) { - if (headerValue[1]) { - return v >= headerValue[0] && v <= headerValue[1].setHours(23, 59, 59, 999); + + let rowDate = new Date(rowValue); + + if (Array.isArray(headerValue)) + { + let startDate = new Date(headerValue[0]); + if (headerValue[1]) + { + let endDate = new Date(headerValue[1]); + + endDate.setHours(23, 59, 59, 999); + + return rowDate >= startDate && rowDate <= endDate; } - return v.toDateString() == headerValue[0].toDateString(); + + return rowDate.toDateString() === startDate.toDateString(); } - return v.toDateString() == headerValue.toDateString(); + let singleDate = new Date(headerValue); + return rowDate.toDateString() === singleDate.toDateString(); } }); + function dateFilter(cell, onRendered, success) { let div = document.createElement('div'); + let initialValue = null; + + let val = cell.getValue(); + + if (Array.isArray(val)) + { + const start = val[0] ? new Date(val[0]) : null; + const end = val[1] ? new Date(val[1]) : null; + initialValue = [start, end]; + } + Vue.createApp({ components: { PrimevueCalendar: primevue.calendar }, data() { return { - val: null + val: initialValue } }, watch: { @@ -34,10 +57,16 @@ function dateFilter(cell, onRendered, success) { success(n); } }, - template: `` + template: ` + ` }).use(primevue.config.default).mount(div); return div; } - -export { dateFilter as 'dateFilter' }; +export { dateFilter }; \ No newline at end of file