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] &quot;All time&quot; 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[]) {

Reply via email to