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