X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=js%2F90-tracker.js;h=6b73fb34808e332a6ae1bf50656a97f58b4241d9;hb=dee46c5bb42f8fdaa70e70d6bdd4da5072a99ecd;hp=5e1c9a20287359597de90525795203bcbd6f9f40;hpb=8345760abf4953980a85e0d5f9cade421f73d4ff;p=plack-app-gruntmaster.git diff --git a/js/90-tracker.js b/js/90-tracker.js index 5e1c9a2..6b73fb3 100644 --- a/js/90-tracker.js +++ b/js/90-tracker.js @@ -12,12 +12,12 @@ function clean_tracker(){ let tracker; function update_tracker(){ - let data = localStorage.getItem('tracker_data'); - let user = localStorage.getItem('tracker_username'); - if(!data) + if(!localStorage.getItem('tracker_data')) return; - data = JSON.parse(data); - let contests = {}, solved = {}, attempted = {}, solvednr = 0, attemptednr = 0; + const data = JSON.parse(localStorage.getItem('tracker_data')); + const user = localStorage.getItem('tracker_username'); + const contests = {}, solved = {}, attempted = {}; + let solvednr = 0, attemptednr = 0; data.problems.forEach(e => { if(e.solved) { solved[e.problem] = 1; @@ -31,15 +31,15 @@ function update_tracker(){ data.contests.forEach(e => contests[e.contest] = 1); clean_tracker(); - $('#tracker_userlink')[0].innerHTML = data.name; - $('#tracker_solved')[0].innerHTML = solvednr; - $('#tracker_attempted')[0].innerHTML = attemptednr; - $('#tracker_contests')[0].innerHTML = data.contests.length; - $('#tracker_log')[0].setAttribute('href', '/log/?owner=' + user); + q('#tracker_userlink').innerHTML = data.name; + q('#tracker_solved').innerHTML = solvednr; + q('#tracker_attempted').innerHTML = attemptednr; + q('#tracker_contests').innerHTML = data.contests.length; + q('#tracker_log').setAttribute('href', '/log/?owner=' + user); if(location.pathname == '/pb/') $('table .name a').each(el => { - let id = el.getAttribute('href').split('?', 2)[0]; + const id = el.getAttribute('href').split('?', 2)[0]; if(solved[id]) el.insertAdjacentHTML('beforebegin', TICK); else if(attempted[id]) @@ -48,17 +48,17 @@ function update_tracker(){ if(location.pathname == '/ct/') $('table .name a').each(el => { - let id = el.getAttribute('href').substr(4); + const id = el.getAttribute('href').substr(4); if(contests[id]) el.insertAdjacentHTML('beforebegin', TICK); }); if(location.pathname == '/log/') $('table tbody tr').each(el => { - let owner = el.querySelector('.owner a'); + const owner = el.querySelector('.owner a'); if(!owner || owner.getAttribute('href') != '/us/' + user) return; - var state = el.getElementsByClassName('r0').length ? TICK : XMARK; + const state = el.getElementsByClassName('r0').length ? TICK : XMARK; el.getElementsByClassName('id')[0].innerHTML += state; }); @@ -73,21 +73,21 @@ function update_tracker(){ function start_tracking(user){ localStorage.setItem('tracker_username', user); - $('#tracker_userlink')[0].setAttribute('href', '/us/' + user); - $('#tracker_userlink')[0].innerHTML = user; + q('#tracker_userlink').setAttribute('href', '/us/' + user); + q('#tracker_userlink').innerHTML = user; tracker.classList.remove('hidden'); update_tracker(); - var lastfetch = localStorage.getItem('tracker_lastfetch'); + const 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(); + const user = localStorage.getItem('tracker_username'); + const xhr = new XMLHttpRequest(); xhr.open('GET', '/us/' + user + '?format=json'); xhr.onload = () => { - localStorage.setItem('tracker_data', this.responseText); + localStorage.setItem('tracker_data', xhr.responseText); localStorage.setItem('tracker_lastfetch', Date.now()); update_tracker(); }; @@ -104,7 +104,7 @@ function stop_tracking(){ $(function(){ tracker = m(''); - var sidebar = $('#sidebar')[0]; + const sidebar = q('#sidebar'); sidebar.insertBefore(tracker, sidebar.firstChild); $('#tracker_stop').on('click', stop_tracking); $('#track_user').on('click', function() { stop_tracking(); start_tracking(this.dataset.user) });