$('#tracker_solved').html(solvednr);
$('#tracker_attempted').html(attemptednr);
$('#tracker_contests').html(data.contests.length);
+ $('#tracker_log').attr('href', '/log/?owner=' + user);
if(location.pathname == '/pb/')
$('table').find('.name').find('a').each(function() {
var id = $(this).attr('href').split('?', 2)[0];
if(solved[id])
- $(this).parent().append(tick());
+ $(this).parent().prepend(tick());
else if(attempted[id])
- $(this).parent().append(xmark());
+ $(this).parent().prepend(xmark());
});
if(location.pathname == '/ct/')
$('table').find('.name').find('a').each(function() {
var id = $(this).attr('href').substr(4);
if(contests[id])
- $(this).parent().append(tick());
+ $(this).parent().prepend(tick());
});
if(location.pathname == '/log/')
localStorage.setItem('tracker_username', user);
$('#tracker_userlink').attr('href', '/us/' + user).html(user);
$('#tracker_tracking').removeClass('hidden');
- $('#tracker_form').addClass('hidden');
update_tracker();
+ var lastfetch = localStorage.getItem('tracker_lastfetch');
+ if(Date.now() - lastfetch > 60 * 10 * 1000)
+ refresh_tracker();
+ }
+
+ function refresh_tracker(){
+ var user = localStorage.getItem('tracker_username');
var xhr = new XMLHttpRequest();
- xhr.open('GET', '/us/' + user);
- xhr.setRequestHeader('Accept', 'application/json');
+ xhr.open('GET', '/us/' + user + '?format=json');
xhr.onload = function () {
localStorage.setItem('tracker_data', this.responseText);
+ localStorage.setItem('tracker_lastfetch', Date.now());
update_tracker();
};
xhr.send();
}
+ window.refresh_tracker = refresh_tracker;
+ window.start_tracking = start_tracking;
function stop_tracking(){
clean_tracker();
localStorage.removeItem('tracker_username');
localStorage.removeItem('tracker_data');
+ localStorage.removeItem('tracker_lastfetch');
$('#tracker_tracking').addClass('hidden');
- $('#tracker_form').removeClass('hidden');
}
$( document ).ready(function(){
- $('#tracker').detach().prependTo($('#sidebar')).removeClass('hidden');
- $('#tracker_button').on('click', function() { start_tracking($('#tracker_username').val()) });
+ $('#tracker').detach().prependTo($('#sidebar'));
$('#tracker_stop').on('click', stop_tracking);
- $('#track_user').removeClass('hidden');
$('#track_user').on('click', function() { stop_tracking(); start_tracking($(this).data('user')) });
+ $('#submitform').on('submit', function() { localStorage.removeItem('tracker_lastfetch') });
if(localStorage.getItem('tracker_username'))
start_tracking(localStorage.getItem('tracker_username'));