]> git.sesse.net Git - ultimatescore/blobdiff - carousel.js
Add functionality to write the score/rank back into the spreadsheet.
[ultimatescore] / carousel.js
index 153d425d9b52141f544f91b9e4d3b99db5dd08ff..3147c54e8b4ac63b7e341f36f6813ff6fee9e7ed 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,7 +378,13 @@ 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);
 
@@ -586,17 +583,23 @@ function get_group(group_name, cb)
        };
        req.open('GET', 'https://sheets.googleapis.com/v4/spreadsheets/1uh7kr5v_hyD072b1G2tbQlhqd_8ldS_6j30CBocQ-4E/values/\'' + group_name + '\'!A1:J50?key=AIzaSyAuP9yQn8g0bSay6r_RpGtpFeIbwprH1TU');
        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;