From d8d951c8104f0d6ae202bbececc0b700787925de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Mon, 15 Aug 2016 17:53:44 +0200 Subject: [PATCH] feat(alerting): can now change reducer --- .../query_part/query_part_editor.ts | 2 +- .../app/features/alerting/alert_tab_ctrl.ts | 34 +++++++++++++++---- .../features/alerting/partials/alert_tab.html | 11 ++---- .../plugins/datasource/influxdb/query_ctrl.ts | 6 ++-- 4 files changed, 32 insertions(+), 21 deletions(-) diff --git a/public/app/core/components/query_part/query_part_editor.ts b/public/app/core/components/query_part/query_part_editor.ts index 4699f529b20..7bc309d1bd2 100644 --- a/public/app/core/components/query_part/query_part_editor.ts +++ b/public/app/core/components/query_part/query_part_editor.ts @@ -136,7 +136,7 @@ export function queryPartEditorDirective($compile, templateSrv) { }; $scope.triggerPartAction = function(action) { - $scope.handleEvent({$event: {name: 'action-' + action.value}}); + $scope.handleEvent({$event: {name: 'action', action: action}}); }; function addElementsAndCompile() { diff --git a/public/app/features/alerting/alert_tab_ctrl.ts b/public/app/features/alerting/alert_tab_ctrl.ts index 684b3071113..0dd228e7040 100644 --- a/public/app/features/alerting/alert_tab_ctrl.ts +++ b/public/app/features/alerting/alert_tab_ctrl.ts @@ -16,13 +16,12 @@ export class AlertTabCtrl { conditionModels: any; evalFunctions: any; severityLevels: any; - reducerTypes: any; addNotificationSegment; notifications; alertNotifications; /** @ngInject */ - constructor(private $scope, private $timeout, private backendSrv, private dashboardSrv, private uiSegmentSrv) { + constructor(private $scope, private $timeout, private backendSrv, private dashboardSrv, private uiSegmentSrv, private $q) { this.panelCtrl = $scope.ctrl; this.panel = this.panelCtrl.panel; this.$scope.ctrl = this; @@ -30,7 +29,6 @@ export class AlertTabCtrl { this.evalFunctions = alertDef.evalFunctions; this.conditionTypes = alertDef.conditionTypes; this.severityLevels = alertDef.severityLevels; - this.reducerTypes = alertDef.reducerTypes; } $onInit() { @@ -156,12 +154,34 @@ export class AlertTabCtrl { return cm; } - queryPartUpdated(conditionModel) { + handleQueryPartEvent(conditionModel, evt) { + switch (evt.name) { + case "action-remove-part": { + break; + } + case "get-part-actions": { + return this.$q.when([]); + } + } } - changeReducerType(conditionModel, value) { - conditionModel.source.reducer.type = value; - conditionModel.reducerPart = alertDef.createReducerPart(conditionModel.source.reducer); + handleReducerPartEvent(conditionModel, evt) { + switch (evt.name) { + case "action": { + conditionModel.source.reducer.type = evt.action.value; + conditionModel.reducerPart = alertDef.createReducerPart(conditionModel.source.reducer); + break; + } + case "get-part-actions": { + var result = []; + for (var type of alertDef.reducerTypes) { + if (type.value !== conditionModel.source.reducer.type) { + result.push(type); + } + } + return this.$q.when(result); + } + } } addCondition(type) { diff --git a/public/app/features/alerting/partials/alert_tab.html b/public/app/features/alerting/partials/alert_tab.html index 65122b279f1..43ac9abaad4 100644 --- a/public/app/features/alerting/partials/alert_tab.html +++ b/public/app/features/alerting/partials/alert_tab.html @@ -49,19 +49,12 @@ WHEN
- +
Reducer - - - - +
diff --git a/public/app/plugins/datasource/influxdb/query_ctrl.ts b/public/app/plugins/datasource/influxdb/query_ctrl.ts index c5c94b776b1..aad613b8d5f 100644 --- a/public/app/plugins/datasource/influxdb/query_ctrl.ts +++ b/public/app/plugins/datasource/influxdb/query_ctrl.ts @@ -20,7 +20,6 @@ export class InfluxQueryCtrl extends QueryCtrl { measurementSegment: any; removeTagFilterSegment: any; - /** @ngInject **/ constructor($scope, $injector, private templateSrv, private $q, private uiSegmentSrv) { super($scope, $injector); @@ -123,7 +122,7 @@ export class InfluxQueryCtrl extends QueryCtrl { this.panelCtrl.refresh(); break; } - case "action-remove-part": { + case "action": { this.queryModel.removeSelectPart(selectParts, part); this.panelCtrl.refresh(); break; @@ -146,7 +145,7 @@ export class InfluxQueryCtrl extends QueryCtrl { this.panelCtrl.refresh(); break; } - case "action-remove-part": { + case "action": { this.queryModel.removeGroupByPart(part, index); this.panelCtrl.refresh(); break; @@ -335,4 +334,3 @@ export class InfluxQueryCtrl extends QueryCtrl { return this.queryModel.render(false); } } -