]> git.sesse.net Git - ultimatescore/blobdiff - quickl3.js
Move around the handling of quick lower thirds.
[ultimatescore] / quickl3.js
index 61628aa4c2a0c0f1298a811bf9327cdeeb47858d..8977f7fdb5b13ebe57a55f7973a86be9da726dd7 100644 (file)
@@ -15,31 +15,69 @@ function load_l3(sheet, prefix, cb)
                        }
                }
 
+               let players = [];
                for ( ; response.values[i] !== undefined && response.values[i].length >= 3; ++i) {
-                       let number = response.values[i][0];
-                       let display_number = response.values[i][1];
+                       players.push({
+                               "number": response.values[i][0],
+                               "display_number": response.values[i][1],
+                               "text": response.values[i][2],
+                               "subtext": response.values[i][4],  // To the right of the “info” column.
+                               "image": response.values[i][5]
+                       });
+               }
+
+               // Assign fake numbers to those that have none.
+               let used_numbers = {};
+               for (const player of players) {
+                       used_numbers[player.number] = 1;
+               }
+               for (let player of players) {
+                       let num = player.number;
+                       if (num !== '' && num !== undefined) {
+                               continue;
+                       }
+                       num = parseInt(player.display_number);
+                       if (num >= 1 && num <= 999 && !used_numbers.hasOwnProperty(num)) {
+                               player.number = '' + num;
+                       }
+               }
+               for (let player of players) {
+                       let num = player.number;
+                       if (num !== '' && num !== undefined) {
+                               continue;
+                       }
+                       num = 1;
+                       while (used_numbers.hasOwnProperty(num)) { ++num; }
+                       player.number = '' + num;
+                       used_numbers[num] = 1;
+               }
+
+               for (const player of players) {
+                       let number = player.number;
+                       let display_number = player.display_number;
                        if (number === '') {
                                number = display_number;
                        }
 
-                       let text = response.values[i][2];
+                       let text = player.text;
                        if (display_number !== undefined && display_number !== '') {
                                text = "&nbsp;" + display_number + "&nbsp;&nbsp;" + text;
                        }
                        text = text.replace(/\n/, '<br />');
-                       let subtext = response.values[i][3];
+                       let subtext = player.subtext;
                        if (subtext === undefined || subtext === '') {
-                               subtext = ultimateconfig['tournament_title'];
+                               // subtext = ultimateconfig['tournament_title'];
+                               subtext = response.values[0][0];
                        }
 
                        for (const num of number.split(/;/)) {  // Support multiple numbers.
                                l3s[prefix + num] = {
                                        "num": num,
-                                       "raw_text": response.values[i][2],
+                                       "raw_text": player.text,
                                        "text": text,
                                        "subtext": subtext
                                };
-                               let image = response.values[i][4];
+                               let image = player.image;
                                if (image !== undefined && image.match(/^file:/) !== null) {
                                        l3s[prefix + num].image = image.match(/^file:(.*)/)[1];
                                }