Problems: use severity filter from panel options

This commit is contained in:
Alexander Zobnin
2020-06-17 12:55:38 +03:00
parent 00f9c25a79
commit 05d6af4dce
2 changed files with 19 additions and 1 deletions

View File

@@ -465,7 +465,10 @@ export class ZabbixDatasource extends DataSourceApi<ZabbixMetricsQuery, ZabbixDS
}
if (target.options?.minSeverity) {
const severities = [0, 1, 2, 3, 4, 5].filter(v => 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;
}

View File

@@ -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