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