mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 04:09:50 +08:00
49 lines
1.1 KiB
JavaScript
Executable File
49 lines
1.1 KiB
JavaScript
Executable File
define([
|
|
'angular',
|
|
'underscore'
|
|
],
|
|
function (angular, _) {
|
|
'use strict';
|
|
|
|
var module = angular.module('kibana.services');
|
|
|
|
module.service('alertSrv', function($timeout) {
|
|
var self = this;
|
|
|
|
// List of all alert objects
|
|
this.list = [];
|
|
|
|
this.set = function(title,text,severity,timeout) {
|
|
var
|
|
_a = {
|
|
title: title || '',
|
|
text: text || '',
|
|
severity: severity || 'info',
|
|
},
|
|
_ca = angular.toJson(_a),
|
|
_clist = _.map(self.list,function(alert){return angular.toJson(alert);});
|
|
|
|
// If we already have this alert, remove it and add a new one
|
|
// Why do this instead of skipping the add because it resets the timer
|
|
if(_.contains(_clist,_ca)) {
|
|
_.remove(self.list,_.indexOf(_clist,_ca));
|
|
}
|
|
|
|
self.list.push(_a);
|
|
if (timeout > 0) {
|
|
$timeout(function() {
|
|
self.list = _.without(self.list,_a);
|
|
}, timeout);
|
|
}
|
|
return(_a);
|
|
};
|
|
|
|
this.clear = function(alert) {
|
|
self.list = _.without(self.list,alert);
|
|
};
|
|
|
|
this.clearAll = function() {
|
|
self.list = [];
|
|
};
|
|
});
|
|
}); |