From 05d6af4dce5e7793175288c3dde8a6f9a9580d58 Mon Sep 17 00:00:00 2001 From: Alexander Zobnin Date: Wed, 17 Jun 2020 12:55:38 +0300 Subject: [PATCH] Problems: use severity filter from panel options --- src/datasource-zabbix/datasource.ts | 5 ++++- src/datasource-zabbix/query.controller.ts | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/datasource-zabbix/datasource.ts b/src/datasource-zabbix/datasource.ts index 4d7ba7d..34e6241 100644 --- a/src/datasource-zabbix/datasource.ts +++ b/src/datasource-zabbix/datasource.ts @@ -465,7 +465,10 @@ export class ZabbixDatasource extends DataSourceApi v >= target.options?.minSeverity); + let severities = [0, 1, 2, 3, 4, 5].filter(v => v >= target.options?.minSeverity); + if (target.options?.severities) { + severities = severities.filter(v => target.options?.severities.includes(v)); + } problemsOptions.severities = severities; } diff --git a/src/datasource-zabbix/query.controller.ts b/src/datasource-zabbix/query.controller.ts index a622cb2..c7c3f68 100644 --- a/src/datasource-zabbix/query.controller.ts +++ b/src/datasource-zabbix/query.controller.ts @@ -59,6 +59,20 @@ function getSeverityOptions() { return c.TRIGGER_SEVERITY; } +function mapSeverityOptionsFromPanel(severityOptions: any[]) { + if (!severityOptions) { + return [0, 1, 2, 3, 4, 5]; + } + + const severities = []; + for (const sevOption of severityOptions) { + if (sevOption.show) { + severities.push(sevOption.priority); + } + } + return severities; +} + export class ZabbixQueryController extends QueryCtrl { static templateUrl: string; @@ -202,6 +216,7 @@ export class ZabbixQueryController extends QueryCtrl { if (this.panel.type === c.ZABBIX_PROBLEMS_PANEL_ID) { target.queryType = c.MODE_PROBLEMS; + target.options.severities = mapSeverityOptionsFromPanel(this.panel.triggerSeverity); } // Create function instances from saved JSON