-var load_l3 = function(sheet, prefix, cb)
+'use strict';
+
+function load_l3(sheet, prefix, cb)
{
- var req = new XMLHttpRequest();
+ let req = new XMLHttpRequest();
req.onload = function(e) {
- var response = JSON.parse(req.responseText);
- var l3s = [];
- var i;
+ let response = JSON.parse(req.responseText);
+ let l3s = [];
+ let i;
for (i = 0; i < response.values.length; ++i) {
- if (response.values[i][0] === 'Number') {
+ if (response.values[i][0] === 'Number' ||
+ response.values[i][0] === 'Fake #') {
++i;
break;
}
}
+ let players = [];
for ( ; response.values[i] !== undefined && response.values[i].length >= 3; ++i) {
- var number = response.values[i][0];
- var 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;
}
- var text = response.values[i][2];
+
+ let text = player.text;
if (display_number !== undefined && display_number !== '') {
text = " " + display_number + " " + text;
}
text = text.replace(/\n/, '<br />');
- var subtext = response.values[i][3];
+ let subtext = player.subtext;
if (subtext === undefined || subtext === '') {
- subtext = 'TrønDisk 2017';
+ // subtext = ultimateconfig['tournament_title'];
+ subtext = response.values[0][0];
}
- l3s[prefix + number] = {
- "text": text,
- "subtext": subtext
- };
- var image = response.values[i][4];
- if (image !== undefined && image.match(/^file:/) !== null) {
- l3s[prefix + number].image = image;
+ for (const num of number.split(/;/)) { // Support multiple numbers.
+ l3s[prefix + num] = {
+ "num": num,
+ "raw_text": player.text,
+ "text": text,
+ "subtext": subtext
+ };
+ let image = player.image;
+ if (image !== undefined && image.match(/^file:/) !== null) {
+ l3s[prefix + num].image = image.match(/^file:(.*)/)[1];
+ }
}
}
cb(l3s, sheet);
};
- req.open('GET', 'https://sheets.googleapis.com/v4/spreadsheets/1RciMlauWxqM9LYKdsY6lPjJbIAcHJpCXTqyZSEHxH3U/values/\'' + sheet + '\'!A1:J50?key=AIzaSyAuP9yQn8g0bSay6r_RpGtpFeIbwprH1TU');
+ req.open('GET', 'https://sheets.googleapis.com/v4/spreadsheets/' + ultimateconfig['roster_sheet_id'] + '/values/\'' + sheet + '\'!A1:J50?key=' + ultimateconfig['api_key']);
req.send();
};
-var current_quick_l3s = [];
+let current_quick_l3s = [];
function quicklowerthird()
{
- var code = current_quick_l3s[state['code']];
+ let code = current_quick_l3s[state['code']];
if (code === undefined) {
return;
}
document.getElementById('lowerthird-headline-content').innerHTML = code.text;
document.getElementById('lowerthird-subheading-content').innerHTML = code.subtext;
- var img = document.getElementById('lowerthird-img');
+ let img = document.getElementById('lowerthird-img');
if (code.image !== undefined) {
img.src = code.image;
img.style.display = 'inline';
function loadquickl3s(sheets)
{
- var newl3s = {};
- var num_left = 1;
+ let newl3s = {};
+ let num_left = 1;
- for (var prop in sheets) {
+ for (let prop in sheets) {
if (sheets.hasOwnProperty(prop)) {
++num_left;
}
}
- var cb = function(response, group_name) {
- for (var p in response) {
+ let cb = function(response, group_name) {
+ for (let p in response) {
if (response.hasOwnProperty(p)) {
newl3s[p] = response[p];
}
}
};
- for (var prop in sheets) {
+ for (let prop in sheets) {
if (sheets.hasOwnProperty(prop)) {
load_l3(sheets[prop], prop, cb);
}