From d754fdb7e7a7492276b1223c1180a2393c816014 Mon Sep 17 00:00:00 2001 From: Claude Brisson Date: Sun, 14 Apr 2024 10:57:58 +0200 Subject: [PATCH] Handle clicks on participation disks --- view-webapp/src/main/sass/tour.scss | 1 + .../main/webapp/js/tour-registration.inc.js | 23 ++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/view-webapp/src/main/sass/tour.scss b/view-webapp/src/main/sass/tour.scss index 009d011..53dc6a9 100644 --- a/view-webapp/src/main/sass/tour.scss +++ b/view-webapp/src/main/sass/tour.scss @@ -101,6 +101,7 @@ .participation { white-space: nowrap; .ui.label { + cursor: pointer; font-size: 0.8rem; min-width: 2em; min-height: 2em; diff --git a/view-webapp/src/main/webapp/js/tour-registration.inc.js b/view-webapp/src/main/webapp/js/tour-registration.inc.js index 631d17b..7fec09a 100644 --- a/view-webapp/src/main/webapp/js/tour-registration.inc.js +++ b/view-webapp/src/main/webapp/js/tour-registration.inc.js @@ -249,7 +249,7 @@ onLoad(() => { } }); $('#players > tbody > tr').on('click', e => { - let regStatus = e.target.closest('td.reg-status'); + let regStatus = e.target.closest('td.reg-status, td.participating'); if (regStatus) return; let id = e.target.closest('tr').attr('data-id'); api.getJson(`tour/${tour_id}/part/${id}`) @@ -472,4 +472,25 @@ onLoad(() => { $('.player-fields').on('change input', e => { $('#register').removeClass('disabled'); }); + $('.participation label').on('click', e => { + let part = e.target; + let id = part.closest('tr').data('id'); + let round = parseInt(part.text()); + let skip = new Set(part.closest('.participation').find('label.red').map(it => parseInt(it.innerText))); + if (skip.has(round)) skip.delete(round); + else skip.add(round); + api.putJson(`tour/${tour_id}/part/${id}`, { + id: id, + skip: Array.from(skip) + }).then(player => { + if (player !== 'error') { + part.toggleClass('red'); + part.toggleClass('green'); + standingsUpToDate = false; + pairablesUpToDate = false; + } + }); + e.preventDefault(); + return false; + }); });