]> git.sesse.net Git - ultimatescore/commitdiff
Switch to ES6.
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Mon, 6 Nov 2017 19:51:56 +0000 (20:51 +0100)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sun, 18 Feb 2018 18:16:09 +0000 (19:16 +0100)
carousel.js
quickhelp.js
quickl3.js
roster.js
score.js

index 2336e5545d7a091259150e24a0a49b6f2e73baaa..926579ceb76206f1d1918b668cf92e143c1afbf8 100644 (file)
@@ -1,8 +1,10 @@
+'use strict';
+
 function addheading(carousel, colspan, content)
 {
-       var thead = document.createElement("thead");
-       var tr = document.createElement("tr");
-       var th = document.createElement("th");
+       let thead = document.createElement("thead");
+       let tr = document.createElement("tr");
+       let th = document.createElement("th");
        th.innerHTML = content;
        th.setAttribute("colspan", colspan);
        tr.appendChild(th);
@@ -10,23 +12,23 @@ function addheading(carousel, colspan, content)
        carousel.appendChild(thead);
 };
 function addtd(tr, className, content) {
-       var td = document.createElement("td");
+       let td = document.createElement("td");
        td.appendChild(document.createTextNode(content));
        td.className = className;
        tr.appendChild(td);
 };
 function addth(tr, className, content) {
-       var th = document.createElement("th");
+       let th = document.createElement("th");
        th.appendChild(document.createTextNode(content));
        th.className = className;
        tr.appendChild(th);
 };
 
 function subrank_partitions(games, parts, start_rank, tiebreakers) {
-       var result = [];
-       for (var i = 0; i < parts.length; ++i) {
-               var part = rank(games, parts[i], start_rank, tiebreakers);
-               for (var j = 0; j < part.length; ++j) {
+       let result = [];
+       for (let i = 0; i < parts.length; ++i) {
+               let part = rank(games, parts[i], start_rank, tiebreakers);
+               for (let j = 0; j < part.length; ++j) {
                        result.push(part[j]);
                }
                start_rank += part.length;
@@ -38,9 +40,9 @@ function partition(teams, compare)
 {
        teams.sort(compare);
 
-       var parts = [];
-       var curr_part = [teams[0]];
-       for (var i = 1; i < teams.length; ++i) {
+       let parts = [];
+       let curr_part = [teams[0]];
+       for (let i = 1; i < teams.length; ++i) {
                if (compare(teams[i], curr_part[0]) != 0) {
                        parts.push(curr_part);
                        curr_part = [];
@@ -55,8 +57,8 @@ function partition(teams, compare)
 
 function explain_tiebreaker(parts, rule_name)
 {
-       var result = [];
-       for (var i = 0; i < parts.length; ++i) {
+       let result = [];
+       for (let i = 0; i < parts.length; ++i) {
                result.push(parts[i].map(function(x) { return x.shortname; }).join("/"));
        }
        return result.join(" > ") + " (" + rule_name + ")";
@@ -64,8 +66,8 @@ function explain_tiebreaker(parts, rule_name)
 
 function make_teams_to_idx(teams)
 {
-       var teams_to_idx = [];
-       for (var i = 0; i < teams.length; i++) {
+       let teams_to_idx = [];
+       for (let i = 0; i < teams.length; i++) {
                teams_to_idx[teams[i].name] = i;
        }
        return teams_to_idx;
@@ -74,18 +76,18 @@ function make_teams_to_idx(teams)
 function partition_by_beat(games, teams)
 {
        // Head-to-head score by way of components. First construct the beat matrix.
-       var n = teams.length;
-       var beat = new Array(n);
-       var teams_to_idx = make_teams_to_idx(teams);
-       for (var i = 0; i < n; i++) {
+       let n = teams.length;
+       let beat = new Array(n);
+       let teams_to_idx = make_teams_to_idx(teams);
+       for (let i = 0; i < n; i++) {
                beat[i] = new Array(n);
-               for (var j = 0; j < n; j++) {
+               for (let j = 0; j < n; j++) {
                        beat[i][j] = 0;
                }
        }
-       for (i = 0; i < games.length; ++i) {
-               var idx1 = teams_to_idx[games[i].name1];
-               var idx2 = teams_to_idx[games[i].name2];
+       for (let i = 0; i < games.length; ++i) {
+               let idx1 = teams_to_idx[games[i].name1];
+               let idx2 = teams_to_idx[games[i].name2];
                if (idx1 !== undefined && idx2 !== undefined) {
                        if (games[i].score1 > games[i].score2) {
                                beat[idx1][idx2] = 1;
@@ -96,9 +98,9 @@ function partition_by_beat(games, teams)
                }
        }
        // Floyd-Warshall for transitive closure.
-       for (var k = 0; k < n; ++k) {
-               for (var i = 0; i < n; ++i) {
-                       for (var j = 0; j < n; ++j) {
+       for (let k = 0; k < n; ++k) {
+               for (let i = 0; i < n; ++i) {
+                       for (let j = 0; j < n; ++j) {
                                if (beat[i][k] && beat[k][j]) {
                                        beat[i][j] = 1;
                                }
@@ -107,9 +109,9 @@ function partition_by_beat(games, teams)
        }
 
        // See if we can find any team that is comparable to all others.
-       for (var pivot_idx = 0; pivot_idx < n; pivot_idx++) {
-               var incomparable = false;
-               for (var i = 0; i < n; ++i) {
+       for (let pivot_idx = 0; pivot_idx < n; pivot_idx++) {
+               let incomparable = false;
+               for (let i = 0; i < n; ++i) {
                        if (i != pivot_idx && beat[pivot_idx][i] == 0 && beat[i][pivot_idx] == 0) {
                                incomparable = true;
                                break;
@@ -117,10 +119,10 @@ function partition_by_beat(games, teams)
                }
                if (!incomparable) {
                        // Split the teams into three partitions:
-                       var better_than_pivot = [], equal = [], worse_than_pivot = [];
-                       for (var i = 0; i < n; ++i) {
-                               var we_beat = (beat[pivot_idx][i] == 1);
-                               var they_beat = (beat[i][pivot_idx] == 1);
+                       let better_than_pivot = [], equal = [], worse_than_pivot = [];
+                       for (let i = 0; i < n; ++i) {
+                               let we_beat = (beat[pivot_idx][i] == 1);
+                               let they_beat = (beat[i][pivot_idx] == 1);
                                if ((i == pivot_idx) || (we_beat && they_beat)) {
                                        equal.push(teams[i]);
                                } else if (we_beat && !they_beat) {
@@ -131,7 +133,7 @@ function partition_by_beat(games, teams)
                                        console.log("this shouldn't happen");
                                }
                        } 
-                       var result = [];
+                       let result = [];
                        if (better_than_pivot.length > 0) {
                                result = partition_by_beat(games, better_than_pivot);
                        }
@@ -157,13 +159,13 @@ function rank(games, teams, start_rank, tiebreakers) {
        }
 
        // Rule #0: Partition the teams by score.
-       var score_parts = partition(teams, function(a, b) { return b.pts - a.pts });
+       let score_parts = partition(teams, function(a, b) { return b.pts - a.pts });
        if (score_parts.length > 1) {
                return subrank_partitions(games, score_parts, start_rank, tiebreakers);
        }
 
        // Rule #1: Head-to-head wins.
-       var beat_parts = partition_by_beat(games, teams);
+       let beat_parts = partition_by_beat(games, teams);
        if (beat_parts.length > 1) {
                tiebreakers.push(explain_tiebreaker(beat_parts, 'head-to-head'));
                return subrank_partitions(games, beat_parts, start_rank, tiebreakers);
@@ -172,21 +174,21 @@ function rank(games, teams, start_rank, tiebreakers) {
        // Rule #2: Number of games played (fewer is better).
        // Actually the rule says “fewest losses”, but fewer games is equivalent
        // as long as teams have the same amount of points and ties don't exist.
-       var nplayed_parts = partition(teams, function(a, b) { return a.nplayed - b.nplayed });
+       let nplayed_parts = partition(teams, function(a, b) { return a.nplayed - b.nplayed });
        if (nplayed_parts.length > 1) {
                tiebreakers.push(explain_tiebreaker(nplayed_parts, 'fewer losses'));
                return subrank_partitions(games, nplayed_parts, start_rank, tiebreakers);
        }
 
        // Rule #3: Head-to-head goal difference. 
-       var teams_to_idx = make_teams_to_idx(teams);
-       for (var i = 0; i < teams.length; i++) {
+       let teams_to_idx = make_teams_to_idx(teams);
+       for (let i = 0; i < teams.length; i++) {
                teams[i].h2h_gd = 0;
                teams[i].h2h_goals = 0;
        }
-       for (i = 0; i < games.length; ++i) {
-               var idx1 = teams_to_idx[games[i].name1];
-               var idx2 = teams_to_idx[games[i].name2];
+       for (let i = 0; i < games.length; ++i) {
+               let idx1 = teams_to_idx[games[i].name1];
+               let idx2 = teams_to_idx[games[i].name2];
                if (idx1 !== undefined && idx2 !== undefined &&
                    !isNaN(games[i].score1) && isNaN(games[i].score2)) {
                        teams[idx1].h2h_gd += games[i].score1;
@@ -198,36 +200,36 @@ function rank(games, teams, start_rank, tiebreakers) {
                        teams[idx2].h2h_goals += games[i].score2;
                }
        }
-       var h2h_gd_parts = partition(teams, function(a, b) { return b.h2h_gd - a.h2h_gd });
+       let h2h_gd_parts = partition(teams, function(a, b) { return b.h2h_gd - a.h2h_gd });
        if (h2h_gd_parts.length > 1) {
                tiebreakers.push(explain_tiebreaker(h2h_gd_parts, 'head-to-head goal difference'));
                return subrank_partitions(games, h2h_gd_parts, start_rank, tiebreakers);
        }
 
        // Rule #4: Global goal difference. (Well, not strictly, but good enough.)
-       var gd_parts = partition(teams, function(a, b) { return b.gd - a.gd });
+       let gd_parts = partition(teams, function(a, b) { return b.gd - a.gd });
        if (gd_parts.length > 1) {
                tiebreakers.push(explain_tiebreaker(gd_parts, 'overall goal difference'));
                return subrank_partitions(games, gd_parts, start_rank, tiebreakers);
        }
 
        // Rule #5: Head-to-head scored goals.
-       var h2h_goals_parts = partition(teams, function(a, b) { return b.h2h_goals - a.h2h_goals });
+       let h2h_goals_parts = partition(teams, function(a, b) { return b.h2h_goals - a.h2h_goals });
        if (h2h_goals_parts.length > 1) {
                tiebreakers.push(explain_tiebreaker(h2h_goals_parts, 'head-to-head scored goals'));
                return subrank_partitions(games, h2h_goals_parts, start_rank, tiebreakers);
        }
 
        // Rule #6: Overall scored goals. (Same caveat as #4.)
-       var goals_parts = partition(teams, function(a, b) { return b.goals - a.goals });
+       let goals_parts = partition(teams, function(a, b) { return b.goals - a.goals });
        if (goals_parts.length > 1) {
                tiebreakers.push(explain_tiebreaker(goals_parts, 'scored goals'));
                return subrank_partitions(games, goals_parts, start_rank, tiebreakers);
        }
 
        // OK, it's a tie. Give them all the same rank.
-       var result = [];
-       for (var i = 0; i < teams.length; ++i) {
+       let result = [];
+       for (let i = 0; i < teams.length; ++i) {
                result.push(teams[i]);
                result[i].rank = start_rank;
        }
@@ -235,8 +237,8 @@ function rank(games, teams, start_rank, tiebreakers) {
 }; 
 
 function parse_teams_from_spreadsheet(response) {
-       var teams = [];
-       for (var i = 2; response.values[i].length >= 1; ++i) {
+       let teams = [];
+       for (let i = 2; response.values[i].length >= 1; ++i) {
                teams.push({
                        "name": response.values[i][0],
                        "mediumname": response.values[i][1],
@@ -252,8 +254,8 @@ function parse_teams_from_spreadsheet(response) {
 };
 
 function parse_games_from_spreadsheet(response, group_name, include_unplayed) {
-       var games = [];
-       var i;
+       let games = [];
+       let i;
        for (i = 0; i < response.values.length; ++i) {
                if (response.values[i][0] === 'Results') {
                        i += 2;
@@ -263,7 +265,7 @@ function parse_games_from_spreadsheet(response, group_name, include_unplayed) {
 
        for ( ; response.values[i] !== undefined && response.values[i].length >= 1; ++i) {
                if ((response.values[i][2] && response.values[i][3]) || include_unplayed) {
-                       var real_group_name = response.values[i][9];
+                       let real_group_name = response.values[i][9];
                        if (real_group_name === undefined) {
                                real_group_name = group_name;
                        }
@@ -283,8 +285,8 @@ function parse_games_from_spreadsheet(response, group_name, include_unplayed) {
 
 function display_group(response, group_name)
 {
-       var teams = parse_teams_from_spreadsheet(response);
-       var games = parse_games_from_spreadsheet(response, group_name, false);
+       let teams = parse_teams_from_spreadsheet(response);
+       let games = parse_games_from_spreadsheet(response, group_name, false);
        display_group_parsed(teams, games, group_name);
 };
 
@@ -292,10 +294,10 @@ function display_group_parsed(teams, games, group_name)
 {
        document.getElementById('entire-bug').style.display = 'none';
 
-       var teams_to_idx = make_teams_to_idx(teams);
-       for (var i = 0; i < games.length; ++i) {
-               var idx1 = teams_to_idx[games[i].name1];
-               var idx2 = teams_to_idx[games[i].name2];
+       let teams_to_idx = make_teams_to_idx(teams);
+       for (let i = 0; i < games.length; ++i) {
+               let idx1 = teams_to_idx[games[i].name1];
+               let idx2 = teams_to_idx[games[i].name2];
                if (games[i].score1 === undefined || games[i].score2 === undefined ||
                    isNaN(games[i].score1) || isNaN(games[i].score2) ||
                    idx1 === undefined || idx2 === undefined ||
@@ -317,14 +319,14 @@ function display_group_parsed(teams, games, group_name)
                }
        }
 
-       var tiebreakers = [];
+       let tiebreakers = [];
        teams = rank(games, teams, 1, tiebreakers);
 
-       var carousel = document.getElementById('carousel');
+       let carousel = document.getElementById('carousel');
        clear_carousel(carousel);
 
        addheading(carousel, 5, "Current standings, Trøndisk 2017<br />" + group_name);
-       var tr = document.createElement("tr");
+       let tr = document.createElement("tr");
        tr.className = "subfooter";
        addth(tr, "rank", "");
        addth(tr, "team", "");
@@ -333,9 +335,9 @@ function display_group_parsed(teams, games, group_name)
        addth(tr, "pts", "Pts");
        carousel.appendChild(tr);
 
-       var row_num = 2;
-       for (i = 0; i < teams.length; ++i) {
-               var tr = document.createElement("tr");
+       let row_num = 2;
+       for (let i = 0; i < teams.length; ++i) {
+               let tr = document.createElement("tr");
 
                addth(tr, "rank", teams[i].rank);
                addtd(tr, "team", teams[i].name);
@@ -347,18 +349,18 @@ function display_group_parsed(teams, games, group_name)
        }
 
        if (tiebreakers.length > 0) {
-               var tie_tr = document.createElement("tr");
+               let tie_tr = document.createElement("tr");
                tie_tr.className = "footer";
-               var td = document.createElement("td");
+               let td = document.createElement("td");
                td.appendChild(document.createTextNode("Tiebreaks applied: " + tiebreakers.join(', ')));
                td.setAttribute("colspan", "5");
                tie_tr.appendChild(td);
                carousel.appendChild(tie_tr);
        }
 
-       var footer_tr = document.createElement("tr");
+       let footer_tr = document.createElement("tr");
        footer_tr.className = "footer";
-       var td = document.createElement("td");
+       let td = document.createElement("td");
        td.appendChild(document.createTextNode("www.trondheimfrisbeeklubb.no | #trøndisk"));
        td.setAttribute("colspan", "5");
        footer_tr.appendChild(td);
@@ -371,8 +373,8 @@ function display_group_parsed(teams, games, group_name)
 
 function fade_in_rows(table)
 {
-       var trs = table.getElementsByTagName("tr");
-       for (var i = 1; i < trs.length; ++i) {  // The header already has its own fade-in.
+       let trs = table.getElementsByTagName("tr");
+       for (let i = 1; i < trs.length; ++i) {  // The header already has its own fade-in.
                if (trs[i].className === "footer") {
                        trs[i].style = "-webkit-animation: fade-in 1.0s ease; -webkit-animation-delay: " + (0.25 * i) + "s; -webkit-animation-fill-mode: both;";
                } else {
@@ -383,8 +385,8 @@ function fade_in_rows(table)
 
 function fade_out_rows(table)
 {
-       var trs = table.getElementsByTagName("tr");
-       for (var i = 0; i < trs.length; ++i) {
+       let trs = table.getElementsByTagName("tr");
+       for (let i = 0; i < trs.length; ++i) {
                if (trs[i].className === "footer") {
                        trs[i].style = "-webkit-animation: fade-out 1.0s ease; -webkit-animation-delay: " + (0.125 * i) + "s; -webkit-animation-fill-mode: both;";
                } else {
@@ -401,11 +403,11 @@ function clear_carousel(table)
 };
 
 // Stream schedule
-var max_list_len = 8;
+let max_list_len = 8;
 
 function display_stream_schedule(response, group_name) {
-       var teams = parse_teams_from_spreadsheet(response);
-       var games = parse_games_from_spreadsheet(response, group_name, true);
+       let teams = parse_teams_from_spreadsheet(response);
+       let games = parse_games_from_spreadsheet(response, group_name, true);
        display_stream_schedule_parsed(teams, games, 0);
 };
 
@@ -416,8 +418,8 @@ function sort_game_list(games) {
                        return a.streamday - b.streamday;
                }
 
-               var m1 = a.streamtime.match(/([0-9]+):([0-9]+)/);
-               var m2 = b.streamtime.match(/([0-9]+):([0-9]+)/);
+               let m1 = a.streamtime.match(/([0-9]+):([0-9]+)/);
+               let m2 = b.streamtime.match(/([0-9]+):([0-9]+)/);
                return (m1[1] * 60 + m1[2]) - (m2[1] * 60 + m2[2]);
        });
        return games;
@@ -426,8 +428,8 @@ function sort_game_list(games) {
 function find_game_start_idx(games) {
        // Pick out a reasonable place to start the list. We'll show the last
        // completed match and start from there.
-       var start_idx = games.length - 1;
-       for (var i = 0; i < games.length; ++i) {
+       let start_idx = games.length - 1;
+       for (let i = 0; i < games.length; ++i) {
                if (isNaN(games[i].score1) || isNaN(games[i].score2) &&
                    games[i].score1 === games[i].score2) {
                        start_idx = i;
@@ -443,7 +445,7 @@ function find_game_start_idx(games) {
 
 function find_num_pages(games) {
        games = sort_game_list(games);
-       var start_idx = find_game_start_idx(games);
+       let start_idx = find_game_start_idx(games);
        return Math.ceil((games.length - start_idx) / max_list_len);
 }
 
@@ -451,7 +453,7 @@ function display_stream_schedule_parsed(teams, games, page) {
        document.getElementById('entire-bug').style.display = 'none';
 
        games = sort_game_list(games);
-       var start_idx = find_game_start_idx(games);
+       let start_idx = find_game_start_idx(games);
 
        start_idx += page * max_list_len;
        if (start_idx >= games.length) {
@@ -459,29 +461,29 @@ function display_stream_schedule_parsed(teams, games, page) {
                return;
        }
 
-       var days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
-       var shortdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
-       var today = days[(new Date).getDay()];
+       let days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
+       let shortdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"];
+       let today = days[(new Date).getDay()];
 
-       var covered_days = [];
-       var row_num = 0;
-       for (var i = start_idx; i < games.length && row_num++ < max_list_len; ++i) {
+       let covered_days = [];
+       let row_num = 0;
+       for (let i = start_idx; i < games.length && row_num++ < max_list_len; ++i) {
                if (i == start_idx || games[i].streamday != games[i - 1].streamday) {
                        covered_days.push(days[games[i].streamday]);
                }
        }
        
-       var carousel = document.getElementById('carousel');
+       let carousel = document.getElementById('carousel');
        clear_carousel(carousel);
        addheading(carousel, 3, "Stream schedule, Trøndisk 2017<br />" + covered_days.join('/') + " (all times CET)");
 
-       var teams_to_idx = make_teams_to_idx(teams);
+       let teams_to_idx = make_teams_to_idx(teams);
        row_num = 0;
-       for (i = start_idx; i < games.length && row_num < max_list_len; ++i) {
-               var tr = document.createElement("tr");
+       for (let i = start_idx; i < games.length && row_num < max_list_len; ++i) {
+               let tr = document.createElement("tr");
 
-               var name1 = teams[teams_to_idx[games[i].name1]].mediumname;
-               var name2 = teams[teams_to_idx[games[i].name2]].mediumname;
+               let name1 = teams[teams_to_idx[games[i].name1]].mediumname;
+               let name2 = teams[teams_to_idx[games[i].name2]].mediumname;
 
                addtd(tr, "matchup", name1 + "–" + name2);
                addtd(tr, "group", games[i].group_name);
@@ -490,8 +492,8 @@ function display_stream_schedule_parsed(teams, games, page) {
                    games[i].score1 !== games[i].score2) {
                        addtd(tr, "streamtime", games[i].score1 + "–" + games[i].score2);
                } else {
-                       var streamtime = games[i].streamtime;
-                       var streamday = days[games[i].streamday];
+                       let streamtime = games[i].streamtime;
+                       let streamday = days[games[i].streamday];
                        if (streamday !== today) {
                                streamtime = shortdays[games[i].streamday] + " " + streamtime;
                        }
@@ -509,7 +511,7 @@ function display_stream_schedule_parsed(teams, games, page) {
 
 function get_group(group_name, cb)
 {
-       var req = new XMLHttpRequest();
+       let req = new XMLHttpRequest();
        req.onload = function(e) {
                cb(JSON.parse(req.responseText), group_name);
        };
@@ -527,7 +529,7 @@ function showgroup_from_state()
        showgroup(state['group_name']);
 };
 
-var carousel_timeout = null;
+let carousel_timeout = null;
 
 function hidetable()
 {
@@ -536,11 +538,11 @@ function hidetable()
 
 function showschedule(page)
 {
-       var teams = [];
-       var games = [];
-       var num_left = 3;
+       let teams = [];
+       let games = [];
+       let num_left = 3;
 
-       var cb = function(response, group_name) {
+       let cb = function(response, group_name) {
                teams = teams.concat(parse_teams_from_spreadsheet(response));
                games = games.concat(parse_games_from_spreadsheet(response, group_name, true));
                if (--num_left == 0) {
@@ -568,28 +570,28 @@ function do_series_internal(series, idx)
 
 function showcarousel()
 {
-       var teams_per_group = [];
-       var games_per_group = [];
-       var combined_teams = [];
-       var combined_games = [];
-       var num_left = 3;
-
-       var cb = function(response, group_name) {
-               var teams = parse_teams_from_spreadsheet(response);
-               var games = parse_games_from_spreadsheet(response, group_name, true);
+       let teams_per_group = [];
+       let games_per_group = [];
+       let combined_teams = [];
+       let combined_games = [];
+       let num_left = 3;
+
+       let cb = function(response, group_name) {
+               let teams = parse_teams_from_spreadsheet(response);
+               let games = parse_games_from_spreadsheet(response, group_name, true);
                teams_per_group[group_name] = teams;
                games_per_group[group_name] = games;
 
                combined_teams = combined_teams.concat(teams);
                combined_games = combined_games.concat(games);
                if (--num_left == 0) {
-                       var series = [
+                       let series = [
                                [ 13000, function() { display_group_parsed(teams_per_group['Group A'], games_per_group['Group A'], 'Group A'); } ],
                                [ 2000, function() { hidetable(); } ],
                                [ 13000, function() { display_group_parsed(teams_per_group['Group B'], games_per_group['Group B'], 'Group B'); } ],
                                [ 2000, function() { hidetable(); } ]
                        ];
-                       var num_pages = find_num_pages(combined_games);
+                       let num_pages = find_num_pages(combined_games);
                        for (let page = 0; page < num_pages; ++page) {
                                series.push([ 13000, function() { display_stream_schedule_parsed(combined_teams, combined_games, page); } ]);
                                series.push([ 2000, function() { hidetable(); } ]);
index 12ecef5af35a9bef01ba68756e298ba490d07361..8c8f2ffd6be307bbb996bd37950bf2e4cde922a6 100644 (file)
@@ -1,13 +1,14 @@
+'use strict';
 
 function make_ul_help(response, group_name, id) {
-       var h1 = document.getElementById(id + "heading");
+       let h1 = document.getElementById(id + "heading");
        h1.innerHTML = group_name;
 
-       var ul = document.getElementById(id);
+       let ul = document.getElementById(id);
        ul.innerHTML = "";
-       for (var p in response) {
+       for (let p in response) {
                if (response.hasOwnProperty(p)) {
-                       var li = document.createElement('li');
+                       let li = document.createElement('li');
                        li.innerHTML = "<strong>" + p + ":</strong> " + response[p].raw_text;
                        ul.appendChild(li);
                }
@@ -15,8 +16,8 @@ function make_ul_help(response, group_name, id) {
 }
 
 function updatequickhelp(id, prefix) {
-       var e = document.getElementById(id + 'select');
-       var code = e.options[e.selectedIndex].text;
+       let e = document.getElementById(id + 'select');
+       let code = e.options[e.selectedIndex].text;
        load_l3(code, prefix, function(response, group_name) { make_ul_help(response, group_name, id); });
 }
 
index 6b38a693e8d99d37db8edb0270bc77af57adb18f..ba3e9ef984a62788f691f70ddd6c5e20e1b1a05b 100644 (file)
@@ -1,10 +1,12 @@
-var load_l3 = function(sheet, prefix, cb)
+'use strict';
+
+function load_l3(sheet, prefix, cb)
 {
-       var req = new XMLHttpRequest();
+       let req = new XMLHttpRequest();
        req.onload = function(e) {
-               var response = JSON.parse(req.responseText);
-               var l3s = [];
-               var i;
+               let response = JSON.parse(req.responseText);
+               let l3s = [];
+               let i;
                for (i = 0; i < response.values.length; ++i) {
                        if (response.values[i][0] === 'Number') {
                                ++i;
@@ -13,17 +15,17 @@ var load_l3 = function(sheet, prefix, cb)
                }
 
                for ( ; response.values[i] !== undefined && response.values[i].length >= 3; ++i) {
-                       var number = response.values[i][0];
-                       var display_number = response.values[i][1];
+                       let number = response.values[i][0];
+                       let display_number = response.values[i][1];
                        if (number === '') {
                                number = display_number;
                        }
-                       var text = response.values[i][2];
+                       let text = response.values[i][2];
                        if (display_number !== undefined && display_number !== '') {
                                text = "&nbsp;" + display_number + "&nbsp;&nbsp;" + text;
                        }
                        text = text.replace(/\n/, '<br />');
-                       var subtext = response.values[i][3];
+                       let subtext = response.values[i][3];
                        if (subtext === undefined || subtext === '') {
                                subtext = 'TrønDisk 2017';
                        }
@@ -33,7 +35,7 @@ var load_l3 = function(sheet, prefix, cb)
                                "text": text,
                                "subtext": subtext
                        };
-                       var image = response.values[i][4];
+                       let image = response.values[i][4];
                        if (image !== undefined && image.match(/^file:/) !== null) {
                                l3s[prefix + number].image = image;
                        }
@@ -44,17 +46,17 @@ var load_l3 = function(sheet, prefix, cb)
        req.send();
 };
 
-var current_quick_l3s = [];
+let current_quick_l3s = [];
 
 function quicklowerthird()
 {
-       var code = current_quick_l3s[state['code']];
+       let code = current_quick_l3s[state['code']];
        if (code === undefined) {
                return;
        }
        document.getElementById('lowerthird-headline-content').innerHTML = code.text;
        document.getElementById('lowerthird-subheading-content').innerHTML = code.subtext;
-       var img = document.getElementById('lowerthird-img');
+       let img = document.getElementById('lowerthird-img');
        if (code.image !== undefined) {
                img.src = code.image;
                img.style.display = 'inline';
@@ -72,17 +74,17 @@ function quicklowerthird()
 
 function loadquickl3s(sheets)
 {
-       var newl3s = {};
-       var num_left = 1;
+       let newl3s = {};
+       let num_left = 1;
 
-       for (var prop in sheets) {
+       for (let prop in sheets) {
                if (sheets.hasOwnProperty(prop)) {
                        ++num_left;
                }
        }
 
-       var cb = function(response, group_name) {
-               for (var p in response) {
+       let cb = function(response, group_name) {
+               for (let p in response) {
                        if (response.hasOwnProperty(p)) {
                                newl3s[p] = response[p];
                        }
@@ -92,7 +94,7 @@ function loadquickl3s(sheets)
                }
        };
 
-       for (var prop in sheets) {
+       for (let prop in sheets) {
                if (sheets.hasOwnProperty(prop)) {
                        load_l3(sheets[prop], prop, cb);
                }
index b9230fd113ab1c9a68f04559e3587d85bda8d01c..02ff92e6317428ee9de4c750c63cb29ce2f3b6ba 100644 (file)
--- a/roster.js
+++ b/roster.js
@@ -1,18 +1,20 @@
+'use strict';
+
 function load_roster(sheet, cb)
 {
-       var req = new XMLHttpRequest();
+       let req = new XMLHttpRequest();
        req.onload = function(e) {
-               var response = JSON.parse(req.responseText);
+               let response = JSON.parse(req.responseText);
 
-               var team_name = '';
+               let team_name = '';
                if (response.values[0].length >= 1 &&
                    response.values[0][0] !== undefined &&
                    response.values[0][0] !== null) {
                        team_name = response.values[0][0];
                }
 
-               var roster = [];
-               var i;
+               let roster = [];
+               let i;
                for (i = 0; i < response.values.length; ++i) {
                        if (response.values[i][0] === 'Number') {
                                ++i;
@@ -21,8 +23,8 @@ function load_roster(sheet, cb)
                }
 
                for ( ; response.values[i] !== undefined && response.values[i].length >= 3; ++i) {
-                       var display_number = response.values[i][1];
-                       var name = response.values[i][2];
+                       let display_number = response.values[i][1];
+                       let name = response.values[i][2];
                        roster.push({
                                "number": display_number,
                                "name": name
@@ -38,7 +40,7 @@ function display_roster(team_name, roster)
 {
        document.getElementById('entire-bug').style.display = 'none';
 
-       var carousel = document.getElementById('carousel');
+       let carousel = document.getElementById('carousel');
        clear_carousel(carousel);
 
        if (team_name === '') {
@@ -47,8 +49,8 @@ function display_roster(team_name, roster)
                addheading(carousel, 4, 'Team lineup<br />' + team_name);
        }
 
-       for (var i = 0; i < roster.length; i += 2) {
-               var tr = document.createElement("tr");
+       for (let i = 0; i < roster.length; i += 2) {
+               let tr = document.createElement("tr");
 
                addth(tr, "playernum", roster[i].number);
                addtd(tr, "playername", roster[i].name);
@@ -79,11 +81,11 @@ function showroster_from_state()
 
 function showrostercarousel(sheet1, sheet2)
 {
-       var team_names = [null, null];
-       var rosters = [null, null];
-       var num_left = 2;
+       let team_names = [null, null];
+       let rosters = [null, null];
+       let num_left = 2;
 
-       var cb = function(id, team_name, roster) {
+       let cb = function(id, team_name, roster) {
                team_names[id] = team_name;
                rosters[id] = roster;
                if (--num_left == 0) {
index 60f420e670fc73a0359b315b8c88a9c35b771d39..21a2cde5b71ad71034dd1fd4d944995497795b39 100644 (file)
--- a/score.js
+++ b/score.js
@@ -1,19 +1,21 @@
-var clock_running = false;
-var clock_visible = false;
-var comment_visible = false;
-var lowerthird_visible = false;
-var clock_left = 30 * 60;
-var scoreA = 0;
-var scoreB = 0;
-var clock_origin;
-var state = {};
+'use strict';
+
+let clock_running = false;
+let clock_visible = false;
+let comment_visible = false;
+let lowerthird_visible = false;
+let clock_left = 30 * 60;
+let scoreA = 0;
+let scoreB = 0;
+let clock_origin;
+let state = {};
 
 function setteams()
 {
        document.getElementById('team1').innerHTML = state['team1'];
        document.getElementById('team2').innerHTML = state['team2'];
 
-       var sheets = { 'A': state['team1'], 'B': state['team2'] };
+       let sheets = { 'A': state['team1'], 'B': state['team2'] };
        loadquickl3s(sheets);
 }
 
@@ -56,14 +58,14 @@ function setclock(amount)
 
 function setclockfromstate()
 {
-       var amount = parseInt(state['clock_min']) * 60 + parseInt(state['clock_sec']);
+       let amount = parseInt(state['clock_min']) * 60 + parseInt(state['clock_sec']);
        setclock(amount);
 }
 
 function showclock()
 {
        if (clock_visible) return;
-       var clockbug = document.getElementById('clockbug');
+       let clockbug = document.getElementById('clockbug');
        clockbug.className = 'clockbug clockbug-animate-in';
        clock_visible = true;
 }
@@ -71,7 +73,7 @@ function showclock()
 function hideclock()
 {
        if (!clock_visible) return;
-       var clockbug = document.getElementById('clockbug');
+       let clockbug = document.getElementById('clockbug');
        clockbug.className = 'clockbug clockbug-animate-out';
        clock_visible = false;
 }
@@ -84,7 +86,7 @@ function setcomment()
 function showcomment()
 {
        if (comment_visible) return;
-       var commentbug = document.getElementById('commentbug');
+       let commentbug = document.getElementById('commentbug');
        commentbug.className = 'commentbug commentbug-animate-in';
        comment_visible = true;
 }
@@ -92,7 +94,7 @@ function showcomment()
 function hidecomment()
 {
        if (!comment_visible) return;
-       var commentbug = document.getElementById('commentbug');
+       let commentbug = document.getElementById('commentbug');
        commentbug.className = 'commentbug commentbug-animate-out';
        comment_visible = false;
 }
@@ -102,8 +104,8 @@ function showlowerthird()
        if (lowerthird_visible) return;
 
        // With no flexbox, this is how it has to be...
-       var f = document.getElementById('lowerthird-headline');
-       var g = document.getElementById('lowerthird-headline-content');
+       let f = document.getElementById('lowerthird-headline');
+       let g = document.getElementById('lowerthird-headline-content');
        f.style.paddingTop = Math.round((f.clientHeight - g.clientHeight) / 2) + 'px';
 
        f = document.getElementById('lowerthird-subheading');
@@ -127,7 +129,7 @@ function setandshowlowerthird()
 {
        document.getElementById('lowerthird-headline-content').innerHTML = state['text1'];
        document.getElementById('lowerthird-subheading-content').innerHTML = state['text2'];
-       var img = document.getElementById('lowerthird-img');
+       let img = document.getElementById('lowerthird-img');
        if (state['image'] === undefined) {
                img.style.display = 'none';
        } else {
@@ -151,16 +153,16 @@ function hidelowerthird()
 
 function time_left()
 {
-       var elapsed = (Date.now() - clock_origin) * 1e-3;
+       let elapsed = (Date.now() - clock_origin) * 1e-3;
        if (elapsed > clock_left) return 0;
        return Math.ceil(clock_left - elapsed);
 }
 
 function update_clock()
 {
-       var left = time_left();
-       var min = Math.floor(left / 60);
-       var sec = left % 60;
+       let left = time_left();
+       let min = Math.floor(left / 60);
+       let sec = left % 60;
 
        if (sec < 10) sec = "0" + sec;
        document.getElementById('clock').innerHTML = min + ":" + sec;
@@ -214,8 +216,8 @@ function play()
 function update(v)
 {
        console.log('[[[' + v + ']]]');
-       var j = JSON.parse(v);
-       for(var key in j) state[key] = j[key];
+       let j = JSON.parse(v);
+       for(let key in j) state[key] = j[key];
 }
 
 setInterval(function() {