From a1e792a7a3221797adeb013e92882ff25bd9a48e Mon Sep 17 00:00:00 2001 From: "Steinar H. Gunderson" Date: Mon, 14 Oct 2019 20:39:09 +0200 Subject: [PATCH] Various automatic roster sort improvements. --- quickhelp.js | 16 +++++++++++++--- quickl3.js | 20 ++++++++++++-------- roster.js | 10 ++++++++++ 3 files changed, 35 insertions(+), 11 deletions(-) diff --git a/quickhelp.js b/quickhelp.js index 8c8f2ff..f74f3e0 100644 --- a/quickhelp.js +++ b/quickhelp.js @@ -6,13 +6,23 @@ function make_ul_help(response, group_name, id) { let ul = document.getElementById(id); ul.innerHTML = ""; + + let keys = []; for (let p in response) { if (response.hasOwnProperty(p)) { - let li = document.createElement('li'); - li.innerHTML = "" + p + ": " + response[p].raw_text; - ul.appendChild(li); + keys.push(p); } } + + keys.sort(function(a, b) { + return response[a]['num'] - response[b]['num']; + }); + + for (const p of keys) { + let li = document.createElement('li'); + li.innerHTML = "" + p + ": " + response[p].raw_text; + ul.appendChild(li); + } } function updatequickhelp(id, prefix) { diff --git a/quickl3.js b/quickl3.js index aef04f3..61628aa 100644 --- a/quickl3.js +++ b/quickl3.js @@ -21,6 +21,7 @@ function load_l3(sheet, prefix, cb) if (number === '') { number = display_number; } + let text = response.values[i][2]; if (display_number !== undefined && display_number !== '') { text = " " + display_number + "  " + text; @@ -31,14 +32,17 @@ function load_l3(sheet, prefix, cb) subtext = ultimateconfig['tournament_title']; } - l3s[prefix + number] = { - "raw_text": response.values[i][2], - "text": text, - "subtext": subtext - }; - let image = response.values[i][4]; - if (image !== undefined && image.match(/^file:/) !== null) { - l3s[prefix + number].image = image.match(/^file:(.*)/)[1]; + for (const num of number.split(/;/)) { // Support multiple numbers. + l3s[prefix + num] = { + "num": num, + "raw_text": response.values[i][2], + "text": text, + "subtext": subtext + }; + let image = response.values[i][4]; + if (image !== undefined && image.match(/^file:/) !== null) { + l3s[prefix + num].image = image.match(/^file:(.*)/)[1]; + } } } cb(l3s, sheet); diff --git a/roster.js b/roster.js index 638b373..14f1cb4 100644 --- a/roster.js +++ b/roster.js @@ -31,6 +31,16 @@ function load_roster(sheet, cb) "name": name }); } + roster.sort(function(a, b) { + let an = a['number']; + let bn = b['number']; + if (!(parseInt(an) > 0)) an = 1000; + if (!(parseInt(bn) > 0)) bn = 1000; + if (an !== bn) { + return an - bn; + } + return a['name'].localeCompare(b['name']); + }); cb(team_name, roster); }; req.open('GET', 'https://sheets.googleapis.com/v4/spreadsheets/' + ultimateconfig['roster_sheet_id'] + '/values/\'' + sheet + '\'!A1:J50?key=' + ultimateconfig['api_key']); -- 2.39.2