Weird pages when accessing pages without login fixed

parent 684534be
...@@ -103,15 +103,16 @@ module.exports = function eventsHook(sails) { ...@@ -103,15 +103,16 @@ module.exports = function eventsHook(sails) {
/** /**
* Someone has subscribed/unsubscribed to/from a room. The number * Someone has subscribed/unsubscribed to/from a room. The number
* of subscribes is sent * of subscribes is sent
* @param {number} subscriberCount Number of subscribers * @param {Object} counts {
pcb_count: Number of subscribers from PCBs,
pdb_count: Number of subscribers from PDBs
}
* @return {Object} {name, data} * @return {Object} {name, data}
*/ */
roomSubscribersChange: function (subscriberCount) { roomSubscribersChange: function (counts) {
return { return {
name: 'update_peers', name: 'update_peers',
data: { data: counts
count: subscriberCount
}
}; };
}, },
......
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
* @type {Object} * @type {Object}
*/ */
var socketRooms={}; // {socketId => [roomId, ...]} var socketRooms={}; // {socketId => [roomId, ...]}
var pcb_count=0;
var pdb_count=0;
module.exports = function roomsHook (sails) { module.exports = function roomsHook (sails) {
return { return {
...@@ -57,14 +59,19 @@ module.exports = function roomsHook (sails) { ...@@ -57,14 +59,19 @@ module.exports = function roomsHook (sails) {
// append to socketRooms // append to socketRooms
if (!socketRooms[socket_id]) if (!socketRooms[socket_id])
socketRooms[socket_id] = [room]; socketRooms[socket_id] = [{room: room, ui: ui}];
else else
socketRooms[socket_id].push(room); socketRooms[socket_id].push({room: room, ui: ui});
if (ui == 'PCB')
pcb_count++;
if (ui == 'PDB')
pdb_count++;
// broadcast data // broadcast data
sails.hooks.events.broadcastEvent( sails.hooks.events.broadcastEvent(
room, room,
sails.hooks.events.roomSubscribersChange(ids.length) sails.hooks.events.roomSubscribersChange({'pdb_count': pcb_count, 'pcb_count': pdb_count})
); );
} }
}); });
...@@ -94,18 +101,23 @@ module.exports = function roomsHook (sails) { ...@@ -94,18 +101,23 @@ module.exports = function roomsHook (sails) {
sails.io.sockets.in(room).clients(function(error, ids) { sails.io.sockets.in(room).clients(function(error, ids) {
if (!error) { if (!error) {
// broadcast event
sails.hooks.events.broadcastEvent(
room,
sails.hooks.events.roomSubscribersChange(ids.length)
);
// look for the room the socket is subscribed to and remove it // look for the room the socket is subscribed to and remove it
if (socketRooms[sails.sockets.getId(socket)]) { if (socketRooms[sails.sockets.getId(socket)]) {
var index = socketRooms[sails.sockets.getId(socket)].indexOf(room); var index = socketRooms[sails.sockets.getId(socket)].findIndex(x => x.room == room);
if (index > -1) { if (index > -1) {
if (socketRooms[sails.sockets.getId(socket)][index].ui == 'PDB')
pdb_count--;
else
pcb_count--;
socketRooms[sails.sockets.getId(socket)].splice(index, 1); socketRooms[sails.sockets.getId(socket)].splice(index, 1);
// broadcast data
sails.hooks.events.broadcastEvent(
room,
sails.hooks.events.roomSubscribersChange({'pdb_count': pcb_count, 'pcb_count': pdb_count})
);
} }
} }
} }
......
...@@ -36,8 +36,8 @@ dashboardControllers.controller('StudentCtrl', function StudentCtrl( ...@@ -36,8 +36,8 @@ dashboardControllers.controller('StudentCtrl', function StudentCtrl(
name: '' name: ''
}, },
stuSup: [], stuSup: [],
num_peers: 1, pcb_count: 0,
prev_num_peers: 1 pdb_count: 1
}; };
// For the user form data in setup section // For the user form data in setup section
...@@ -52,13 +52,8 @@ dashboardControllers.controller('StudentCtrl', function StudentCtrl( ...@@ -52,13 +52,8 @@ dashboardControllers.controller('StudentCtrl', function StudentCtrl(
// WebSockets communication // WebSockets communication
// //
io.socket.on('update_peers', function (data) { io.socket.on('update_peers', function (data) {
// REMOVED (too invasive) $scope.studentData.pcb_count = data.pcb_count;
// $translate('num_peers').then(function (translation) { $scope.studentData.pdb_count = data.pdb_count;
// ngToast.success(translation + ': ' + data.count);
//});
$scope.studentData.prev_num_peers = $scope.studentData.num_peers;
$scope.studentData.num_peers = data.count;
console.log('Usuarios conectados:'+$scope.studentData.num_peers+ " previamente:"+$scope.studentData.prev_num_peers);
$scope.$apply(); $scope.$apply();
}); });
......
...@@ -27,20 +27,21 @@ ...@@ -27,20 +27,21 @@
</div> </div>
</div> </div>
<div class="col-md-1"> <div class="col-md-1">
<div style="margin-left: 5px; margin-top: 10px" class="text-left text-success" ng-if="studentData.num_peers > 1" <div style="margin-left: 5px; margin-top: 10px"
ng-class="{ 'text-left':true,
'text-success': studentData.pdb_count > 0,
'text-danger': studentData.pdb_count == 0}"
popover="{{ 'num_peers' | translate }}" popover-trigger="mouseenter"> popover="{{ 'num_peers' | translate }}" popover-trigger="mouseenter">
<span class="glyphicon glyphicon-transfer" aria-hidden></span> <i class="fa fa-desktop" aria-hidden="true"></i>
{{studentData.num_peers}} {{studentData.pdb_count}}
</div> </div>
<div style="margin-left: 5px; margin-top: 10px" class="text-left text-warning" ng-if="studentData.num_peers == 1" <div style="margin-left: 5px; margin-top: 10px"
ng-class="{ 'text-left':true,
'text-success': studentData.pcb_count > 0,
'text-danger': studentData.pcb_count == 0}"
popover="{{ 'num_peers' | translate }}" popover-trigger="mouseenter"> popover="{{ 'num_peers' | translate }}" popover-trigger="mouseenter">
<span class="glyphicon glyphicon-transfer" aria-hidden></span> <i class="fa fa-tablet" aria-hidden="true"></i>
{{studentData.num_peers}} {{studentData.pcb_count}}
</div>
<div style="margin-left: 5px; margin-top: 10px" class="text-left text-danger" ng-if="studentData.num_peers == 0"
popover="{{ 'num_peers' | translate }}" popover-trigger="mouseenter">
<span class="glyphicon glyphicon-transfer" aria-hidden="true"></span>
{{studentData.num_peers}}
</div> </div>
</div> </div>
</div> </div>
......
...@@ -17,6 +17,9 @@ dashboardControllers.controller('SupervisorCtrl', function SupervisorCtrl( ...@@ -17,6 +17,9 @@ dashboardControllers.controller('SupervisorCtrl', function SupervisorCtrl(
) { ) {
// Restore user data from session // Restore user data from session
if (!$window.sessionStorage.user)
return $scope.logout();
var user = JSON.parse($window.sessionStorage.user); var user = JSON.parse($window.sessionStorage.user);
// Assign values this way (like an object) to ensure it's the parent scope // Assign values this way (like an object) to ensure it's the parent scope
......
...@@ -36,14 +36,11 @@ module.exports.sockets = { ...@@ -36,14 +36,11 @@ module.exports.sockets = {
***************************************************************************/ ***************************************************************************/
afterDisconnect: function (session, socket, cb) { afterDisconnect: function (session, socket, cb) {
var rooms=sails.hooks.rooms.getRoom(socket); // Leave all rooms
if (rooms) var rooms = sails.sockets.socketRooms(socket);
for (var i = 0; i < rooms.length; i++) { for (var i = 0; i < rooms.length; i++)
console.log("Unubscribed room in socket afterDisconnect: " + rooms[i]);
sails.hooks.rooms.unsubscribeFromRoom(rooms[i], socket); sails.hooks.rooms.unsubscribeFromRoom(rooms[i], socket);
} },
else console.log("Sockect disconnected without any room");
},
/*************************************************************************** /***************************************************************************
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment