Use const wherever possible in js/
[plack-app-gruntmaster.git] / js / 90-tracker.js
index 0db54590532bd215b1437926e58850bd3fdce21b..b7f5e57bacf36f6ff56a03e7fa5220c069daf286 100644 (file)
@@ -1,30 +1,25 @@
-var TICK  = '<span class="tick tracker-mark">✔</span>';
-var XMARK = '<span class="x tracker-mark">✘</span>';
+const TICK  = '<span class="tick tracker-mark">✔</span>';
+const XMARK = '<span class="x tracker-mark">✘</span>';
 
 function clean_tracker(){
-       $('.tracker-mark').each(function(e){
-               e.parentNode.removeChild(e);
-       });
-       $('.tracker-info').each(function(e){
+       $('.tracker-mark').each(e => e.parentNode.removeChild(e));
+       $('.tracker-info').each(e => {
                e.classList.remove('tracker-info');
                e.classList.remove('info');
        });
 }
 
-var tracker;
+let tracker;
 
 function update_tracker(){
-       var data = localStorage.getItem('tracker_data');
-       var user = localStorage.getItem('tracker_username');
-       if(!data)
+       if(!localStorage.getItem('tracker_data'))
                return;
-       data = JSON.parse(data);
-       var solved = {};
-       var attempted = {};
-       var solvednr = 0;
-       var attemptednr = 0;
-       data.problems.forEach(function(e){
-               if(e.solved){
+       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;
                        solvednr++;
                } else {
@@ -33,10 +28,7 @@ function update_tracker(){
                }
        });
 
-       var contests = {};
-       data.contests.forEach(function(e){
-               contests[e.contest] = 1;
-       });
+       data.contests.forEach(e => contests[e.contest] = 1);
 
        clean_tracker();
        $('#tracker_userlink')[0].innerHTML = data.name;
@@ -46,8 +38,8 @@ function update_tracker(){
        $('#tracker_log')[0].setAttribute('href', '/log/?owner=' + user);
 
        if(location.pathname == '/pb/')
-               $('table .name a').each(function(el) {
-                       var id = el.getAttribute('href').split('?', 2)[0];
+               $('table .name a').each(el => {
+                       const id = el.getAttribute('href').split('?', 2)[0];
                        if(solved[id])
                                el.insertAdjacentHTML('beforebegin', TICK);
                        else if(attempted[id])
@@ -55,23 +47,23 @@ function update_tracker(){
                });
 
        if(location.pathname == '/ct/')
-               $('table .name a').each(function(el) {
-                       var id = el.getAttribute('href').substr(4);
+               $('table .name a').each(el => {
+                       const id = el.getAttribute('href').substr(4);
                        if(contests[id])
                                el.insertAdjacentHTML('beforebegin', TICK);
                });
 
        if(location.pathname == '/log/')
-               $('table tbody tr').each(function(el) {
-                       var owner = el.querySelector('.owner a');
+               $('table tbody tr').each(el => {
+                       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;
                });
 
        if(location.pathname.match(/^\/st\//) || location.pathname == '/us/')
-               $('table tbody tr').each(function(el) {
+               $('table tbody tr').each(el => {
                        if(el.querySelector('.user a').getAttribute('href') == '/us/' + user){
                                el.classList.add('info');
                                el.classList.add('tracker-info');
@@ -85,17 +77,17 @@ function start_tracking(user){
        $('#tracker_userlink')[0].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 = function () {
-               localStorage.setItem('tracker_data', this.responseText);
+       xhr.onload = () => {
+               localStorage.setItem('tracker_data', xhr.responseText);
                localStorage.setItem('tracker_lastfetch', Date.now());
                update_tracker();
        };
@@ -111,15 +103,12 @@ function stop_tracking(){
 }
 
 $(function(){
-       tracker = document.createElement('div');
-       tracker.id = 'tracker';
-       tracker.className = 'hidden';
-       tracker.innerHTML = 'Tracking <a id="tracker_userlink"></a>.<br><a id="tracker_stop" role="button">Stop tracking</a><br><a id="tracker_log">Job log</a><dl class="dl-horizontal"><dt>Solved</dt>    <dd id="tracker_solved">?</dd><dt>Attempted</dt> <dd id="tracker_attempted">?</dd><dt>Contests</dt>  <dd id="tracker_contests">?</dd></dl>';
-       var sidebar = $('#sidebar')[0];
+       tracker = m('<div id="tracker" class="hidden">Tracking <a id="tracker_userlink"></a>.<br><a id="tracker_stop" role="button">Stop tracking</a><br><a id="tracker_log">Job log</a><dl class="dl-horizontal"><dt>Solved</dt>    <dd id="tracker_solved">?</dd><dt>Attempted</dt> <dd id="tracker_attempted">?</dd><dt>Contests</dt>  <dd id="tracker_contests">?</dd></dl></div>');
+       const sidebar = $('#sidebar')[0];
        sidebar.insertBefore(tracker, sidebar.firstChild);
        $('#tracker_stop').on('click', stop_tracking);
        $('#track_user').on('click', function() { stop_tracking(); start_tracking(this.dataset.user) });
-       $('#submitform').on('submit', function() { localStorage.removeItem('tracker_lastfetch') });
+       $('#submitform').on('submit', () => localStorage.removeItem('tracker_lastfetch'));
 
        if(localStorage.getItem('tracker_username'))
                start_tracking(localStorage.getItem('tracker_username'));
This page took 0.013582 seconds and 4 git commands to generate.