| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- ///<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);
|