crunchbutton/www/assets/cockpit/js/service.socket.js
2014-11-18 21:06:22 -08:00

58 lines
1.4 KiB
JavaScript

NGApp.factory('eventSocket', function (socketFactory, $rootScope) {
// $rootScope.$on('userAuth', function(e, data) {
var myIoSocket = io.connect('https://chat.cockpit.la');
mySocket = socketFactory({
ioSocket: myIoSocket
});
return mySocket;
});
NGApp.factory('SocketService', function(eventSocket, AccountService, $rootScope) {
var service = {};
service.socket = eventSocket;
service.socket.on('connect', function (data) {
console.debug('Connected to socket.io');
service.socket.emit('auth', {
token: $.cookie('token'),
phpsessid: $.cookie('PHPSESSID'),
host: location.host
});
service.socket.emit('event.subscribe', 'user.preference.' + AccountService.user.id_admin);
if (AccountService.user && AccountService.user.prefs && AccountService.user.prefs['notification-desktop-support-all'] == '1') {
console.debug('Subscribing to all tickets');
service.socket.emit('event.subscribe', 'ticket.all');
} else {
console.debug('Unsubscribing to all tickets');
service.socket.emit('event.unsubscribe', 'ticket.all');
}
});
$rootScope.$on('user-preference', function(e, data) {
if (!service.socket) {
return;
}
console.log('Broadcasting preference change', data);
service.socket.emit('event.broadcast', {
to: {room: 'user.preference.' + AccountService.user.id_admin},
event: 'user.preference',
payload: {
key: data.key,
value: data.value
}
});
});
return service;
});