From: Luigi Pinca Date: Tue, 29 Mar 2016 13:46:11 +0000 (+0200) Subject: partially reverted changes from 19e04c1 X-Git-Url: https://git.saalbach.dev/?a=commitdiff_plain;h=1402365cad1be3f83e9496aceb944506bfe5f8e2;p=binbsis50.git partially reverted changes from 19e04c1 --- diff --git a/lib/sparks.js b/lib/sparks.js index c80c776..425d914 100644 --- a/lib/sparks.js +++ b/lib/sparks.js @@ -127,6 +127,10 @@ var connection = function(spark) { } return user ? callback(true, user) : callback(false); }); + spark.send('overview', config.rooms.reduce(function(data, room) { + data[room] = rooms[room].totusers; + return data; + }, {})); }; /** diff --git a/public/js/app.js b/public/js/app.js index 1359a1d..8253e70 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -895,6 +895,15 @@ 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]); + }); + }; + var setStatus = function(data) { if (data.status === 0) { isplaying = true; @@ -1177,10 +1186,6 @@ $togglechat.click(hideChat); - $('.users-counter').each(function() { - userscounters[$(this).prevAll('.room-name').text()] = $(this); - }); - // Open the realtime connection primus = new Primus({ strategy: false }); @@ -1195,6 +1200,7 @@ primus.on('updateoverview', updateRoomsOverview); primus.on('invalidnickname', invalidNickName); primus.on('alreadyinaroom', alreadyInARoom); + primus.on('overview', roomsOverview); primus.on('close', disconnect); primus.on('ready', ready); }); diff --git a/public/js/home.js b/public/js/home.js index 1ec7faf..f0cd0bc 100644 --- a/public/js/home.js +++ b/public/js/home.js @@ -3,15 +3,21 @@ $.get('/artworks', function(data) { $('.thumbnail').each(function() { - var urls = data[$(this).attr('href')]; - for (var i = 0; i < urls.length; i++) { - $('').appendTo($(this)); - } + var $this = $(this); + + data[$this.attr('href')].forEach(function(url) { + $('').appendTo($this); + }, $this); }); }); var primus = new Primus({ strategy: false }); + primus.on('overview', function(rooms) { + Object.keys(rooms).forEach(function(room) { + $('#' + room).text(rooms[room]); + }); + }); primus.on('updateoverview', function(room, players) { $('#' + room).text(players); }); diff --git a/routes/site.js b/routes/site.js index 9e615ce..5b63ea0 100644 --- a/routes/site.js +++ b/routes/site.js @@ -66,9 +66,7 @@ exports.changePasswd = function(req, res) { exports.home = function(req, res) { res.render('home', { loggedin: req.session.user, - rooms: config.rooms.map(function(room) { - return { name: room, players: rooms[room].totusers }; - }), + rooms: config.rooms, slogan: randomSlogan() }); }; @@ -98,22 +96,15 @@ exports.resetPasswd = function(req, res) { }; exports.room = function(req, res) { - 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]); + if (~config.rooms.indexOf(req.params.room)) { + return res.render('room', { + loggedin: req.session.user, + roomname: req.params.room, + rooms: config.rooms, + slogan: randomSlogan() + }); } - - 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() - }); + res.status(404).send(http.STATUS_CODES[404]); }; exports.signup = function(req, res) { diff --git a/views/home.jade b/views/home.jade index 4aa5fba..a3fe32d 100644 --- a/views/home.jade +++ b/views/home.jade @@ -50,9 +50,9 @@ block sections ul.thumbnails - each room in rooms li.span4 - a.thumbnail.relative(href=room.name) - .room #{room.name} - - span(id=room.name) #{room.players} + a.thumbnail.relative(href=room) + .room #{room} - + span(id=room) | Players append scripts diff --git a/views/room.jade b/views/room.jade index 69e2a3e..8390ce7 100644 --- a/views/room.jade +++ b/views/room.jade @@ -18,11 +18,12 @@ block nav b.caret ul.dropdown-menu - 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 (room !== roomname) + li + a(href=room) + span.room-name #{room} + i.icon-user.pull-right + span.users-counter - if (locals.loggedin) li.dropdown a.dropdown-toggle(data-toggle="dropdown", href="#") Logged in as #{loggedin}