diff --git a/src-ui/src/app/data/filter-rule-type.ts b/src-ui/src/app/data/filter-rule-type.ts index cc3f8ee46..d6a8ae596 100644 --- a/src-ui/src/app/data/filter-rule-type.ts +++ b/src-ui/src/app/data/filter-rule-type.ts @@ -47,6 +47,8 @@ export const FILTER_MODIFIED_BEFORE = 15 export const FILTER_MODIFIED_AFTER = 16 export const FILTER_TITLE_CONTENT = 19 +export const FILTER_SIMPLE_TITLE = 48 +export const FILTER_SIMPLE_TEXT = 49 export const FILTER_FULLTEXT_QUERY = 20 export const FILTER_FULLTEXT_MORELIKE = 21 @@ -68,12 +70,20 @@ export const FILTER_MIME_TYPE = 47 export const FILTER_RULE_TYPES: FilterRuleType[] = [ { + // Deprecated. UI now uses Tantivy-backed `title_search` filtervar, keep for now for existing saved views id: FILTER_TITLE, filtervar: 'title__icontains', datatype: 'string', multi: false, default: '', }, + { + id: FILTER_SIMPLE_TITLE, + filtervar: 'title_search', + datatype: 'string', + multi: false, + default: '', + }, { id: FILTER_CONTENT, filtervar: 'content__icontains', @@ -280,6 +290,12 @@ export const FILTER_RULE_TYPES: FilterRuleType[] = [ datatype: 'string', multi: false, }, + { + id: FILTER_SIMPLE_TEXT, + filtervar: 'text', + datatype: 'string', + multi: false, + }, { id: FILTER_FULLTEXT_QUERY, filtervar: 'query', diff --git a/src-ui/src/app/services/rest/document.service.spec.ts b/src-ui/src/app/services/rest/document.service.spec.ts index 711aab743..03375e367 100644 --- a/src-ui/src/app/services/rest/document.service.spec.ts +++ b/src-ui/src/app/services/rest/document.service.spec.ts @@ -10,7 +10,7 @@ import { DOCUMENT_SORT_FIELDS, DOCUMENT_SORT_FIELDS_FULLTEXT, } from 'src/app/data/document' -import { FILTER_TITLE } from 'src/app/data/filter-rule-type' +import { FILTER_SIMPLE_TITLE } from 'src/app/data/filter-rule-type' import { SETTINGS_KEYS } from 'src/app/data/ui-settings' import { environment } from 'src/environments/environment' import { PermissionsService } from '../permissions.service' @@ -138,13 +138,13 @@ describe(`DocumentService`, () => { subscription = service .listAllFilteredIds([ { - rule_type: FILTER_TITLE, + rule_type: FILTER_SIMPLE_TITLE, value: 'apple', }, ]) .subscribe() const req = httpTestingController.expectOne( - `${environment.apiBaseUrl}${endpoint}/?page=1&page_size=100000&fields=id&title__icontains=apple` + `${environment.apiBaseUrl}${endpoint}/?page=1&page_size=100000&fields=id&title_search=apple` ) expect(req.request.method).toEqual('GET') }) diff --git a/src-ui/src/app/utils/query-params.spec.ts b/src-ui/src/app/utils/query-params.spec.ts index cc957382b..7fd8f6808 100644 --- a/src-ui/src/app/utils/query-params.spec.ts +++ b/src-ui/src/app/utils/query-params.spec.ts @@ -8,6 +8,8 @@ import { FILTER_HAS_CUSTOM_FIELDS_ALL, FILTER_HAS_CUSTOM_FIELDS_ANY, FILTER_HAS_TAGS_ALL, + FILTER_SIMPLE_TEXT, + FILTER_SIMPLE_TITLE, FILTER_TITLE, FILTER_TITLE_CONTENT, NEGATIVE_NULL_FILTER_VALUE, @@ -176,7 +178,7 @@ describe('QueryParams Utils', () => { ) expect(rules).toEqual([ { - rule_type: FILTER_TITLE_CONTENT, + rule_type: FILTER_SIMPLE_TEXT, value: 'bank statement', }, ]) @@ -188,7 +190,7 @@ describe('QueryParams Utils', () => { ) expect(rules).toEqual([ { - rule_type: FILTER_TITLE, + rule_type: FILTER_SIMPLE_TITLE, value: 'invoice', }, ]) diff --git a/src-ui/src/app/utils/query-params.ts b/src-ui/src/app/utils/query-params.ts index 89bda2b72..cbd102e01 100644 --- a/src-ui/src/app/utils/query-params.ts +++ b/src-ui/src/app/utils/query-params.ts @@ -9,6 +9,8 @@ import { FILTER_HAS_CUSTOM_FIELDS_ALL, FILTER_HAS_CUSTOM_FIELDS_ANY, FILTER_RULE_TYPES, + FILTER_SIMPLE_TEXT, + FILTER_SIMPLE_TITLE, FILTER_TITLE, FILTER_TITLE_CONTENT, FilterRuleType, @@ -103,20 +105,6 @@ export function filterRulesFromQueryParams( ): FilterRule[] { let filterRulesFromQueryParams: FilterRule[] = [] - if (queryParams.has(SIMPLE_TEXT_PARAMETER)) { - filterRulesFromQueryParams.push({ - rule_type: FILTER_TITLE_CONTENT, - value: queryParams.get(SIMPLE_TEXT_PARAMETER), - }) - } - - if (queryParams.has(SIMPLE_TITLE_PARAMETER)) { - filterRulesFromQueryParams.push({ - rule_type: FILTER_TITLE, - value: queryParams.get(SIMPLE_TITLE_PARAMETER), - }) - } - const allFilterRuleQueryParams: string[] = FILTER_RULE_TYPES.map( (rt) => rt.filtervar ) @@ -165,9 +153,15 @@ export function queryParamsFromFilterRules(filterRules: FilterRule[]): Params { let params = {} for (let rule of filterRules) { let ruleType = FILTER_RULE_TYPES.find((t) => t.id == rule.rule_type) - if (rule.rule_type === FILTER_TITLE_CONTENT) { + if ( + rule.rule_type === FILTER_TITLE_CONTENT || + rule.rule_type === FILTER_SIMPLE_TEXT + ) { params[SIMPLE_TEXT_PARAMETER] = rule.value - } else if (rule.rule_type === FILTER_TITLE) { + } else if ( + rule.rule_type === FILTER_TITLE || + rule.rule_type === FILTER_SIMPLE_TITLE + ) { params[SIMPLE_TITLE_PARAMETER] = rule.value } else if (ruleType.isnull_filtervar && rule.value == null) { params[ruleType.isnull_filtervar] = 1