Crosstable

A simple web-app for tournament-crosstables, for example in chess round tournament (each vs each).
git clone git://git.oshgnacknak.de/Crosstable.git
Log | Files | Refs | README

commit 106aa3a629e5544b2ee1cf3b0bba27c3613bcbb2
parent ce00a7951979e861adbb7e0e22594656a09f41ed
Author: Oshgnacknak <osh@oshgnacknak.de>
Date:   Sun, 16 Dec 2018 12:22:24 +0100

Remove player feature

Diffstat:
Mdomlib.js | 9++++++++-
Mindex.html | 3+++
Mmain.js | 27+++++++++++++++++++--------
3 files changed, 30 insertions(+), 9 deletions(-)

diff --git a/domlib.js b/domlib.js @@ -26,5 +26,12 @@ function updatePlayerTable() { } } +function onEnter(callback) { + return function(event) { + if (event.keyCode == 13) { + callback(event); + } + } +} -export {createElement, updatePlayerTable}; +export {createElement, updatePlayerTable, onEnter}; diff --git a/index.html b/index.html @@ -19,6 +19,9 @@ <p id="player_add"> Name: <input id="player_name_input" type="text" value=""> <button id="player_add_button">Add Player</button> + <br> + ID: <input id="player_id_input" type="number" value=""> + <button id="player_remove_button">Remove Player</button> </p> <p> diff --git a/main.js b/main.js @@ -1,25 +1,36 @@ -import {createElement, updatePlayerTable} from "./domlib.js"; +import {createElement, updatePlayerTable, onEnter} from "./domlib.js"; import players from "./players.js"; import Player from "./player.js"; player_add_button.onclick = addPlayer; -player_name_input.onkeypress = event => { - if (event.keyCode == 13) { - addPlayer(); - } -} +player_name_input.onkeypress = onEnter(addPlayer); -function addPlayer(event){ +player_remove_button.onclick = removePlayer; +player_id_input.onkeypress = onEnter(removePlayer); + +function addPlayer(){ players.push(new Player(player_name_input.value, players.length)); player_name_input.value = ""; updatePlayerTable(); } +function removePlayer(){ + const id = player_id_input.value-1; + if (isNaN(id) || id < 0) { + return; + } + players.splice(id, 1); + for (let i = id; i < players.length; i++) { + players[i].id = i; + } + updatePlayerTable(); +} + function main() { updatePlayerTable(); } window.addEventListener("load", main); window.onbeforeunload = event => { - return "true"; + return players.length > 0; }