1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
'use strict';
angular.module('dgc.system.notification').service('NotificationService', ['$timeout', 'lodash', 'ColorCoding', function($timeout, _, colorCoding) {
var notifications = [],
service = {
timeout: 2000,
getAll: function() {
return notifications;
},
reset: function() {
notifications = [];
},
close: function(notification) {
_.remove(notifications, notification);
}
};
_.each(colorCoding, function(value, key) {
service[key] = function(message, timeout) {
var notification = message;
if (_.isString(message)) {
notification = {
message: message
};
}
notification.message = notification.msg || notification.message;
delete notification.msg;
notification.type = value;
notification.timeout = _.isUndefined(timeout) ? (_.isUndefined(notification.timeout) ? true : notification.timeout) : timeout;
notifications.push(notification);
if (notification.timeout) {
$timeout(function() {
service.close(notification);
}, angular.isNumber(notification.timeout) ? notification.timeout : service.timeout);
}
};
});
return service;
}]);