X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=www%2Fjs%2Fremoteglot.js;h=d6a08a875b8642332f76f6bf60222797eec36f6e;hb=0300e89e239df1e8385eb3294c9853381a71b519;hp=4ff9d6429756fb325dd93c194392b6dc6bf46f99;hpb=3a8a3682f658b1fd5f1ae8420230a356f57fc0ad;p=remoteglot diff --git a/www/js/remoteglot.js b/www/js/remoteglot.js index 4ff9d64..d6a08a8 100644 --- a/www/js/remoteglot.js +++ b/www/js/remoteglot.js @@ -7,7 +7,7 @@ * @type {Number} * @const * @private */ -var SCRIPT_VERSION = 2016113007; +var SCRIPT_VERSION = 2016113008; /** * The current backend URL. @@ -294,11 +294,13 @@ var request_update = function() { update_num_viewers(num_viewers); } else { console.log("Received invalid update, waiting five seconds and trying again."); - location.reload(true); + setTimeout(function() { location.reload(true); }, 5000); } // Next update. - current_analysis_request_timer = setTimeout(function() { request_update(); }, timeout); + if (!backend_url.match(/history/)) { + current_analysis_request_timer = setTimeout(function() { request_update(); }, timeout); + } }).fail(function(jqXHR, textStatus, errorThrown) { if (textStatus === "abort") { // Aborted because we are switching backends. Abandon and don't retry, @@ -778,6 +780,10 @@ var update_refutation_lines = function() { var tbl = $("#refutationlines"); tbl.empty(); + if (display_lines.length < 2) { + return; + } + // Find out where the lines start from. var base_line = []; var base_scores = display_lines[1].scores; @@ -794,7 +800,7 @@ var update_refutation_lines = function() { } var invert = (toplay === 'B'); - if (current_display_line && current_display_move % 2 == 0) { + if (current_display_line && current_display_move % 2 == 0 && !current_display_line_is_history) { invert = !invert; } moves = moves.sort(function(a, b) { return compare_by_score(refutation_lines, invert, a, b) }); @@ -938,6 +944,18 @@ var update_game_list = function(games) { * and switch to it if we're not already displaying it. */ var possibly_switch_game_from_hash = function() { + var history_match = window.location.hash.match(/^#history=([a-zA-Z0-9_-]+)/); + if (history_match !== null) { + var game_id = history_match[1]; + var fake_game = { + url: '/history/' + game_id + '.json', + hashurl: '', + id: 'history=' + game_id + }; + switch_backend(fake_game); + return; + } + if (current_games === null) { return; } @@ -1246,7 +1264,7 @@ var update_board = function() { if (!data['refutation_lines'] || !data['refutation_lines'][nonstupid_moves[i]] || !data['refutation_lines'][nonstupid_moves[i]]['pv'] || - data['refutation_lines'][nonstupid_moves[i]]['pv'].length < 1) { + data['refutation_lines'][nonstupid_moves[i]]['pv'].length < 2) { // Incomplete PV, abort. response = undefined; break; @@ -1321,6 +1339,7 @@ var update_sparkline = function(data) { } // FIXME: at some widths, calling sparkline() seems to push // #scorecontainer under the board. + $('#scorespark').unbind('sparklineClick'); $("#scorespark").sparkline(scores, { type: 'bar', zeroColor: 'gray', @@ -1332,6 +1351,7 @@ var update_sparkline = function(data) { return format_tooltip(data, fields[0].offset + first_move_num - 1); } }); + $('#scorespark').unbind('sparklineClick'); $('#scorespark').bind('sparklineClick', function(event) { var sparkline = event.sparklines[0]; var region = sparkline.getCurrentRegionFields(); @@ -2241,6 +2261,7 @@ var init = function() { } }); window.addEventListener('hashchange', possibly_switch_game_from_hash, false); + possibly_switch_game_from_hash(); }; $(document).ready(init);