Use const wherever possible in js/
authorMarius Gavrilescu <marius@ieval.ro>
Mon, 4 May 2015 10:41:47 +0000 (13:41 +0300)
committerMarius Gavrilescu <marius@ieval.ro>
Mon, 4 May 2015 10:41:47 +0000 (13:41 +0300)
js/00-strict.js
js/05-ki.js
js/05-makedom.js
js/80-sidebar.js
js/90-divine-format.js
js/90-form.js
js/90-nav.js
js/90-themes.js
js/90-timers.js
js/90-tracker.js
js/95-login.js

index e08ecdb91b143879d05fc6cf5abf98990e11c246..dccfeb1181890c96c25605f3a29fe5aef50a19a4 100644 (file)
@@ -1,2 +1,2 @@
 'use strict';
 'use strict';
-var $;
+let $;
index 59104b46c833d194b599d8550bc93ad08986110f..c2960a0170baf41117b248651b64d5bfd377e5a7 100644 (file)
@@ -3,7 +3,7 @@
  * Copyright (c) 2014 Denis Ciccale (@tdecs)
  * Released under MIT license
  */
  * Copyright (c) 2014 Denis Ciccale (@tdecs)
  * Released under MIT license
  */
-!function (b, c, d, e) {
+(function (b, c, d, e) {
 
   /*
    * init function (internal use)
 
   /*
    * init function (internal use)
@@ -68,4 +68,4 @@
     // representation instead of an object
     splice: c.splice
   }
     // representation instead of an object
     splice: c.splice
   }
-}(document, [], 'prototype');
+})(document, [], 'prototype');
index 68026a1f00d0b532d80448418625e050f93634bc..389fe4cd893fe1c0405b70ef0706e31af6f597cc 100644 (file)
@@ -1,5 +1,5 @@
 function m(html) {
 function m(html) {
-       var div = document.createElement("div");
+       const div = document.createElement("div");
        div.innerHTML = html;
        return div.firstChild;
 }
        div.innerHTML = html;
        return div.firstChild;
 }
index 505dc0f1992f781dbd260f3d24b7bc173091c886..2f6ca8ac734a7e107c2209cbd12fa891826a3b0c 100644 (file)
@@ -1,6 +1,6 @@
 $(function() {
        if(!document.getElementById('sidebar')) {
 $(function() {
        if(!document.getElementById('sidebar')) {
-        let content = $('main')[0];
+        const content = $('main')[0];
                content.innerHTML = '<div class="col-md-9">' + content.innerHTML + '</div><aside id="sidebar" class="col-md-3"></aside>';
                content.classList.add('row');
     }
                content.innerHTML = '<div class="col-md-9">' + content.innerHTML + '</div><aside id="sidebar" class="col-md-3"></aside>';
                content.classList.add('row');
     }
index ab5a5f29fae79797592f7aae43fcef65d9e96e95..da4885695889324bcd9a0712920901b7b5385cee 100644 (file)
@@ -1,4 +1,4 @@
-var ext_table = {
+const ext_table = {
        'c'   : 'C',
 
        'cc'  : 'CPP',
        'c'   : 'C',
 
        'cc'  : 'CPP',
@@ -30,8 +30,8 @@ var ext_table = {
 }
 
 function divine_format() {
 }
 
 function divine_format() {
-       var filename = $('#prog')[0].value;
-       var ext = /\.([^.]*)$/.exec(filename)[1];
+       const filename = $('#prog')[0].value;
+       const ext = /\.([^.]*)$/.exec(filename)[1];
 
        if(ext_table[ext])
                $('#prog_format')[0].value = ext_table[ext];
 
        if(ext_table[ext])
                $('#prog_format')[0].value = ext_table[ext];
index 0b7677642b5e484469da97efef0f4c29d57b9fa3..aa5e9eff1428750ba2ec818136dd424f60f7cfd8 100644 (file)
@@ -1,9 +1,9 @@
 $(function(){
 $(function(){
-       let result = $('#result')[0];
+       const result = $('#result')[0];
        $('.jsform > input[type="submit"]').on('click', e => {
        $('.jsform > input[type="submit"]').on('click', e => {
-               let form_data = new FormData(this.parentElement);
-               let form = this.parentNode;
-               let xhr = new XMLHttpRequest();
+               const form_data = new FormData(this.parentElement);
+               const form = this.parentNode;
+               const xhr = new XMLHttpRequest();
                xhr.open(form.getAttribute('method'), form.getAttribute('action'));
                xhr.onload = () => result.innerHTML = this.responseText;
                xhr.onerror = () => result.innerHTML = 'Error!';
                xhr.open(form.getAttribute('method'), form.getAttribute('action'));
                xhr.onload = () => result.innerHTML = this.responseText;
                xhr.onerror = () => result.innerHTML = 'Error!';
index 03dcb8257931dff52d9775d8aea71e2bd23a8db5..b4127d6390eb55977b1a5f4b7f0f2e5d060d31d9 100644 (file)
@@ -9,8 +9,8 @@ const NAVS = {
 };
 
 $(function(){
 };
 
 $(function(){
-       let path = location.pathname;
-       for (let nav in NAVS)
+       const path = location.pathname;
+       for (const nav in NAVS)
                if(path.match(NAVS[nav]))
                        $('#nav-' + nav)[0].classList.add('active');
 });
                if(path.match(NAVS[nav]))
                        $('#nav-' + nav)[0].classList.add('active');
 });
index aa2cdc903ca6ffd9a576a90f18fe937850903676..a9d9b5185ebf5f1bd905dffc0767b46841b7bf4e 100644 (file)
@@ -9,18 +9,15 @@ function set_style(name, trans){
 }
 
 $(function() {
 }
 
 $(function() {
-       var theme_ul = '<ul class="list-inline" id="themes">' +
+       const theme_ul = '<ul class="list-inline" id="themes">' +
                '<li><a role="button" data-theme="cyborg">Black</a>' +
                '<li><a role="button" data-theme="slate">Grey</a>' +
                '<li><a role="button" data-theme="readable">White</a></ul>';
                '<li><a role="button" data-theme="cyborg">Black</a>' +
                '<li><a role="button" data-theme="slate">Grey</a>' +
                '<li><a role="button" data-theme="readable">White</a></ul>';
-       var sidebar = $('#sidebar')[0];
+       const sidebar = $('#sidebar')[0];
        sidebar.insertBefore(m(theme_ul), sidebar.firstChild);
        $('#themes a').on('click', e => set_style(e.target.dataset.theme, true));
 });
 
        sidebar.insertBefore(m(theme_ul), sidebar.firstChild);
        $('#themes a').on('click', e => set_style(e.target.dataset.theme, true));
 });
 
-let theme = localStorage.getItem("theme");
-if(theme) {
-       if(theme == "cerulean" || theme == "cosmo")
-               theme = "readable";
-       set_style(theme, false);
-}
+const theme = localStorage.getItem("theme");
+if(theme)
+       set_style(theme == "cerulean" || theme == "cosmo" ? "readable" : theme, false);
index c9b095039873c84b3f886eaaac06c2b48ee510d7..8833a114289a7ee6ef3765f36101f1d766592788 100644 (file)
@@ -1,25 +1,22 @@
 let offset = 0;
 
 function update_timer(timer){
 let offset = 0;
 
 function update_timer(timer){
-       var start = parseInt(timer.dataset.start);
-       var stop  = parseInt(timer.dataset.stop);
-       var value = parseInt(timer.dataset.value);
-       var now   = Math.floor(Date.now() / 1000) + offset;
+       const start = parseInt(timer.dataset.start);
+       const stop  = parseInt(timer.dataset.stop);
+       const value = parseInt(timer.dataset.value);
+       const now   = Math.floor(Date.now() / 1000) + offset;
 
 
-       var left = stop - now;
-       var total = stop - start;
-       if(left < 0)
-               left = 0;
+       const left = Math.max(stop - now, 0);
+       const total = stop - start;
 
 
-       if(value) {
-               value = Math.max(value * 3 / 10, value * left / total);
-               timer.innerHTML = Math.floor(value);
-       } else {
-               var hours = Math.floor(left / 60 / 60);
+       if(value)
+               timer.innerHTML = Math.floor(Math.max(value * 3 / 10, value * left / total));
+       else {
+               let hours = Math.floor(left / 60 / 60);
                hours = hours < 10 ? '0' + hours : hours;
                hours = hours < 10 ? '0' + hours : hours;
-               var minutes = Math.floor(left / 60) % 60;
+               let minutes = Math.floor(left / 60) % 60;
                minutes = minutes < 10 ? '0' + minutes : minutes;
                minutes = minutes < 10 ? '0' + minutes : minutes;
-               var seconds = left % 60;
+               let seconds = left % 60;
                seconds = seconds < 10 ? '0' + seconds : seconds;
                timer.innerHTML = hours + ':' + minutes + ':' + seconds;
        }
                seconds = seconds < 10 ? '0' + seconds : seconds;
                timer.innerHTML = hours + ':' + minutes + ':' + seconds;
        }
@@ -31,10 +28,10 @@ $(() => {
                setInterval(() => update_timer(item), 1000);
        });
        if($('.timer').length > 0) {
                setInterval(() => update_timer(item), 1000);
        });
        if($('.timer').length > 0) {
-               let xhr = new XMLHttpRequest();
+               const xhr = new XMLHttpRequest();
                xhr.open('HEAD', '/');
                xhr.onload = () => {
                xhr.open('HEAD', '/');
                xhr.onload = () => {
-                       let srvtime = Date.parse(xhr.getResponseHeader('Date'));
+                       const srvtime = Date.parse(xhr.getResponseHeader('Date'));
                        offset = Math.ceil((srvtime - Date.now()) / 1000);
                        console.log("Offset from server: " + offset);
                };
                        offset = Math.ceil((srvtime - Date.now()) / 1000);
                        console.log("Offset from server: " + offset);
                };
index cf46aeb5787acf89db7aa9f8270f207817065903..b7f5e57bacf36f6ff56a03e7fa5220c069daf286 100644 (file)
@@ -12,12 +12,12 @@ function clean_tracker(){
 let tracker;
 
 function update_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;
                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;
        data.problems.forEach(e => {
                if(e.solved) {
                        solved[e.problem] = 1;
@@ -39,7 +39,7 @@ function update_tracker(){
 
        if(location.pathname == '/pb/')
                $('table .name a').each(el => {
 
        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])
                        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 => {
 
        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 => {
                        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;
                        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;
                });
 
                        el.getElementsByClassName('id')[0].innerHTML += state;
                });
 
@@ -77,14 +77,14 @@ function start_tracking(user){
        $('#tracker_userlink')[0].innerHTML = user;
        tracker.classList.remove('hidden');
        update_tracker();
        $('#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(){
        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', xhr.responseText);
        xhr.open('GET', '/us/' + user + '?format=json');
        xhr.onload = () => {
                localStorage.setItem('tracker_data', xhr.responseText);
@@ -104,7 +104,7 @@ function stop_tracking(){
 
 $(function(){
        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>');
 
 $(function(){
        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>');
-       var sidebar = $('#sidebar')[0];
+       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) });
        sidebar.insertBefore(tracker, sidebar.firstChild);
        $('#tracker_stop').on('click', stop_tracking);
        $('#track_user').on('click', function() { stop_tracking(); start_tracking(this.dataset.user) });
index d08150ae1983d2b396cbf269339f5f729538997e..aad77d370682a1ad5b47eef8a9ec7f80f59197d0 100644 (file)
@@ -1,15 +1,15 @@
 $(function(){
 $(function(){
-       var sidebar = $('#sidebar')[0];
-       var login = document.createElement('div');
+       const sidebar = $('#sidebar')[0];
+       const login = document.createElement('div');
        login.innerHTML = '<a role="button" id="login" class="show">Log in</a>';
        sidebar.insertBefore(login, sidebar.firstChild);
        $('#login').on('click', e => {
        login.innerHTML = '<a role="button" id="login" class="show">Log in</a>';
        sidebar.insertBefore(login, sidebar.firstChild);
        $('#login').on('click', e => {
-               var xhr = new XMLHttpRequest();
+               const xhr = new XMLHttpRequest();
                xhr.open('GET', '/login');
                xhr.onload = () => {
                        if(xhr.status != 200)
                                return;
                xhr.open('GET', '/login');
                xhr.onload = () => {
                        if(xhr.status != 200)
                                return;
-                       var username = xhr.responseText;
+                       const username = xhr.responseText;
                        sessionStorage.setItem('login_username', username);
                        start_tracking(username);
                        login.innerHTML = 'Probably logged in as ' + username;
                        sessionStorage.setItem('login_username', username);
                        start_tracking(username);
                        login.innerHTML = 'Probably logged in as ' + username;
@@ -18,7 +18,7 @@ $(function(){
                return false;
        });
 
                return false;
        });
 
-       var username = sessionStorage.getItem('login_username');
+       const username = sessionStorage.getItem('login_username');
        if(username)
                login.innerHTML = 'Probably logged in as ' + username;
 });
        if(username)
                login.innerHTML = 'Probably logged in as ' + username;
 });
This page took 0.022132 seconds and 4 git commands to generate.