mirror of
https://github.com/Kingsrook/qqq-frontend-material-dashboard.git
synced 2025-07-18 13:20:43 +00:00
Basic support for relative date-time expressions on Date fields
This commit is contained in:
@ -474,6 +474,53 @@ class FilterUtils
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (field && field.type == "DATE" && !values)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
const criteria = filterJSON.criteria[i];
|
||||||
|
if (criteria && criteria.expression)
|
||||||
|
{
|
||||||
|
let value = new Date();
|
||||||
|
let amount = Number(criteria.expression.amount);
|
||||||
|
switch (criteria.expression.timeUnit)
|
||||||
|
{
|
||||||
|
case "MINUTES":
|
||||||
|
{
|
||||||
|
amount = amount * 60;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "HOURS":
|
||||||
|
{
|
||||||
|
amount = amount * 60 * 60;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "DAYS":
|
||||||
|
{
|
||||||
|
amount = amount * 60 * 60 * 24;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
console.log("Unrecognized time unit: " + criteria.expression.timeUnit);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (criteria.expression.operator == "MINUS")
|
||||||
|
{
|
||||||
|
amount = -amount;
|
||||||
|
}
|
||||||
|
|
||||||
|
value.setTime(value.getTime() + 1000 * amount);
|
||||||
|
values = [ValueUtils.formatDateISO8601(value)];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (e)
|
||||||
|
{
|
||||||
|
console.log(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
defaultFilter.items.push({
|
defaultFilter.items.push({
|
||||||
columnField: criteria.fieldName,
|
columnField: criteria.fieldName,
|
||||||
operatorValue: FilterUtils.qqqCriteriaOperatorToGrid(criteria.operator, field, values),
|
operatorValue: FilterUtils.qqqCriteriaOperatorToGrid(criteria.operator, field, values),
|
||||||
|
Reference in New Issue
Block a user