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 <[email protected]>
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[]) {