]> git.sesse.net Git - ultimatescore/blobdiff - carousel.js
Pull the schedule requests in parallel.
[ultimatescore] / carousel.js
index 42639952243dd138936814744ad25e3d2c5ca5bf..c05e0a93b1502e2d8763af8d2e4c968f5f529e66 100644 (file)
@@ -298,6 +298,7 @@ var display_group = function(response, group_name) {
        teams = rank(games, teams, 1, tiebreakers);
 
        var carousel = document.getElementById('carousel');
+       clear_carousel(carousel);
 
        addheading(carousel, 5, "Current standings, TrønDisk 2017<br />" + group_name);
        var tr = document.createElement("tr");
@@ -357,6 +358,25 @@ var fade_in_rows = function(table)
        }
 };
 
+var fade_out_rows = function(table)
+{
+       var trs = table.getElementsByTagName("tr");
+       for (var 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 {
+                       trs[i].style = "-webkit-animation: fade-out 1.0s ease; -webkit-animation-delay: " + (0.125 * i) + "s; -webkit-animation-fill-mode: both;";
+               }
+       }
+};
+
+var clear_carousel = function(table)
+{
+       while (table.childNodes.length > 0) {
+               table.removeChild(table.firstChild);
+       }
+};
+
 // Stream schedule
 var display_stream_schedule = function(response, group_name) {
        var teams = parse_teams_from_spreadsheet(response);
@@ -390,6 +410,7 @@ var display_stream_schedule_parsed = function(teams, games) {
        }
        
        var carousel = document.getElementById('carousel');
+       clear_carousel(carousel);
        addheading(carousel, 3, "Stream schedule, TrønDisk 2017<br />Saturday");
 
        var row_num = 0;
@@ -428,26 +449,33 @@ var get_group = function(group_name, cb)
        req.send();
 };
 
-//get_group('Group A', display_group);
-//get_group('Group A', display_stream_schedule);
-//get_group('Group A', function(response_a) {
-//     var teams = parse_teams_from_spreadsheet(response_a);
-//     var games = parse_games_from_spreadsheet(response_a, 'Group A', true);
-//     get_group('Group B', function(response_b) {
-//             teams = teams.concat(parse_teams_from_spreadsheet(response_b));
-//             games = games.concat(parse_games_from_spreadsheet(response_b, 'Group B', true));
-//             get_group('Semifinals', function(response_c) {
-//                     teams = teams.concat(parse_teams_from_spreadsheet(response_c));
-//                     games = games.concat(parse_games_from_spreadsheet(response_c, 'Semifinals', true));
-//                     get_group('Bronze final', function(response_d) {
-//                             teams = teams.concat(parse_teams_from_spreadsheet(response_d));
-//                             games = games.concat(parse_games_from_spreadsheet(response_d, 'Bronze final', true));
-//                             get_group('Final', function(response_e) {
-//                                     teams = teams.concat(parse_teams_from_spreadsheet(response_e));
-//                                     games = games.concat(parse_games_from_spreadsheet(response_e, 'Final', true));
-//                                     display_stream_schedule_parsed(teams, games);
-//                             });
-//                     });
-//             });
-//     });
-//});
+var showgroup = function(group_name)
+{
+       get_group(group_name, display_group);
+};
+
+var hidetable = function()
+{
+       fade_out_rows(document.getElementById('carousel'));
+};
+
+var showschedule = function()
+{
+       var teams = [];
+       var games = [];
+       var num_left = 5;
+
+       var 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) {
+                       display_stream_schedule_parsed(teams, games);
+               }
+       };
+
+       get_group('Group A', cb);
+       get_group('Group B', cb);
+       get_group('Semifinals', cb);
+       get_group('Bronze final', cb);
+       get_group('Final', cb);
+};