Ability to filter on DATE fields (#6299) (#6824)

This was surprisingly quick, it was already built, just not enabled.
Let's double check it together still on Monday @FelixMalfait!
This commit is contained in:
ad-elias
2024-09-03 14:14:38 +02:00
committed by GitHub
parent 6e7cb27af2
commit bc2227ddbb
6 changed files with 17 additions and 7 deletions

View File

@ -24,6 +24,7 @@ export const formatFieldMetadataItemsAsFilterDefinitions = ({
if ( if (
![ ![
FieldMetadataType.DateTime, FieldMetadataType.DateTime,
FieldMetadataType.Date,
FieldMetadataType.Text, FieldMetadataType.Text,
FieldMetadataType.Email, FieldMetadataType.Email,
FieldMetadataType.Emails, FieldMetadataType.Emails,

View File

@ -76,9 +76,9 @@ export const MultipleFiltersDropdownContent = ({
{filterDefinitionUsedInDropdown.type === 'RATING' && ( {filterDefinitionUsedInDropdown.type === 'RATING' && (
<ObjectFilterDropdownRatingInput /> <ObjectFilterDropdownRatingInput />
)} )}
{filterDefinitionUsedInDropdown.type === 'DATE_TIME' && ( {['DATE_TIME', 'DATE'].includes(
<ObjectFilterDropdownDateInput /> filterDefinitionUsedInDropdown.type,
)} ) && <ObjectFilterDropdownDateInput />}
{filterDefinitionUsedInDropdown.type === 'RELATION' && ( {filterDefinitionUsedInDropdown.type === 'RELATION' && (
<> <>
<ObjectFilterDropdownSearchInput /> <ObjectFilterDropdownSearchInput />

View File

@ -11,6 +11,7 @@ export const MultipleFiltersDropdownFilterOnFilterChangedEffect = ({
useEffect(() => { useEffect(() => {
switch (filterDefinitionUsedInDropdownType) { switch (filterDefinitionUsedInDropdownType) {
case 'DATE':
case 'DATE_TIME': case 'DATE_TIME':
setDropdownWidth(280); setDropdownWidth(280);
break; break;

View File

@ -28,6 +28,9 @@ export const ObjectFilterDropdownDateInput = () => {
selectedFilter?.value ? new Date(selectedFilter.value) : new Date(), selectedFilter?.value ? new Date(selectedFilter.value) : new Date(),
); );
const isDateTimeInput =
filterDefinitionUsedInDropdown?.type === FieldMetadataType.DateTime;
const handleChange = (date: Date | null) => { const handleChange = (date: Date | null) => {
setInternalDate(date); setInternalDate(date);
@ -38,7 +41,11 @@ export const ObjectFilterDropdownDateInput = () => {
fieldMetadataId: filterDefinitionUsedInDropdown.fieldMetadataId, fieldMetadataId: filterDefinitionUsedInDropdown.fieldMetadataId,
value: isDefined(date) ? date.toISOString() : '', value: isDefined(date) ? date.toISOString() : '',
operand: selectedOperandInDropdown, operand: selectedOperandInDropdown,
displayValue: isDefined(date) ? date.toLocaleString() : '', displayValue: isDefined(date)
? isDateTimeInput
? date.toLocaleString()
: date.toLocaleDateString()
: '',
definition: filterDefinitionUsedInDropdown, definition: filterDefinitionUsedInDropdown,
}); });
@ -50,9 +57,7 @@ export const ObjectFilterDropdownDateInput = () => {
date={internalDate} date={internalDate}
onChange={handleChange} onChange={handleChange}
onMouseSelect={handleChange} onMouseSelect={handleChange}
isDateTimeInput={ isDateTimeInput={isDateTimeInput}
filterDefinitionUsedInDropdown?.type === FieldMetadataType.DateTime
}
/> />
); );
}; };

View File

@ -227,6 +227,7 @@ export const isRecordMatchingFilter = ({
}); });
}); });
} }
case FieldMetadataType.Date:
case FieldMetadataType.DateTime: { case FieldMetadataType.DateTime: {
return isMatchingDateFilter({ return isMatchingDateFilter({
dateFilter: filterValue as DateFilter, dateFilter: filterValue as DateFilter,

View File

@ -199,6 +199,7 @@ const applyEmptyFilters = (
[correspondingField.name]: { is: 'NULL' } as StringFilter, [correspondingField.name]: { is: 'NULL' } as StringFilter,
}; };
break; break;
case 'DATE':
case 'DATE_TIME': case 'DATE_TIME':
emptyRecordFilter = { emptyRecordFilter = {
[correspondingField.name]: { is: 'NULL' } as DateFilter, [correspondingField.name]: { is: 'NULL' } as DateFilter,
@ -326,6 +327,7 @@ export const turnObjectDropdownFilterIntoQueryFilter = (
); );
} }
break; break;
case 'DATE':
case 'DATE_TIME': case 'DATE_TIME':
switch (rawUIFilter.operand) { switch (rawUIFilter.operand) {
case ViewFilterOperand.GreaterThan: case ViewFilterOperand.GreaterThan: