diff options
-rw-r--r-- | public/join.js | 8 | ||||
-rw-r--r-- | server.js | 8 | ||||
-rw-r--r-- | views/games.ejs | 10 | ||||
-rw-r--r-- | views/info.ejs | 10 |
4 files changed, 15 insertions, 21 deletions
diff --git a/public/join.js b/public/join.js index b0b93cf..19efcde 100644 --- a/public/join.js +++ b/public/join.js @@ -71,6 +71,12 @@ function start_event_source() { } } +function is_your_turn(player, role) { + if (player.user_id === user_id) + return (game.active_role === role || game.active_role === "Both" || game.active_role === "All"); + return false; +} + function update() { window.game_status.textContent = ["Open","Active","Finished","Abandoned"][game.status]; window.game_result.textContent = game.result || "\u2014"; @@ -85,7 +91,7 @@ function update() { let element = document.getElementById(role_id); if (player) { if (game.status > 0) { - if (game.active_role === role || game.active_role === "Both" || game.active_role === "All") + if (is_your_turn(player, role)) element.className = "is_your_turn"; else element.className = ""; @@ -554,7 +554,7 @@ for (let title_id of db.prepare("SELECT * FROM titles").pluck().all()) { const QUERY_GAME = db.prepare("SELECT * FROM game_view WHERE game_id = ?"); const QUERY_LIST_GAMES_OF_TITLE = db.prepare(` - SELECT *, ( active_id = ? OR active_role = 'Both' OR active_role = 'All' ) AS is_your_turn FROM game_view + SELECT * FROM game_view WHERE title_id = ? AND private = 0 ORDER BY status ASC, mtime DESC `); @@ -644,7 +644,7 @@ app.get('/info/:title_id', function (req, res) { return res.redirect('/'); } if (req.isAuthenticated()) { - let games = QUERY_LIST_GAMES_OF_TITLE.all(req.user.user_id, title_id); + let games = QUERY_LIST_GAMES_OF_TITLE.all(title_id); humanize(games); let open_games = games.filter(game => game.status === 0); let active_games = games.filter(game => game.status === 1); @@ -1375,11 +1375,11 @@ app.get('/users', function (req, res) { res.render('users.ejs', { user: req.user, message: req.flash('message'), userList: rows }); }); -const QUERY_LIST_GAMES = db.prepare("SELECT *, ( active_id = ? OR active_role = 'Both' OR active_role = 'All' ) AS is_your_turn FROM game_view WHERE private = 0 AND status < 2"); +const QUERY_LIST_GAMES = db.prepare("SELECT * FROM game_view WHERE private = 0 AND status < 2"); app.get('/games', must_be_logged_in, function (req, res) { LOG(req, "GET /join"); - let games = QUERY_LIST_GAMES.all(req.user.user_id); + let games = QUERY_LIST_GAMES.all(); humanize(games); let open_games = games.filter(game => game.status === 0); let active_games = games.filter(game => game.status === 1); diff --git a/views/games.ejs b/views/games.ejs index 4e6f2a4..a355910 100644 --- a/views/games.ejs +++ b/views/games.ejs @@ -33,14 +33,8 @@ td.nowrap a { color: black; text-decoration: none; } <td><%= row.player_names %> <td><%= row.description %> <td class="nowrap"><%= row.mtime %> -<% - if (row.is_your_turn) { - %><td class="is_your_turn"><%= row.active_role %><% - } else { - %><td><%= row.active_role %><% - } - %><td><a href="/join/<%= row.game_id %>">Enter</a><% -%> +<td><%= row.active_role %> +<td><a href="/join/<%= row.game_id %>">Enter</a> <% }); } else { %> <tr><td colspan="8">No active games. <% } %> diff --git a/views/info.ejs b/views/info.ejs index 02ce2dd..fdfc974 100644 --- a/views/info.ejs +++ b/views/info.ejs @@ -38,14 +38,8 @@ Read more about the game on <td><%= row.player_names %> <td><%= row.description %> <td class="nowrap"><%= row.mtime %> -<% - if (row.is_your_turn) { - %><td class="is_your_turn"><%= row.active_role %><% - } else { - %><td><%= row.active_role %><% - } - %><td><a href="/join/<%= row.game_id %>">Enter</a><% -%> +<td><%= row.active_role %> +<td><a href="/join/<%= row.game_id %>">Enter</a> <% }); %> </table> <% } %> |