X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=www%2Fjs%2Fremoteglot.js;h=f6b4c43c7d7409a23385ee39c5273d7efc9d45c5;hb=73a78c97272fcd068f61469f868068cc94c723b4;hp=671c3d08e7e967bdade4ccddf975d6fe7787c430;hpb=660cb086140cb9e77100b39f4fe14b4d3bf94686;p=remoteglot diff --git a/www/js/remoteglot.js b/www/js/remoteglot.js index 671c3d0..f6b4c43 100644 --- a/www/js/remoteglot.js +++ b/www/js/remoteglot.js @@ -1,3 +1,5 @@ +(function() { + var board = []; var arrows = []; var arrow_targets = []; @@ -5,14 +7,19 @@ var occupied_by_arrows = []; var ims = 0; var highlight_from = undefined; var highlight_to = undefined; +var unique = Math.random(); -var request_update = function(board, first) { +var request_update = function(board) { $.ajax({ - //url: "http://analysis.sesse.net/analysis.pl?first=" + first - url: "http://analysis.sesse.net:5000/analysis.pl?ims=" + ims + url: "http://analysis.sesse.net/analysis.pl?ims=" + ims + "&unique=" + unique + //url: "http://analysis.sesse.net:5000/analysis.pl?ims=" + ims + "&unique=" + unique }).done(function(data, textstatus, xhr) { ims = xhr.getResponseHeader('X-Remoteglot-Last-Modified'); - update_board(board, data); + var num_viewers = xhr.getResponseHeader('X-Remoteglot-Num-Viewers'); + update_board(board, data, num_viewers); + }).fail(function() { + // Wait ten seconds, then try again. + setTimeout(function() { request_update(board); }, 10000); }); } @@ -277,7 +284,7 @@ var update_highlight = function() { } } -var update_board = function(board, data) { +var update_board = function(board, data, num_viewers) { // The headline. var headline = 'Analysis'; if (data.position.last_move !== 'none') { @@ -290,6 +297,14 @@ var update_board = function(board, data) { $("#headline").text(headline); + if (num_viewers === null) { + $("#numviewers").text(""); + } else if (num_viewers == 1) { + $("#numviewers").text("You are the only current viewer"); + } else { + $("#numviewers").text(num_viewers + " current viewers"); + } + // The score. if (data.score !== null) { $("#score").text(data.score); @@ -418,14 +433,14 @@ var update_board = function(board, data) { } // Next update. - setTimeout(function() { request_update(board, 0); }, 100); + setTimeout(function() { request_update(board); }, 100); } var init = function() { // Create board. board = new ChessBoard('board', 'start'); - request_update(board, 1); + request_update(board); $(window).resize(function() { board.resize(); update_highlight(); @@ -433,3 +448,5 @@ var init = function() { }); }; $(document).ready(init); + +})();