From c1e306cff055293495326359e6a6021bee6babbc Mon Sep 17 00:00:00 2001 From: argirok Date: Wed, 14 Feb 2024 11:27:00 +0200 Subject: [PATCH] [develop | DONE | ADDED ] add again publicationyear in criteria fields, add different list of verbs for numeric values --- src/app/pages/content-providers/criteria-utils.ts | 11 ++++++++--- .../criteria/criteria.component.html | 12 +++++++++--- .../content-providers/criteria/criteria.component.ts | 10 ++++++++++ 3 files changed, 27 insertions(+), 6 deletions(-) diff --git a/src/app/pages/content-providers/criteria-utils.ts b/src/app/pages/content-providers/criteria-utils.ts index a9c4f55..c8eee7d 100644 --- a/src/app/pages/content-providers/criteria-utils.ts +++ b/src/app/pages/content-providers/criteria-utils.ts @@ -12,9 +12,9 @@ export class CriteriaUtils { {value: 'fos', label: 'Field of Science'}, {value: 'sdg', label: 'SDG'}, {value: 'publisher', label: 'Publisher'}, - /*{value: 'publicationyear', label: 'Publication Year'}*/ + {value: 'publicationyear', label: 'Publication Year'} ] - + public readonly numericFields: string[] = ['publicationyear']; public readonly verbs: Option[] = [ {value: 'contains', label: 'contains'}, {value: 'equals', label: 'equals'}, @@ -22,6 +22,11 @@ export class CriteriaUtils { {value: 'not_equals', label: 'not equals'}, {value: 'starts_with', label: 'starts with'} ] + public readonly verbsForNumbers: Option[] = [ + {value: 'equals', label: 'equals'}, + {value: 'lesser_than', label: 'lesser than'}, + {value: 'greater_than', label: 'greater than'} + ] public getFiltersAsText(criteria: Criteria[]): string { let text = criteria.slice(0, 3).map((criterion, index) => (index + 1) + ". " + criterion.constraint.map(constraint => { @@ -30,7 +35,7 @@ export class CriteriaUtils { if (!constraint.verb.includes('_caseinsensitive')) { matchCase = true; } - let verb = this.verbs.find(verb => verb.value === constraint.verb.replace("_caseinsensitive", "")).label; + let verb = [...this.verbs,...this.verbsForNumbers].find(verb => verb.value === constraint.verb.replace("_caseinsensitive", "")).label; let value = '"' + constraint.value + '"' + (matchCase ? " (Match case)" : ""); return field + " " + verb + " " + value; }).join(" and ")); diff --git a/src/app/pages/content-providers/criteria/criteria.component.html b/src/app/pages/content-providers/criteria/criteria.component.html index 8b84635..74469a3 100644 --- a/src/app/pages/content-providers/criteria/criteria.component.html +++ b/src/app/pages/content-providers/criteria/criteria.component.html @@ -40,13 +40,17 @@
+ [options]="criteriaUtils.fields" [formInput]="constraint.get('field')" (valueChange)="resetFieldWhenValueChange(constraint)">
-
+
+ +
@@ -69,8 +73,10 @@
-
+