+
+ (remove)="removeFilter(i)" (change)="emitChange()">
diff --git a/frontend/app/shared/components/search/queries/filter-logical.component.ts b/frontend/app/shared/components/search/queries/filter-logical.component.ts
index bf4b5ad4a..ccc019d65 100644
--- a/frontend/app/shared/components/search/queries/filter-logical.component.ts
+++ b/frontend/app/shared/components/search/queries/filter-logical.component.ts
@@ -80,8 +80,8 @@ export class FilterLogicalComponent {
this.emitChange();
}
- public removeFilter(node: FilterNode) {
- this.filters.splice(this.filters.indexOf(node), 1);
+ public removeFilter(index: number) {
+ this.filters.splice(index, 1);
this.emitChange();
}
diff --git a/frontend/app/shared/components/search/queries/query.component.html b/frontend/app/shared/components/search/queries/query.component.html
index 63f85d7fd..edfb09d0d 100644
--- a/frontend/app/shared/components/search/queries/query.component.html
+++ b/frontend/app/shared/components/search/queries/query.component.html
@@ -1,12 +1,12 @@
+ (change)="emitQueryChange()">
Sorting
-
+
+ (remove)="removeSorting(i)" (change)="emitQueryChange()">
diff --git a/frontend/app/shared/components/search/queries/query.component.ts b/frontend/app/shared/components/search/queries/query.component.ts
index 7f3e7ad4b..6cf8532e7 100644
--- a/frontend/app/shared/components/search/queries/query.component.ts
+++ b/frontend/app/shared/components/search/queries/query.component.ts
@@ -10,9 +10,7 @@ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from
import {
LanguageDto,
Query,
- QueryModel,
- QuerySorting,
- Types
+ QueryModel
} from '@app/shared/internal';
@Component({
@@ -33,19 +31,37 @@ export class QueryComponent {
@Input()
public set query(query: Query) {
- this.queryValue = Types.clone(query);
+ if (!query) {
+ query = {};
+ }
+
+ if (!query.filter) {
+ query.filter = { and: [] };
+ }
+
+ if (!query.sort) {
+ query.sort = [];
+ }
+
+ this.queryValue = query;
}
public queryValue: Query = {};
public addSorting() {
- this.queryValue.sort!.push({ path: Object.keys(this.model.fields)[0], order: 'ascending' });
+ const path = Object.keys(this.model.fields)[0];
+
+ if (this.queryValue.sort) {
+ this.queryValue.sort.push({ path, order: 'ascending' });
+ }
this.emitQueryChange();
}
- public removeSorting(sorting: QuerySorting) {
- this.queryValue.sort!.splice(this.queryValue.sort!.indexOf(sorting), 1);
+ public removeSorting(index: number) {
+ if (this.queryValue.sort) {
+ this.queryValue.sort.splice(index, 1);
+ }
this.emitQueryChange();
}
diff --git a/frontend/app/shared/components/search/search-form.component.html b/frontend/app/shared/components/search/search-form.component.html
index 1c9e1d5c8..6e65fa01a 100644
--- a/frontend/app/shared/components/search/search-form.component.html
+++ b/frontend/app/shared/components/search/search-form.component.html
@@ -62,9 +62,9 @@
-
+