1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 | var simpleportal = require('./simpleportal');
|
18 |
|
19 | var NotificationCenter= function(options, socketio){
|
20 | var instance = this;
|
21 |
|
22 | instance.options = simpleportal.util.extendJSON({}, defaults, options);
|
23 |
|
24 | if(instance.options.osnotification)
|
25 | instance.osnotification=true;
|
26 |
|
27 | if(instance.options.socketnotification)
|
28 | instance.socketnotification=true;
|
29 |
|
30 | if(socketio)
|
31 | instance.socketio;
|
32 | };
|
33 |
|
34 | NotificationCenter.prototype.updateSocketIO = function(socketio){
|
35 | var instance=this;
|
36 |
|
37 | if(socketio)
|
38 | instance.socketio;
|
39 | }
|
40 |
|
41 |
|
42 |
|
43 |
|
44 |
|
45 |
|
46 | NotificationCenter.prototype.notify = function(data){
|
47 | var instance = this;
|
48 |
|
49 | if(instance.osnotification && data.message && !data.data)
|
50 | instance.__notify_mac(data);
|
51 |
|
52 | if(instance.socketnotification && instance.socketio && data.data)
|
53 | instance.__notify_socketio(data);
|
54 | };
|
55 |
|
56 |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 | NotificationCenter.prototype.__notify_socketio= function(data){
|
63 | var instance = this;
|
64 |
|
65 | if(instance.socketio)
|
66 | instance.socketio.emit('notification', data.data);
|
67 |
|
68 | if(data.message||options.data.message)
|
69 | instance.__notify_mac({message:data.message||data.data.message});
|
70 | else if(data.status=='exception')
|
71 | instance.__notify_mac(data.message + ' -- ' + data.exception);
|
72 | }
|
73 |
|
74 |
|
75 |
|
76 |
|
77 |
|
78 |
|
79 |
|
80 | NotificationCenter.prototype.__notify_mac = function(data){
|
81 | var instance = this;
|
82 | try{
|
83 | var notifier = require('node-notifier');
|
84 | var nc = new notifier.NotificationCenter();
|
85 |
|
86 | var data_ = simpleportal.util.extendJSON({}, instance.options, data);
|
87 |
|
88 | nc.notify(data_);
|
89 | }catch(error){
|
90 | console.log(error);
|
91 | }
|
92 | }
|
93 |
|
94 | var defaults={
|
95 | 'title': 'Simple portal',
|
96 | 'subtitle': 'Notifciation center',
|
97 | 'message': '',
|
98 | 'sound': 'Funk',
|
99 | 'appIcon': __dirname + '/coulson.jpg',
|
100 | 'contentImage': __dirname + '/coulson.jpg',
|
101 | 'open': 'file://' + __dirname + '/coulson.jpg'
|
102 | };
|
103 |
|
104 | module.exports = NotificationCenter; |
\ | No newline at end of file |