]> git.example.dev Git - binbsis50.git/commitdiff
partially reverted changes from 19e04c1
authorLuigi Pinca <luigipinca@gmail.com>
Tue, 29 Mar 2016 13:46:11 +0000 (15:46 +0200)
committerLuigi Pinca <luigipinca@gmail.com>
Tue, 29 Mar 2016 15:00:21 +0000 (17:00 +0200)
lib/sparks.js
public/js/app.js
public/js/home.js
routes/site.js
views/home.jade
views/room.jade

index c80c77604907654cada074652249e4485c78df55..425d91461ed7086c8b83b2707848c320da137668 100644 (file)
@@ -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;
+  }, {}));
 };
 
 /**
index 1359a1dd61b8f0a6c75f330707911cb932f8d840..8253e709a2de469a147f7c72e8d0289e3d52063f 100644 (file)
     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;
 
   $togglechat.click(hideChat);
 
-  $('.users-counter').each(function() {
-    userscounters[$(this).prevAll('.room-name').text()] = $(this);
-  });
-
   // Open the realtime connection
   primus = new Primus({ strategy: false });
 
     primus.on('updateoverview', updateRoomsOverview);
     primus.on('invalidnickname', invalidNickName);
     primus.on('alreadyinaroom', alreadyInARoom);
+    primus.on('overview', roomsOverview);
     primus.on('close', disconnect);
     primus.on('ready', ready);
   });
index 1ec7faff65dcfbf7f9e84e425f119d5bd89fe9b7..f0cd0bc58346d8ac13191e6daa8d1eb056814112 100644 (file)
@@ -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++) {
-        $('<img src="' + urls[i] + '" />').appendTo($(this));
-      }
+      var $this = $(this);
+
+      data[$this.attr('href')].forEach(function(url) {
+        $('<img src="' + 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);
   });
index 9e615ce9472710c01dca6dfe7a48ef9278748757..5b63ea0229a37acddf06910460173357ee04b9bf 100644 (file)
@@ -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) {
index 4aa5fba8e4f7ee8cfd5e06b14cac8e0d65136a5d..a3fe32dd568272f5faa642c62c13455017ddee9b 100644 (file)
@@ -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
index 69e2a3e992658ac17fd1669e6ea5b2645ddb56ea..8390ce7c1de92b232b7d3d5e0e1cb7db2c3bc90b 100644 (file)
@@ -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}