From 077d88375f1372cbde80304131860fc66a8e0756 Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Tue, 22 Mar 2016 19:52:05 +0100 Subject: [PATCH] Add some keyboard shortcuts for switching games. --- www/js/remoteglot.js | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/www/js/remoteglot.js b/www/js/remoteglot.js index f3c02c6..5f0531e 100644 --- a/www/js/remoteglot.js +++ b/www/js/remoteglot.js @@ -952,11 +952,10 @@ var update_board = function() { if (current_data['games']) { current_games = current_data['games']; possibly_switch_game_from_hash(); - update_game_list(current_data['games']); } else { current_games = null; - update_game_list(null); } + update_game_list(current_games); // The headline. Names are always fetched from current_data; // the rest can depend a bit. @@ -1519,6 +1518,24 @@ var next_move = function() { } window['next_move'] = next_move; +var next_game = function() { + if (current_games === null) { + return; + } + + // Try to find the game we are currently looking at. + for (var game_num = 0; game_num < current_games.length; ++game_num) { + var game = current_games[game_num]; + if (game['url'] === backend_url) { + var next_game_num = (game_num + 1) % current_games.length; + switch_backend(current_games[next_game_num]['url'], current_games[next_game_num]['hashurl']); + return; + } + } + + // Couldn't find it; give up. +} + var update_historic_analysis = function() { if (!current_display_line_is_history) { return; @@ -2085,10 +2102,17 @@ var init = function() { redraw_arrows(); }); $(window).keyup(function(event) { - if (event.which == 39) { + if (event.which == 39) { // Left arrow. next_move(); - } else if (event.which == 37) { + } else if (event.which == 37) { // Right arrow. prev_move(); + } else if (event.which >= 49 && event.which <= 57) { // 1-9. + var num = event.which - 49; + if (current_games && current_games.length >= num) { + switch_backend(current_games[num]['url'], current_games[num]['hashurl']); + } + } else if (event.which == 78) { // N. + next_game(); } }); window.addEventListener('hashchange', possibly_switch_game_from_hash, false); -- 2.39.2