This is an automated email from the ASF dual-hosted git repository. sardell pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/metron.git
The following commit(s) were added to refs/heads/master by this push: new 8a5e7e7 METRON-2192 [UI] "All time" time range is broken on Alerts UI (tiborm via sardell) closes apache/metron#1469 8a5e7e7 is described below commit 8a5e7e7d348922477faf1717b8556d81e950b762 Author: tiborm <tibor.mel...@gmail.com> AuthorDate: Mon Jul 29 14:08:00 2019 +0200 METRON-2192 [UI] "All time" time range is broken on Alerts UI (tiborm via sardell) closes apache/metron#1469 --- .../alerts/alerts-list/alerts-list.component.ts | 2 +- .../app/alerts/alerts-list/query-builder.spec.ts | 32 ++++++++++++++++++++++ .../src/app/alerts/alerts-list/query-builder.ts | 11 ++++---- 3 files changed, 39 insertions(+), 6 deletions(-) diff --git a/metron-interface/metron-alerts/src/app/alerts/alerts-list/alerts-list.component.ts b/metron-interface/metron-alerts/src/app/alerts/alerts-list/alerts-list.component.ts index 4cf1886..049baae 100644 --- a/metron-interface/metron-alerts/src/app/alerts/alerts-list/alerts-list.component.ts +++ b/metron-interface/metron-alerts/src/app/alerts/alerts-list/alerts-list.component.ts @@ -296,7 +296,7 @@ export class AlertsListComponent implements OnInit, OnDestroy { private updateQueryBuilder(timeRangeFilter: Filter) { if (timeRangeFilter.value === ALL_TIME) { - this.queryBuilder.removeFilter(timeRangeFilter); + this.queryBuilder.removeFilterByField(timeRangeFilter.field); } else { this.queryBuilder.addOrUpdateFilter(timeRangeFilter); } diff --git a/metron-interface/metron-alerts/src/app/alerts/alerts-list/query-builder.spec.ts b/metron-interface/metron-alerts/src/app/alerts/alerts-list/query-builder.spec.ts index b8e4ca9..20f0ac4 100644 --- a/metron-interface/metron-alerts/src/app/alerts/alerts-list/query-builder.spec.ts +++ b/metron-interface/metron-alerts/src/app/alerts/alerts-list/query-builder.spec.ts @@ -130,4 +130,36 @@ describe('query-builder', () => { expect(queryBuilder.searchRequest.query).toBe('(source\\:type:bro OR metron_alert.source\\:type:bro)'); }); + it('removeFilter should remove filter by reference', () => { + const queryBuilder = new QueryBuilder(); + + const filter1 = new Filter(TIMESTAMP_FIELD_NAME, '[1552863600000 TO 1552950000000]'); + const filter2 = new Filter('fieldName', 'value'); + + queryBuilder.addOrUpdateFilter(filter1); + queryBuilder.addOrUpdateFilter(filter2); + + queryBuilder.removeFilter(filter1); + + expect(queryBuilder.filters.length).toBe(1); + expect(queryBuilder.filters[0]).toBe(filter2); + }); + + it('removeFilterByField should remove filter having the passed field name', () => { + const queryBuilder = new QueryBuilder(); + + const filter1 = new Filter('fruit', 'banana'); + const filter2 = new Filter('fruit', 'orange'); + const filter3 = new Filter('animal', 'horse'); + + queryBuilder.addOrUpdateFilter(filter1); + queryBuilder.addOrUpdateFilter(filter2); + queryBuilder.addOrUpdateFilter(filter3); + + queryBuilder.removeFilterByField('fruit'); + + expect(queryBuilder.filters.length).toBe(1); + expect(queryBuilder.filters[0]).toBe(filter3); + }); + }); diff --git a/metron-interface/metron-alerts/src/app/alerts/alerts-list/query-builder.ts b/metron-interface/metron-alerts/src/app/alerts/alerts-list/query-builder.ts index f9c9b70..a55a609 100644 --- a/metron-interface/metron-alerts/src/app/alerts/alerts-list/query-builder.ts +++ b/metron-interface/metron-alerts/src/app/alerts/alerts-list/query-builder.ts @@ -140,11 +140,12 @@ export class QueryBuilder { } removeFilter(filter: Filter) { - const filterIndex = this._filters.indexOf(filter); - if (filterIndex >= 0) { - this._filters.splice(filterIndex, 1); - this.onSearchChange(); - } + this._filters = this._filters.filter(fItem => fItem !== filter ); + this.onSearchChange(); + } + + removeFilterByField(field: string): void { + this._filters = this._filters.filter(fItem => fItem.field !== field ); } setFields(fieldNames: string[]) {