'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");
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 = [];
"name": response.values[i][0],
"mediumname": response.values[i][1],
"shortname": response.values[i][2],
- "tags": response.values[i][3],
+ //"tags": response.values[i][3],
+ "ngames": 0,
"nplayed": 0,
"gd": 0,
"pts": 0,
}
}
+// 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';
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.
});
- publish_group_rank(group_name); // Update the spreadsheet in the background.
}
{
let teams = [];
let games = [];
- let num_left = 3;
+ let num_left = 5;
let cb = function(response, group_name) {
teams = teams.concat(parse_teams_from_spreadsheet(response));
get_group('Group B', cb);
get_group('Group C', cb);
get_group('Playoffs', cb);
+ get_group('Playoffs 9th-13th', cb);
};
function do_series(series)
let games_per_group = [];
let combined_teams = [];
let combined_games = [];
- let num_left = 3;
+ 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;
[ 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);
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);
};