alert_list_ctrl.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. ///<reference path="../../headers/common.d.ts" />
  2. import angular from 'angular';
  3. import _ from 'lodash';
  4. import coreModule from '../../core/core_module';
  5. import moment from 'moment';
  6. import alertDef from './alert_def';
  7. export class AlertListCtrl {
  8. alerts: any;
  9. filters = {
  10. state: 'OK'
  11. };
  12. /** @ngInject */
  13. constructor(private backendSrv, private $route) {
  14. _.each($route.current.params.state, state => {
  15. this.filters[state.toLowerCase()] = true;
  16. });
  17. this.loadAlerts();
  18. }
  19. updateFilter() {
  20. var stats = [];
  21. this.$route.current.params.state = stats;
  22. this.$route.updateParams();
  23. }
  24. loadAlerts() {
  25. var stats = [];
  26. var params = {
  27. state: stats
  28. };
  29. this.backendSrv.get('/api/alerts', params).then(result => {
  30. this.alerts = _.map(result, alert => {
  31. alert.stateModel = alertDef.getStateDisplayModel(alert.state, alert.severity);
  32. alert.newStateDateAgo = moment(alert.newStateDate).fromNow().replace(" ago", "");
  33. return alert;
  34. });
  35. });
  36. }
  37. }
  38. coreModule.controller('AlertListCtrl', AlertListCtrl);