mirror of
https://github.com/grafana/grafana.git
synced 2025-02-15 10:03:33 -06:00
73 lines
1.9 KiB
TypeScript
73 lines
1.9 KiB
TypeScript
///<reference path="../../headers/common.d.ts" />
|
|
|
|
import _ from 'lodash';
|
|
import moment from 'moment';
|
|
|
|
import {coreModule, appEvents} from 'app/core/core';
|
|
import alertDef from './alert_def';
|
|
|
|
export class AlertListCtrl {
|
|
alerts: any;
|
|
stateFilters = [
|
|
{text: 'All', value: null},
|
|
{text: 'OK', value: 'ok'},
|
|
{text: 'Not OK', value: 'not_ok'},
|
|
{text: 'Alerting', value: 'alerting'},
|
|
{text: 'No Data', value: 'no_data'},
|
|
{text: 'Paused', value: 'paused'},
|
|
];
|
|
filters = {
|
|
state: 'ALL'
|
|
};
|
|
navModel: any;
|
|
|
|
/** @ngInject */
|
|
constructor(private backendSrv, private $location, navModelSrv) {
|
|
this.navModel = navModelSrv.getNav('alerting', 'alert-list', 0);
|
|
|
|
var params = $location.search();
|
|
this.filters.state = params.state || null;
|
|
this.loadAlerts();
|
|
}
|
|
|
|
filtersChanged() {
|
|
this.$location.search(this.filters);
|
|
}
|
|
|
|
loadAlerts() {
|
|
this.backendSrv.get('/api/alerts', this.filters).then(result => {
|
|
this.alerts = _.map(result, alert => {
|
|
alert.stateModel = alertDef.getStateDisplayModel(alert.state);
|
|
alert.newStateDateAgo = moment(alert.newStateDate).fromNow().replace(" ago", "");
|
|
if (alert.evalData && alert.evalData.no_data) {
|
|
alert.no_data = true;
|
|
}
|
|
return alert;
|
|
});
|
|
});
|
|
}
|
|
|
|
pauseAlertRule(alertId: any) {
|
|
var alert = _.find(this.alerts, {id: alertId});
|
|
|
|
var payload = {
|
|
paused: alert.state !== "paused"
|
|
};
|
|
|
|
this.backendSrv.post(`/api/alerts/${alert.id}/pause`, payload).then(result => {
|
|
alert.state = result.state;
|
|
alert.stateModel = alertDef.getStateDisplayModel(result.state);
|
|
});
|
|
}
|
|
|
|
openHowTo() {
|
|
appEvents.emit('show-modal', {
|
|
src: 'public/app/features/alerting/partials/alert_howto.html',
|
|
modalClass: 'confirm-modal',
|
|
model: {}
|
|
});
|
|
}
|
|
}
|
|
|
|
coreModule.controller('AlertListCtrl', AlertListCtrl);
|