- date filter

This commit is contained in:
ma0048
2025-02-11 08:58:00 +01:00
parent 40d2a657c6
commit df685133b5
+39 -10
View File
@@ -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: `<primevue-calendar v-model="val" selection-mode="range" :manual-input="false" show-button-bar></primevue-calendar>`
template: `<primevue-calendar
v-model="val"
selection-mode="range"
:manual-input="false"
show-button-bar
:showIcon="true"
dateFormat="dd.mm.yy">
</primevue-calendar>`
}).use(primevue.config.default).mount(div);
return div;
}
export { dateFilter as 'dateFilter' };
export { dateFilter };