From 19e04c16957adbaa47943758b49ded6e381c2fc1 Mon Sep 17 00:00:00 2001 From: Luigi Pinca Date: Mon, 28 Mar 2016 14:37:53 +0200 Subject: [PATCH] removed `getoverview` event --- lib/sparks.js | 10 ---------- public/js/app.js | 23 ++++++++--------------- public/js/home.js | 14 ++++---------- routes/site.js | 27 ++++++++++++++++++--------- views/home.jade | 8 ++++---- views/room.jade | 13 ++++++------- 6 files changed, 40 insertions(+), 55 deletions(-) diff --git a/lib/sparks.js b/lib/sparks.js index 80d6ef9..c80c776 100644 --- a/lib/sparks.js +++ b/lib/sparks.js @@ -105,16 +105,6 @@ var authorize = function(req, authorized) { var connection = function(spark) { var user = spark.request.user; - spark.on('getoverview', function(callback) { - if (!isFunction(callback)) { - return; - } - var data = Object.create(null); - for (var room in rooms) { - data[room] = rooms[room].totusers; - } - callback(data); - }); spark.on('joinauthenticated', function(room) { if (user && ~config.rooms.indexOf(room)) { if (sparks[user]) { // User already in a room diff --git a/public/js/app.js b/public/js/app.js index ab0dc53..1359a1d 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -895,17 +895,6 @@ primus.send('getstatus', setStatus); }; - // Show the number of players inside each room - var roomsOverview = function(data) { - $('.users-counter').each(function() { - var room = $(this).prevAll('.room-name').text(); - userscounters[room] = $(this); - $(this).text(data[room]); - }); - - primus.on('updateoverview', updateRoomsOverview); - }; - var setStatus = function(data) { if (data.status === 0) { isplaying = true; @@ -1188,8 +1177,13 @@ $togglechat.click(hideChat); + $('.users-counter').each(function() { + userscounters[$(this).prevAll('.room-name').text()] = $(this); + }); + // Open the realtime connection - primus = Primus.connect({ strategy: false }); + primus = new Primus({ strategy: false }); + primus.on('open', function() { $jplayer = $('#player').jPlayer({ ready: jplayerReady, @@ -1198,11 +1192,10 @@ preload: 'auto', volume: 1 }); + primus.on('updateoverview', updateRoomsOverview); + primus.on('invalidnickname', invalidNickName); primus.on('alreadyinaroom', alreadyInARoom); primus.on('close', disconnect); - primus.on('invalidnickname', invalidNickName); primus.on('ready', ready); - primus.send('getoverview', roomsOverview); }); - })(); diff --git a/public/js/home.js b/public/js/home.js index 98ff0d1..1ec7faf 100644 --- a/public/js/home.js +++ b/public/js/home.js @@ -10,15 +10,9 @@ }); }); - var primus = Primus.connect({ strategy: false }); - primus.on('open', function() { - primus.send('getoverview', function(data) { - for (var prop in data) { - $('#' + prop).text(data[prop]); - } - }); - primus.on('updateoverview', function(room, players) { - $('#' + room).text(players); - }); + var primus = new Primus({ strategy: false }); + + primus.on('updateoverview', function(room, players) { + $('#' + room).text(players); }); })(); diff --git a/routes/site.js b/routes/site.js index 5b63ea0..9e615ce 100644 --- a/routes/site.js +++ b/routes/site.js @@ -66,7 +66,9 @@ exports.changePasswd = function(req, res) { exports.home = function(req, res) { res.render('home', { loggedin: req.session.user, - rooms: config.rooms, + rooms: config.rooms.map(function(room) { + return { name: room, players: rooms[room].totusers }; + }), slogan: randomSlogan() }); }; @@ -96,15 +98,22 @@ exports.resetPasswd = function(req, res) { }; exports.room = function(req, res) { - if (~config.rooms.indexOf(req.params.room)) { - return res.render('room', { - loggedin: req.session.user, - roomname: req.params.room, - rooms: config.rooms, - slogan: randomSlogan() - }); + var stations = config.rooms.filter(function(room) { + return room !== req.params.room; + }); + + if (stations.length === config.rooms.length) { + return res.status(404).send(http.STATUS_CODES[404]); } - res.status(404).send(http.STATUS_CODES[404]); + + res.render('room', { + loggedin: req.session.user, + roomname: req.params.room, + rooms: stations.map(function(room) { + return { name: room, players: rooms[room].totusers }; + }), + slogan: randomSlogan() + }); }; exports.signup = function(req, res) { diff --git a/views/home.jade b/views/home.jade index cf889d8..4aa5fba 100644 --- a/views/home.jade +++ b/views/home.jade @@ -48,11 +48,11 @@ block sections .row .span16 ul.thumbnails - - each item in rooms + - each room in rooms li.span4 - a.thumbnail.relative(href=item) - .room #{item} - - span(id=item) + a.thumbnail.relative(href=room.name) + .room #{room.name} - + span(id=room.name) #{room.players} | Players append scripts diff --git a/views/room.jade b/views/room.jade index 05ae51d..69e2a3e 100644 --- a/views/room.jade +++ b/views/room.jade @@ -17,13 +17,12 @@ block nav a.dropdown-toggle(data-toggle="dropdown",href="#") #{roomname} b.caret ul.dropdown-menu - - each item in rooms - - if (item !== roomname) - li - a(href=item) - span.room-name #{item} - i.icon-user.pull-right - span.users-counter + - each room in rooms + li + a(href=room.name) + span.room-name #{room.name} + i.icon-user.pull-right + span.users-counter #{room.players} - if (locals.loggedin) li.dropdown a.dropdown-toggle(data-toggle="dropdown", href="#") Logged in as #{loggedin} -- 2.54.0