From 3586642fb026f5caa5da24ec8a68862509f0d4d1 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Wed, 24 Jun 2020 18:32:54 -0700 Subject: [PATCH] admin: Fix admin page to correctly show active/idle games and players A while ago we changed the storage for players. Previously we had a _players array and a separate clients array for their connections. Then at some point in the past we changed to an array named "players" and instead of separate "clients" each player in "players" now has its own list of connections. Ever since that change the admin view has been broken since it wasn't updated to track that change. Here we bring it up to date, (including the addition of two nunjucks filters, "active" and "idle" to help with this). --- lmno.js | 20 +++++++++++++++++--- templates/admin.html | 31 +++++++++++++++++++++++-------- 2 files changed, 40 insertions(+), 11 deletions(-) diff --git a/lmno.js b/lmno.js index c2942a4..0db6789 100644 --- a/lmno.js +++ b/lmno.js @@ -50,11 +50,25 @@ app.use(session({ saveUninitialized: false })); -nunjucks.configure("templates", { +const njx = nunjucks.configure("templates", { autoescape: true, express: app }); +njx.addFilter('active', function(list) { + if (list) + return list.filter(e => e.active === true); + else + return null; +}); + +njx.addFilter('idle', function(list) { + if (list) + return list.filter(e => e.active === false); + else + return null; +}); + /* Load each of our game mini-apps. * * Each "engine" we load here must have a property .Game on the @@ -283,12 +297,12 @@ app.get('/admin/', auth_admin, (request, response) => { let idle = []; for (let id in lmno.games) { - if (lmno.games[id].players.length) + if (lmno.games[id].players.filter(p => p.active).length > 0) active.push(lmno.games[id]); else idle.push(lmno.games[id]); } - response.render('admin.html', { test: "foobar", games: { active: active, idle: idle}}); + response.render('admin.html', { games: { active: active, idle: idle}}); }); diff --git a/templates/admin.html b/templates/admin.html index 39939b2..3a25e60 100644 --- a/templates/admin.html +++ b/templates/admin.html @@ -12,10 +12,21 @@ @@ -27,10 +38,14 @@ -- 2.43.0