]> git.sesse.net Git - ultimatescore/blobdiff - carousel.js
Various automatic roster sort improvements.
[ultimatescore] / carousel.js
index 153d425d9b52141f544f91b9e4d3b99db5dd08ff..bbab9aafe300ea0787f291a32a75fd33efbaebf5 100644 (file)
@@ -352,17 +352,8 @@ function parse_games_from_spreadsheet(response, group_name, include_unplayed) {
        return games;
 };
 
-function display_group(response, group_name)
+function apply_games_to_teams(games, teams)
 {
-       let teams = parse_teams_from_spreadsheet(response);
-       let games = parse_games_from_spreadsheet(response, group_name, false);
-       display_group_parsed(teams, games, group_name);
-};
-
-function display_group_parsed(teams, games, group_name)
-{
-       document.getElementById('entire-bug').style.display = 'none';
-
        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];
@@ -387,14 +378,20 @@ function display_group_parsed(teams, games, group_name)
                        teams[idx2].pts += 2;
                }
        }
+}
 
+function display_group_parsed(teams, games, group_name)
+{
+       document.getElementById('entire-bug').style.display = 'none';
+
+       apply_games_to_teams(games, teams);
        let tiebreakers = [];
        teams = rank(games, teams, 1, tiebreakers);
 
        let carousel = document.getElementById('carousel');
        clear_carousel(carousel);
 
-       addheading(carousel, 5, "Current standings<br />" + group_name);
+       addheading(carousel, 5, "Current standings, " + ultimateconfig['tournament_title'] + "<br />" + group_name);
        let tr = document.createElement("tr");
        tr.className = "subfooter";
        addth(tr, "rank", "");
@@ -430,7 +427,7 @@ function display_group_parsed(teams, games, group_name)
        let footer_tr = document.createElement("tr");
        footer_tr.className = "footer";
        let td = document.createElement("td");
-       td.appendChild(document.createTextNode("Norwegian Ultimate Championships 2018 | #ultimatenm"));
+       td.appendChild(document.createTextNode(ultimateconfig['tournament_footer']));
        td.setAttribute("colspan", "5");
        footer_tr.appendChild(td);
        carousel.appendChild(footer_tr);
@@ -472,7 +469,7 @@ function clear_carousel(table)
 };
 
 // Stream schedule
-let max_list_len = 8;
+let max_list_len = 7;
 
 function display_stream_schedule(response, group_name) {
        let teams = parse_teams_from_spreadsheet(response);
@@ -544,7 +541,7 @@ function display_stream_schedule_parsed(teams, games, page) {
        
        let carousel = document.getElementById('carousel');
        clear_carousel(carousel);
-       addheading(carousel, 3, "Match schedule<br />" + covered_days.join('/') + " (all times CET)");
+       addheading(carousel, 3, "Stream schedule, " + ultimateconfig['tournament_title'] + "<br />" + covered_days.join('/') + " (all times CET)");
 
        let teams_to_idx = make_teams_to_idx(teams);
        row_num = 0;
@@ -584,19 +581,25 @@ function get_group(group_name, cb)
        req.onload = function(e) {
                cb(JSON.parse(req.responseText), group_name);
        };
-       req.open('GET', 'https://sheets.googleapis.com/v4/spreadsheets/1uh7kr5v_hyD072b1G2tbQlhqd_8ldS_6j30CBocQ-4E/values/\'' + group_name + '\'!A1:J50?key=AIzaSyAuP9yQn8g0bSay6r_RpGtpFeIbwprH1TU');
+       req.open('GET', 'https://sheets.googleapis.com/v4/spreadsheets/' + ultimateconfig['score_sheet_id'] + '/values/\'' + group_name + '\'!A1:J50?key=' + ultimateconfig['api_key']);
        req.send();
-};
+}
 
 function showgroup(group_name)
 {
-       get_group(group_name, display_group);
-};
+       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);
+               display_group_parsed(teams, games, group_name);
+       });
+       publish_group_rank(group_name);  // Update the spreadsheet in the background.
+}
+
 
 function showgroup_from_state()
 {
        showgroup(state['group_name']);
-};
+}
 
 let carousel_timeout = null;
 
@@ -621,6 +624,7 @@ function showschedule(page)
 
        get_group('Group A', cb);
        get_group('Group B', cb);
+       get_group('Group C', cb);
        get_group('Playoffs', cb);
 };
 
@@ -658,6 +662,8 @@ function showcarousel()
                                [ 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(); } ],
+                               [ 13000, function() { display_group_parsed(teams_per_group['Group C'], games_per_group['Group C'], 'Group C'); } ],
                                [ 2000, function() { hidetable(); } ]
                        ];
                        let num_pages = find_num_pages(combined_games);
@@ -672,6 +678,7 @@ function showcarousel()
 
        get_group('Group A', cb);
        get_group('Group B', cb);
+       get_group('Group C', cb);
        get_group('Playoffs', cb);
 };
 
@@ -692,5 +699,18 @@ function hidescorebug()
 function showscorebug()
 {
        document.getElementById('entire-bug').style.display = null;
-};
+}
 
+function showmatch2()
+{
+       let css = "-webkit-animation: fade-in 1.0s ease; -webkit-animation-fill-mode: both;";
+       document.getElementById('scorebug2').style = css;
+       document.getElementById('clockbug2').style = css;
+}
+
+function hidematch2()
+{
+       let css = "-webkit-animation: fade-out 1.0s ease; -webkit-animation-fill-mode: both;";
+       document.getElementById('scorebug2').style = css;
+       document.getElementById('clockbug2').style = css;
+}