X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=js%2F90-tracker.js;h=1fa4905ed0887ba2f36221591fb3fe59b6b3bdb2;hb=bdaa8919598cbbd8753fd6795b34b594b1b30805;hp=a475ee850bd5ad5fbbd00c5b84c5e30efa6165ec;hpb=f1c090e7ae6e91f4fcaa690466524adb94afdf08;p=plack-app-gruntmaster.git diff --git a/js/90-tracker.js b/js/90-tracker.js index a475ee8..1fa4905 100644 --- a/js/90-tracker.js +++ b/js/90-tracker.js @@ -9,6 +9,8 @@ $('.tracker-info').removeClass('tracker-info info'); } + var tracker; + function update_tracker(){ var data = localStorage.getItem('tracker_data'); var user = localStorage.getItem('tracker_username'); @@ -39,21 +41,22 @@ $('#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/') @@ -73,33 +76,41 @@ function start_tracking(user){ localStorage.setItem('tracker_username', user); $('#tracker_userlink').attr('href', '/us/' + user).html(user); - $('#tracker_tracking').removeClass('hidden'); - $('#tracker_form').addClass('hidden'); + tracker.removeClass('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'); - $('#tracker_tracking').addClass('hidden'); - $('#tracker_form').removeClass('hidden'); + localStorage.removeItem('tracker_lastfetch'); + tracker.addClass('hidden'); } $( document ).ready(function(){ - $('#tracker').detach().prependTo($('#sidebar')).removeClass('hidden'); - $('#tracker_button').on('click', function() { start_tracking($('#tracker_username').val()) }); + tracker = $(''); + tracker.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'));