remember active analysis tab, autoswitch to computer analysis

This commit is contained in:
Thibault Duplessis 2014-12-26 19:14:23 +01:00
parent fda34c04dd
commit fb8832bb2b
2 changed files with 23 additions and 11 deletions

View file

@ -141,15 +141,15 @@ openGraph = povOpenGraph(pov)) {
</div>
<div class="analysis_menu">
@if(game.analysable) {
<a data-panel="computer_analysis">@trans.computerAnalysis()</a>
<a data-panel="computer_analysis" class="computer_analysis">@trans.computerAnalysis()</a>
}
@if(!game.isPgnImport) {
<a data-panel="move_times">@trans.moveTimes()</a>
<a data-panel="move_times" class="move_times">@trans.moveTimes()</a>
@if(cross.isDefined) {
<a data-panel="crosstable">Crosstable</a>
<a data-panel="crosstable" class="crosstable">Crosstable</a>
}
}
<a data-panel="fen_pgn">FEN &amp; PGN</a>
<a data-panel="fen_pgn" class="fen_pgn">FEN &amp; PGN</a>
</div>
@analysis.filter(_.old && ctx.isAuth).map { a =>
<form class="better_analysis" action="@routes.Analyse.betterAnalysis(gameId, color.name)" method="post">

View file

@ -2106,7 +2106,7 @@ var storage = {
});
};
var lastFen, lastPath;
lichess.analyse.onChange = function(fen, path) {
cfg.onChange = function(fen, path) {
lastFen = fen = fen || lastFen;
lastPath = path = path || lastPath;
var chart, point;
@ -2154,21 +2154,33 @@ var storage = {
}
};
data.path = window.location.hash ? location.hash.replace(/#/, '') : '';
analyse = LichessAnalyse(element.querySelector('.analyse'), cfg.data, cfg.routes, cfg.i18n, lichess.analyse.onChange);
lichess.analyse.jump = analyse.jump;
analyse = LichessAnalyse(element.querySelector('.analyse'), cfg.data, cfg.routes, cfg.i18n, cfg.onChange);
cfg.jump = analyse.jump;
$('.underboard_content', element).appendTo($('.underboard .center', element)).show();
$('.advice_summary', element).appendTo($('.underboard .right', element)).show();
$panels = $('div.analysis_panels > div');
$('div.analysis_menu').on('click', 'a', function() {
var panel = $(this).data('panel');
$(this).siblings('.active').removeClass('active').end().addClass('active');
var $menu = $('div.analysis_menu');
var storageKey = 'lichess.analysis.panel';
var setPanel = function(panel) {
$menu.children('.active').removeClass('active').end().find('.' + panel).addClass('active');
$panels.removeClass('active').filter('.' + panel).addClass('active');
if (panel == 'move_times') try {
$.renderMoveTimesChart();
} catch (e) {}
}).find('a:first').click();
};
$menu.on('click', 'a', function() {
var panel = $(this).data('panel');
storage.set(storageKey, panel);
setPanel(panel);
});
if (cfg.data.analysis) setPanel('computer_analysis');
else {
var stored = storage.get(storageKey);
if (stored && $menu.children('.' + stored).length) setPanel(stored);
else $menu.children('.crosstable').click();
}
$panels.find('form.future_game_analysis').submit(function() {
if ($(this).hasClass('must_login')) {