upd: view.websocket (now managing 'add', 'del', 'upd')

This commit is contained in:
xdrm-brackets 2017-12-07 22:16:15 +01:00
parent cddb82a8b5
commit ab1b3080c7
1 changed files with 72 additions and 26 deletions

View File

@ -15,27 +15,50 @@ window.wsc_emergency = wsc.channel('emergency/31').listen(function(msg, err){
if( typeof msg.error != 'boolean' || msg.error !== false )
return infobox.show('Erreur de connexion WebSocket@emergency', 'warning', 3000);
/* (3) If no message -> exit */
if( msg.data == null )
return;
/* (3) If message(s) to add */
if( msg.add != null ){
/* (4) Play sound if 1msg received + not already on page */
// note: 1msg means a new message but not the page load past buffer
if( msg.data.length == 1 && router.app.$route.path != '/emergency' )
( new Audio('https://notificationsounds.com/message-tones/communication-channel-519/download/mp3') ).play();
// {1} Play sound if 1msg received + not already on page //
// note: 1msg means a new message but not the page load past buffer
if( msg.add.length == 1 && router.app.$route.path != '/emergency' )
( new Audio('https://notificationsounds.com/message-tones/communication-channel-519/download/mp3') ).play();
/* (5) Add messages to stack */
gstore.data.notif.emergency.data = gstore.data.notif.emergency.data.concat( msg.data );
// {2} Add messages to stack //
gstore.data.notif.emergency.data = gstore.data.notif.emergency.data.concat( msg.add );
/* (6) Add notification count if not already on page */
if( router.app.$route.path != '/emergency' )
gstore.data.notif.emergency.count += msg.data.length;
// {3} Add notification count if not already on page //
if( router.app.$route.path != '/emergency' )
gstore.data.notif.emergency.count += msg.add.length;
/* (7) Remove loader */
}
/* (4) If message(s) to del */
if( msg.del != null ){
// {1} Rem messages from stack //
for( var id of msg.del )
if( gstore.data.notif.emergency.data[id] != null )
delete gstore.data.notif.emergency.data[id];
}
/* (5) If message(s) to update */
if( msg.upd != null ){
// {1} Update messages in stack //
for( var id of msg.upd )
if( gstore.data.notif.emergency.data[id] != null )
gstore.data.notif.emergency.data[id] = msg.upd[id];
}
/* (6) Remove loader */
gstore.data.msg_pending.emergency = false;
}).send({name: _SERVER.session.name});
/* (2) Event channel
---------------------------------------------------------*/
window.wsc_event = wsc.channel('event/31').listen(function(msg, err){
@ -48,28 +71,51 @@ window.wsc_event = wsc.channel('event/31').listen(function(msg, err){
if( typeof msg.error != 'boolean' || msg.error !== false )
return infobox.show('Erreur de connexion WebSocket@event', 'warning', 3000);
/* (3) If no message -> exit */
if( msg.data == null )
return;
/* (3) If message(s) to add */
if( msg.add != null ){
/* (4) Play sound if 1msg received + not already on page */
// note: 1msg means a new message but not the page load past buffer
if( msg.data.length == 1 && router.app.$route.path != '/event' )
( new Audio('https://notificationsounds.com/message-tones/communication-channel-519/download/mp3') ).play();
// {1} Play sound if 1msg received + not already on page //
// note: 1msg means a new message but not the page load past buffer
if( msg.add.length == 1 && router.app.$route.path != '/event' )
( new Audio('https://notificationsounds.com/message-tones/communication-channel-519/download/mp3') ).play();
/* (5) Add messages to stack */
gstore.data.notif.event.data = gstore.data.notif.event.data.concat( msg.data );
// {2} Add messages to stack //
gstore.data.notif.event.data = gstore.data.notif.event.data.concat( msg.add );
/* (6) Add notification count if not already on page */
if( router.app.$route.path != '/event' )
gstore.data.notif.event.count += msg.data.length;
// {3} Add notification count if not already on page //
if( router.app.$route.path != '/event' )
gstore.data.notif.event.count += msg.add.length;
/* (7) Remove loader */
}
/* (4) If message(s) to del */
if( msg.del != null ){
// {1} Rem messages from stack //
for( var id of msg.del )
if( gstore.data.notif.event.data[id] != null )
delete gstore.data.notif.event.data[id];
}
/* (5) If message(s) to update */
if( msg.upd != null ){
// {1} Update messages in stack //
for( var id of msg.upd )
if( gstore.data.notif.event.data[id] != null )
gstore.data.notif.event.data[id] = msg.upd[id];
}
/* (6) Remove loader */
gstore.data.msg_pending.event = false;
}).send({name: _SERVER.session.name});
/* (3) Message channel
---------------------------------------------------------*/
window.wsc_chat = wsc.channel('chat').listen(function(msg, err){