From 03fec3fa3e88d268c22fd1f246adc9c893d2d47a Mon Sep 17 00:00:00 2001 From: shamoon <4887959+shamoon@users.noreply.github.com> Date: Mon, 9 Sep 2024 12:40:04 -0700 Subject: [PATCH] Support legacy custom field filters --- .../filter-editor/filter-editor.component.ts | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts index 3d95f473b..e23b586c9 100644 --- a/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts +++ b/src-ui/src/app/components/document-list/filter-editor/filter-editor.component.ts @@ -62,7 +62,6 @@ import { FILTER_HAS_CUSTOM_FIELDS_ANY, FILTER_HAS_CUSTOM_FIELDS_ALL, FILTER_HAS_ANY_CUSTOM_FIELDS, - FILTER_DOES_NOT_HAVE_CUSTOM_FIELDS, FILTER_CUSTOM_FIELDS_LOOKUP, } from 'src/app/data/filter-rule-type' import { @@ -96,6 +95,7 @@ import { SearchService } from 'src/app/services/rest/search.service' import { CustomFieldQueryExpression, CustomFieldQueryAtom, + CustomFieldQueryLogicalOperator, } from 'src/app/data/custom-field-query' import { CustomFieldQueriesModel } from '../../common/custom-fields-query-dropdown/custom-fields-query-dropdown.component' @@ -231,6 +231,11 @@ export class FilterEditorComponent return $localize`Without any tag` } + case FILTER_HAS_CUSTOM_FIELDS_ANY: + return $localize`Custom fields include: ${this.customFields.find( + (f) => f.id == +rule.value + )?.name}` + case FILTER_HAS_CUSTOM_FIELDS_ALL: return $localize`Custom fields: ${ this.customFields.find((f) => f.id == +rule.value)?.name @@ -546,9 +551,26 @@ export class FilterEditorComponent } } } catch (e) { - // TODO: handle error? + // error handled by list view service } break + // Legacy custom field filters + case FILTER_HAS_CUSTOM_FIELDS_ALL: + this.customFieldQueriesModel.addExpression( + new CustomFieldQueryExpression([ + CustomFieldQueryLogicalOperator.And, + rule.value.split(','), + ]) + ) + break + case FILTER_HAS_CUSTOM_FIELDS_ANY: + this.customFieldQueriesModel.addExpression( + new CustomFieldQueryExpression([ + CustomFieldQueryLogicalOperator.Or, + rule.value.split(','), + ]) + ) + break case FILTER_ASN_ISNULL: this.textFilterTarget = TEXT_FILTER_TARGET_ASN this.textFilterModifier = @@ -773,7 +795,6 @@ export class FilterEditorComponent value: JSON.stringify(queries[0]), }) } - // TODO: fully implement custom fields if (this.dateCreatedBefore) { filterRules.push({ rule_type: FILTER_CREATED_BEFORE,