Browse Source

Fix filter removal.

pull/1122/head
Sebastian Stehle 2 years ago
parent
commit
97082e872f
  1. 28
      frontend/src/app/shared/components/search/queries/filter-logical.component.ts

28
frontend/src/app/shared/components/search/queries/filter-logical.component.ts

@ -70,41 +70,53 @@ export class FilterLogicalComponent {
public addNode(node: FilterNode) {
const filter = this.filter;
let change: FilterLogical;
if (isLogicalAnd(filter)) {
this.emitChange({ and: [...filter.and, node] });
change = { and: [...filter.and, node] };
} else {
this.emitChange({ or: [...filter.or, node] });
change = { or: [...filter.or, node] };
}
this.emitChange(change);
}
public removeNode(index: number) {
const filter = this.filter;
let change: FilterLogical;
if (isLogicalAnd(filter)) {
this.filter = { and: filter.and.filter((_, i) => i !== index) };
change = { and: filter.and.filter((_, i) => i !== index) };
} else {
this.filter = { or: filter.or.filter((_, i) => i !== index) };
change = { or: filter.or.filter((_, i) => i !== index) };
}
this.emitChange(change);
}
public replaceNode(index: number, node: FilterNode) {
const filter = this.filter;
let change: FilterLogical;
if (isLogicalAnd(filter)) {
this.emitChange({ and: filter.and.map((x, i) => i === index ? node : x) });
change = { and: filter.and.map((x, i) => i === index ? node : x) };
} else {
this.emitChange({ or: filter.or.map((x, i) => i === index ? node : x) });
change = { or: filter.or.map((x, i) => i === index ? node : x) };
}
this.emitChange(change);
}
public toggleType() {
const filter = this.filter;
let change: FilterLogical;
if (isLogicalAnd(filter)) {
this.emitChange({ or: filter.and });
change = { or: filter.and };
} else {
this.emitChange({ and: filter.or });
change = { and: filter.or };
}
this.emitChange(change);
}
private emitChange(filter: FilterLogical) {

Loading…
Cancel
Save