commit 7a5c7f92c98f3310c0f5684f088382a9f6ab1d9b
parent e0f3047739a2c2338b74c8f47e14584752fdad8e
Author: Oshgnacknak <osh@oshgnacknak.de>
Date: Sat, 15 Dec 2018 16:12:37 +0100
Initial Comnmit
Diffstat:
A | .README.md.un~ | | | 0 | |
M | README.md | | | 6 | +++--- |
A | README.md~ | | | 3 | +++ |
M | domlib.js | | | 60 | ++++++++++++++++++++++++++++++------------------------------ |
M | index.html | | | 54 | +++++++++++++++++++++++++++--------------------------- |
M | main.js | | | 50 | +++++++++++++++++++++++++------------------------- |
M | player.js | | | 144 | ++++++++++++++++++++++++++++++++++++++++---------------------------------------- |
M | players.js | | | 4 | ++-- |
M | style.css | | | 32 | ++++++++++++++++---------------- |
9 files changed, 178 insertions(+), 175 deletions(-)
diff --git a/.README.md.un~ b/.README.md.un~
Binary files differ.
diff --git a/README.md b/README.md
@@ -1,3 +1,3 @@
-# Crosstable
-
-This is a simble web-app for Turnament-Crosstables, for example in chess roundturnaments (each vs each).
+# Crosstable
+
+This is a simple web-app for tournament-crosstables, for example in chess round tournament (each vs each).
diff --git a/README.md~ b/README.md~
@@ -0,0 +1,3 @@
+# Crosstable
+
+This is a simble web-app for Turnament-Crosstables, for example in chess roundturnaments (each vs each).
diff --git a/domlib.js b/domlib.js
@@ -1,30 +1,30 @@
-import players from "./players.js";
-
-function createElement(type, innerHTML = "", parent=null) {
- const elem = document.createElement(type);
- elem.innerHTML = innerHTML;
- if (parent) {
- parent.appendChild(elem);
- }
- return elem;
-}
-
-function updatePlayerTable() {
- player_table.innerHTML = "";
- const tr = createElement("tr", "", player_table);
- for (let s of ["Nr", "Name"]) {
- createElement("th", s, tr);
- }
- for (let s of players.map((p, i) => i+1)) {
- createElement("th", s, tr);
- }
- for (let s of ["Score", "Place"]) {
- createElement("th", s, tr);
- }
- for (let p of players) {
- p.createTr(players);
- }
-}
-
-
-export {createElement, updatePlayerTable};
+import players from "./players.js";
+
+function createElement(type, innerHTML = "", parent=null) {
+ const elem = document.createElement(type);
+ elem.innerHTML = innerHTML;
+ if (parent) {
+ parent.appendChild(elem);
+ }
+ return elem;
+}
+
+function updatePlayerTable() {
+ player_table.innerHTML = "";
+ const tr = createElement("tr", "", player_table);
+ for (let s of ["Nr", "Name"]) {
+ createElement("th", s, tr);
+ }
+ for (let s of players.map((p, i) => i+1)) {
+ createElement("th", s, tr);
+ }
+ for (let s of ["Score", "Place"]) {
+ createElement("th", s, tr);
+ }
+ for (let p of players) {
+ p.createTr(players);
+ }
+}
+
+
+export {createElement, updatePlayerTable};
diff --git a/index.html b/index.html
@@ -1,27 +1,27 @@
-<!DOCTYPE html>
-<html lang="en" dir="ltr">
-
-<head>
- <meta charset="utf-8">
- <link rel="stylesheet" href="style.css">
- <title>Crosstable</title>
-</head>
-
-<body>
- <header>
- <h1>Crosstable</h1>
- </header>
-
- <p id="player_add">
- Name: <input id="player_name_input" type="text" value="">
- <button id="player_add_button">Add Player</button>
- </p>
-
- <p>
- <table id="player_table" class="printable" border="1" cellpadding="0" cellspacing="0" >
- </table>
- </p>
- <script type="module" src="main.js" charset="utf-8"></script>
-</body>
-
-</html>
+<!DOCTYPE html>
+<html lang="en" dir="ltr">
+
+<head>
+ <meta charset="utf-8">
+ <link rel="stylesheet" href="style.css">
+ <title>Crosstable</title>
+</head>
+
+<body>
+ <header>
+ <h1>Crosstable</h1>
+ </header>
+
+ <p id="player_add">
+ Name: <input id="player_name_input" type="text" value="">
+ <button id="player_add_button">Add Player</button>
+ </p>
+
+ <p>
+ <table id="player_table" class="printable" border="1" cellpadding="0" cellspacing="0" >
+ </table>
+ </p>
+ <script type="module" src="main.js" charset="utf-8"></script>
+</body>
+
+</html>
diff --git a/main.js b/main.js
@@ -1,25 +1,25 @@
-import {createElement, updatePlayerTable} 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();
- }
-}
-
-function addPlayer(event){
- players.push(new Player(player_name_input.value, players.length));
- player_name_input.value = "";
- updatePlayerTable();
-}
-
-function main() {
- updatePlayerTable();
-}
-window.addEventListener("load", main);
-window.onbeforeunload = event => {
- return "true";
-}
+import {createElement, updatePlayerTable} 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();
+ }
+}
+
+function addPlayer(event){
+ players.push(new Player(player_name_input.value, players.length));
+ player_name_input.value = "";
+ updatePlayerTable();
+}
+
+function main() {
+ updatePlayerTable();
+}
+window.addEventListener("load", main);
+window.onbeforeunload = event => {
+ return "true";
+}
diff --git a/player.js b/player.js
@@ -1,72 +1,72 @@
-import {createElement, updatePlayerTable} from "./domlib.js";
-import players from "./players.js";
-
-export default class Player {
- constructor(name, id) {
- this.name = name;
- this.id = id;
- this.points = [];
- }
-
- createTr() {
- const tr = createElement("tr", "", player_table);
-
- for (let s of [this.id + 1, this.name]) {
- createElement("td", s, tr);
- }
-
- for (let i=0; i<players.length; i++) {
- const td = createElement("td", "", tr);
- const input = createElement("input", "", td);
- if (i == this.id) {
- input.disabled = true;
- input.value = "XXX";
- } else {
- if (this.points.length>i) {
- input.value = this.points[i] != undefined ? this.points[i] : "";
- }
- }
- input.size = 1;
- input.onkeypress = event => {
- event.preventDefault();
- let point;
- switch (event.key) {
- case "1":
- point = 1;
- break;
- case "2":
- case "5":
- case ",":
- case ".":
- point = .5;
- break;
- case "0":
- point = 0;
- break;
- default:
- return;
- }
- this.points[i] = point;
- players[i].points[this.id] = 1 - point;
- updatePlayerTable();
- }
- }
-
- for (let s of [this.getPointSum(), this.getPlace()]) {
- createElement("td", s, tr);
- }
-
- return tr;
- }
-
- getPointSum() {
- return this.points.reduce((a, b) => a + b, 0);
- }
-
- getPlace() {
- const sortedPlayers = players.map(p => {
- return {id: p.id, points: p.getPointSum()}
- }).sort((a, b) => b.points-a.points);
- return sortedPlayers.map(e => e.id).indexOf(this.id)+1;
- }
-}
+import {createElement, updatePlayerTable} from "./domlib.js";
+import players from "./players.js";
+
+export default class Player {
+ constructor(name, id) {
+ this.name = name;
+ this.id = id;
+ this.points = [];
+ }
+
+ createTr() {
+ const tr = createElement("tr", "", player_table);
+
+ for (let s of [this.id + 1, this.name]) {
+ createElement("td", s, tr);
+ }
+
+ for (let i=0; i<players.length; i++) {
+ const td = createElement("td", "", tr);
+ const input = createElement("input", "", td);
+ if (i == this.id) {
+ input.disabled = true;
+ input.value = "XXX";
+ } else {
+ if (this.points.length>i) {
+ input.value = this.points[i] != undefined ? this.points[i] : "";
+ }
+ }
+ input.size = 1;
+ input.onkeypress = event => {
+ event.preventDefault();
+ let point;
+ switch (event.key) {
+ case "1":
+ point = 1;
+ break;
+ case "2":
+ case "5":
+ case ",":
+ case ".":
+ point = .5;
+ break;
+ case "0":
+ point = 0;
+ break;
+ default:
+ return;
+ }
+ this.points[i] = point;
+ players[i].points[this.id] = 1 - point;
+ updatePlayerTable();
+ }
+ }
+
+ for (let s of [this.getPointSum(), this.getPlace()]) {
+ createElement("td", s, tr);
+ }
+
+ return tr;
+ }
+
+ getPointSum() {
+ return this.points.reduce((a, b) => a + b, 0);
+ }
+
+ getPlace() {
+ const sortedPlayers = players.map(p => {
+ return {id: p.id, points: p.getPointSum()}
+ }).sort((a, b) => b.points-a.points);
+ return sortedPlayers.map(e => e.id).indexOf(this.id)+1;
+ }
+}
diff --git a/players.js b/players.js
@@ -1,2 +1,2 @@
-const players = [];
-export default players;
+const players = [];
+export default players;
diff --git a/style.css b/style.css
@@ -1,16 +1,16 @@
-body {
- font-size: 24px;
-}
-
-table * {
- padding: 2px 5px;
-}
-
-
-table tr:nth-child(2n) {
- padding: 2px;
-}
-
-*:not(.printable *, .printable) {
- display: none;
-}
+body {
+ font-size: 24px;
+}
+
+table * {
+ padding: 2px 5px;
+}
+
+
+table tr:nth-child(2n) {
+ padding: 2px;
+}
+
+*:not(.printable *, .printable) {
+ display: none;
+}