]> git.sesse.net Git - ultimatescore/blobdiff - carousel.js
Remove some unneeded semicolons.
[ultimatescore] / carousel.js
index 00da45cd39529ef3bd1aed7e6a4976955d331a5b..ba0c93effbc03df212d80b94db2e2a3bd3d8e2e6 100644 (file)
@@ -1,5 +1,16 @@
 'use strict';
 
+// Log with deep clone, so that the browser will show the object at time of log,
+// instead of what it looks like at time of view.
+function dlog()
+{
+       let args = [];
+       for (const arg of arguments) {
+               args.push(JSON.parse(JSON.stringify(arg)));
+       }
+       console.log(args);
+}
+
 function addheading(carousel, colspan, content)
 {
        let thead = document.createElement("thead");
@@ -10,19 +21,21 @@ function addheading(carousel, colspan, content)
        tr.appendChild(th);
        thead.appendChild(tr);
        carousel.appendChild(thead);
-};
+}
+
 function addtd(tr, className, content) {
        let td = document.createElement("td");
        td.appendChild(document.createTextNode(content));
        td.className = className;
        tr.appendChild(td);
-};
+}
+
 function addth(tr, className, content) {
        let th = document.createElement("th");
        th.appendChild(document.createTextNode(content));
        th.className = className;
        tr.appendChild(th);
-};
+}
 
 function subrank_partitions(games, parts, start_rank, tiebreakers, func) {
        let result = [];
@@ -351,6 +364,7 @@ function parse_teams_from_spreadsheet(response) {
                        "mediumname": response.values[i][1],
                        "shortname": response.values[i][2],
                        //"tags": response.values[i][3],
+                       "ngames": 0,
                        "nplayed": 0,
                        "gd": 0,
                        "pts": 0,
@@ -418,6 +432,24 @@ function apply_games_to_teams(games, teams)
        }
 }
 
+// So that we can just have one team list, and let membership be defined by games.
+function filter_teams(teams, response)
+{
+       let teams_to_idx = make_teams_to_idx(teams);
+       let games = parse_games_from_spreadsheet(response, 'irrelevant group name', true);
+       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) {
+                       ++teams[idx1].ngames;
+               }
+               if (idx2 !== undefined) {
+                       ++teams[idx2].ngames;
+               }
+       }
+       return teams.filter(function(team) { return team.ngames > 0; });
+}
+
 function display_group_parsed(teams, games, group_name)
 {
        document.getElementById('entire-bug').style.display = 'none';
@@ -628,6 +660,7 @@ function showgroup(group_name)
        get_group(group_name, function(response, group_name) {
                let teams = parse_teams_from_spreadsheet(response);
                let games = parse_games_from_spreadsheet(response, group_name, false);
+               teams = filter_teams(teams, response);
                display_group_parsed(teams, games, group_name);
                publish_group_rank(response, group_name);  // Update the spreadsheet in the background.
        });
@@ -650,7 +683,7 @@ function showschedule(page)
 {
        let teams = [];
        let games = [];
-       let num_left = 4;
+       let num_left = 5;
 
        let cb = function(response, group_name) {
                teams = teams.concat(parse_teams_from_spreadsheet(response));
@@ -664,6 +697,7 @@ function showschedule(page)
        get_group('Group B', cb);
        get_group('Group C', cb);
        get_group('Playoffs', cb);
+       get_group('Playoffs 9th-13th', cb);
 };
 
 function do_series(series)
@@ -685,11 +719,12 @@ function showcarousel()
        let games_per_group = [];
        let combined_teams = [];
        let combined_games = [];
-       let num_left = 4;
+       let num_left = 5;
 
        let cb = function(response, group_name) {
                let teams = parse_teams_from_spreadsheet(response);
                let games = parse_games_from_spreadsheet(response, group_name, true);
+               teams = filter_teams(teams, response);
                teams_per_group[group_name] = teams;
                games_per_group[group_name] = games;
 
@@ -702,6 +737,8 @@ function showcarousel()
                                [ 13000, function() { display_group_parsed(teams_per_group['Group B'], games_per_group['Group B'], 'Group B'); } ],
                                [ 2000, function() { hidetable(); } ],
                                [ 13000, function() { display_group_parsed(teams_per_group['Group C'], games_per_group['Group C'], 'Group C'); } ],
+                               [ 2000, function() { hidetable(); } ],
+                               [ 13000, function() { display_group_parsed(teams_per_group['Playoffs 9th-13th'], games_per_group['Playoffs 9th-13th'], 'Playoffs 9th–13th'); } ],
                                [ 2000, function() { hidetable(); } ]
                        ];
                        let num_pages = find_num_pages(combined_games);
@@ -717,6 +754,7 @@ function showcarousel()
        get_group('Group A', cb);
        get_group('Group B', cb);
        get_group('Group C', cb);
+       get_group('Playoffs 9th-13th', cb);
        get_group('Playoffs', cb);
 };