]> git.sesse.net Git - remoteglot/blobdiff - www/js/remoteglot.js
Remove the option to sort by name; fewer options is good, and few people probably...
[remoteglot] / www / js / remoteglot.js
index 0748dcecef86a71cf14db1b15996a57eea853870..d614c7ea1016a44f8b92afa841eb42c09b5a81b0 100644 (file)
@@ -7,7 +7,7 @@
  * @type {Number}
  * @const
  * @private */
-var SCRIPT_VERSION = 2016091401;
+var SCRIPT_VERSION = 2016113002;
 
 /**
  * The current backend URL.
@@ -94,9 +94,6 @@ var toplay = 'W';
 /** @type {number} @private */
 var ims = 0;
 
-/** @type {boolean} @private */
-var sort_refutation_lines_by_score = true;
-
 /** @type {boolean} @private */
 var truncate_display_history = true;
 
@@ -569,15 +566,6 @@ var create_arrow = function(from_square, to_square, fg_color, line_width, arrow_
        arrows.push(arrow);
 }
 
-// Note: invert is ignored.
-var compare_by_name = function(refutation_lines, invert, a, b) {
-       var ska = refutation_lines[a]['move'];
-       var skb = refutation_lines[b]['move'];
-       if (ska < skb) return -1;
-       if (ska > skb) return 1;
-       return 0;
-};
-
 var compare_by_score = function(refutation_lines, invert, a, b) {
        var sa = compute_score_sort_key(refutation_lines[b]['score'], refutation_lines[b]['depth'], invert);
        var sb = compute_score_sort_key(refutation_lines[a]['score'], refutation_lines[a]['depth'], invert);
@@ -801,8 +789,7 @@ var update_refutation_lines = function() {
        if (current_display_line && current_display_move % 2 == 0) {
                invert = !invert;
        }
-       var compare = sort_refutation_lines_by_score ? compare_by_score : compare_by_name;
-       moves = moves.sort(function(a, b) { return compare(refutation_lines, invert, a, b) });
+       moves = moves.sort(function(a, b) { return compare_by_score(refutation_lines, invert, a, b) });
        for (var i = 0; i < moves.length; ++i) {
                var line = refutation_lines[moves[i]];
 
@@ -863,15 +850,6 @@ var update_refutation_lines = function() {
                tbl.append(tr);
        }
 
-       // Make one of the links clickable and the other nonclickable.
-       if (sort_refutation_lines_by_score) {
-               $("#sortbyscore0").html("<a href=\"javascript:resort_refutation_lines(false)\">Move</a>");
-               $("#sortbyscore1").html("<strong>Score</strong>");
-       } else {
-               $("#sortbyscore0").html("<strong>Move</strong>");
-               $("#sortbyscore1").html("<a href=\"javascript:resort_refutation_lines(true)\">Score</a>");
-       }
-
        // Update the move highlight, as we've rewritten all the HTML.
        update_move_highlight();
 }
@@ -1060,10 +1038,20 @@ var update_board = function() {
                        headline += ' after ' + last_move;
                }
        } else if (data['position']['last_move'] !== 'none') {
+               // Find the previous move.
+               var previous_move_num, previous_toplay;
+               if (data['position']['toplay'] == 'B') {
+                       previous_move_num = data['position']['move_num'];
+                       previous_toplay = 'W';
+               } else {
+                       previous_move_num = data['position']['move_num'] - 1;
+                       previous_toplay = 'B';
+               }
+
                last_move = format_move_with_number(
                        data['position']['last_move'],
-                       data['position']['move_num'],
-                       data['position']['toplay'] == 'B');
+                       previous_move_num,
+                       previous_toplay == 'W');
                headline += ' after ' + last_move;
        } else {
                last_move = null;
@@ -1198,7 +1186,9 @@ var update_board = function() {
                for (var i = 1; i < alt_moves.length && i < 3; ++i) {
                        hiddenboard = new Chess(base_fen);
                        var move = hiddenboard.move(alt_moves[i]);
-                       create_arrow(move.from, move.to, '#f66', 1, 10);
+                       if (move !== null) {
+                               create_arrow(move.from, move.to, '#f66', 1, 10);
+                       }
                }
        }
 
@@ -1305,6 +1295,13 @@ var update_sparkline = function(data) {
                                        return format_tooltip(data, fields[0].offset + first_move_num - 1);
                                }
                        });
+                       $('#scorespark').bind('sparklineClick', function(event) {
+                               var sparkline = event.sparklines[0];
+                               var region = sparkline.getCurrentRegionFields();
+                               if (region[0].offset !== undefined) {
+                                       show_line(0, first_move_num + region[0].offset - 1);
+                               }
+                       });
                } else {
                        $("#scorespark").text("");
                }
@@ -1399,8 +1396,9 @@ var update_clock = function() {
                return;
        }
 
-       // If either player has ten minutes or less left, add the second counters.
-       var show_seconds = (white_clock_ms < 60 * 10 * 1000 || black_clock_ms < 60 * 10 * 1000);
+       // If either player has twenty minutes or less left, add the second counters.
+       // This matches what DGT clocks do.
+       var show_seconds = (white_clock_ms < 60 * 20 * 1000 || black_clock_ms < 60 * 20 * 1000);
 
        if (color) {
                // See when the clock will change next, and update right after that.
@@ -1520,18 +1518,6 @@ var format_tooltip = function(data, halfmove_num) {
        }
 }
 
-/**
- * @param {boolean} sort_by_score
- */
-var resort_refutation_lines = function(sort_by_score) {
-       sort_refutation_lines_by_score = sort_by_score;
-       if (supports_html5_storage()) {
-               localStorage['sort_refutation_lines_by_score'] = sort_by_score ? 1 : 0;
-       }
-       update_refutation_lines();
-}
-window['resort_refutation_lines'] = resort_refutation_lines;
-
 /**
  * @param {boolean} truncate_history
  */
@@ -2181,11 +2167,6 @@ var init = function() {
        } else {
                set_sound(false);
        }
-       if (supports_html5_storage() && localStorage['sort_refutation_lines_by_score']) {
-               sort_refutation_lines_by_score = parseInt(localStorage['sort_refutation_lines_by_score']);
-       } else {
-               sort_refutation_lines_by_score = true;
-       }
 
        // Create board.
        board = new window.ChessBoard('board', {