Просмотр исходного кода

feat(alerting): Save As removes alerts from panels, closes #5965

Torkel Ödegaard 9 лет назад
Родитель
Сommit
6b17cdbca6

+ 23 - 15
public/app/features/alerting/alert_tab_ctrl.ts

@@ -74,18 +74,20 @@ export class AlertTabCtrl {
           this.alertNotifications.push(model);
         }
       });
-    }).then(() => {
-      this.backendSrv.get(`/api/alert-history?dashboardId=${this.panelCtrl.dashboard.id}&panelId=${this.panel.id}`).then(res => {
-        this.alertHistory = _.map(res, ah => {
-          ah.time = moment(ah.timestamp).format('MMM D, YYYY HH:mm:ss');
-          ah.stateModel = alertDef.getStateDisplayModel(ah.newState);
+    });
+  }
 
-          ah.metrics = _.map(ah.data, ev=> {
-            return ev.Metric + "=" + ev.Value;
-          }).join(', ');
+  getAlertHistory() {
+    this.backendSrv.get(`/api/alert-history?dashboardId=${this.panelCtrl.dashboard.id}&panelId=${this.panel.id}`).then(res => {
+      this.alertHistory = _.map(res, ah => {
+        ah.time = moment(ah.timestamp).format('MMM D, YYYY HH:mm:ss');
+        ah.stateModel = alertDef.getStateDisplayModel(ah.newState);
 
-          return ah;
-        });
+        ah.metrics = _.map(ah.data, ev=> {
+          return ev.Metric + "=" + ev.Value;
+        }).join(', ');
+
+        return ah;
       });
     });
   }
@@ -125,7 +127,11 @@ export class AlertTabCtrl {
   }
 
   initModel() {
-    var alert = this.alert = this.panel.alert = this.panel.alert || {};
+    var alert = this.alert = this.panel.alert = this.panel.alert || {enabled: false};
+
+    if (!this.alert.enabled) {
+      return;
+    }
 
     alert.conditions = alert.conditions || [];
     if (alert.conditions.length === 0) {
@@ -145,11 +151,9 @@ export class AlertTabCtrl {
       return memo;
     }, []);
 
-    if (this.alert.enabled) {
-      this.panelCtrl.editingThresholds = true;
-    }
-
     ThresholdMapper.alertToGraphThresholds(this.panel);
+
+    this.panelCtrl.editingThresholds = true;
     this.panelCtrl.render();
   }
 
@@ -173,6 +177,10 @@ export class AlertTabCtrl {
   }
 
   validateModel() {
+    if (!this.alert.enabled) {
+      return;
+    }
+
     let firstTarget;
     var fixed = false;
     let foundTarget = null;

+ 0 - 1
public/app/features/alerting/partials/alert_tab.html

@@ -65,7 +65,6 @@
 						<metric-segment-model property="conditionModel.evaluator.type" options="ctrl.evalFunctions" custom="false" css-class="query-keyword" on-change="ctrl.evaluatorTypeChanged(conditionModel.evaluator)"></metric-segment-model>
 						<input class="gf-form-input max-width-7" type="number" ng-hide="conditionModel.evaluator.params.length === 0" ng-model="conditionModel.evaluator.params[0]" ng-change="ctrl.evaluatorParamsChanged()"></input>
             <label class="gf-form-label query-keyword" ng-show="conditionModel.evaluator.params.length === 2">TO</label>
-						<input class="gf-form-input max-width-7" type="number" ng-if="conditionModel.evaluator.params.length === 2" ng-model="conditionModel.evaluator.params[1]" ng-change="ctrl.evaluatorParamsChanged()"></input>
 					</div>
 					<div class="gf-form">
 						<label class="gf-form-label">

+ 8 - 0
public/app/features/dashboard/saveDashboardAsCtrl.js

@@ -12,6 +12,14 @@ function (angular) {
       $scope.clone.id = null;
       $scope.clone.editable = true;
       $scope.clone.title = $scope.clone.title + " Copy";
+
+      // remove alerts
+      $scope.clone.rows.forEach(function(row) {
+        row.panels.forEach(function(panel) {
+          delete panel.alert;
+        });
+      });
+
       // remove auto update
       delete $scope.clone.autoUpdate;
     };