From: Benjamin Auder
Date: Thu, 28 Dec 2017 13:49:00 +0000 (+0100)
Subject: 'Toto' player handling, fix ranking, cosmetics
X-Git-Url: https://git.auder.net/js/current/app_dev.php/img/%7B%7B?a=commitdiff_plain;h=fd4a69e4ea369afb39c01f1207d79b0ab2d4cc8e;p=westcastle.git
'Toto' player handling, fix ranking, cosmetics
---
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..fe69cc4
--- /dev/null
+++ b/README.md
@@ -0,0 +1,23 @@
+## Prérequis
+
+php (assez récent)
+
+## Ajustement du fichier de données
+
+ 1. Renommer joueurs.csv.dist en joueurs.csv
+ 2. éditer joueurs.csv (ajout de joueurs, édition, suppression...). Format en lignes : prénom,nom[,score,pdt,présent]
+
+pdt = "points de table". score,pdt,présent : optionnels (défaut 0, 0, 1)
+
+## Lancement de l'aplication
+
+ - [Linux] Double click sur "westcastle.sh", ou lancement depuis un terminal
+ - [Windows,MacOS] `php -S localhost:8000` puis naviguer vers index.html
+
+## Utilisation
+
+ 1. Cliquer sur les joueurs absents dans l'onglet "joueurs"
+ 2. Aller dans la section "appariements" et cliquer sur le bouton en haut
+ 3. À la fin d'une ronde, cliquer sur chaque table pour indiquer les points. Pour lancer la ronde suivante, revenir en 1)
+
+Le classement est mis à jour dans la rubrique correspondante et dans joueurs.csv
diff --git a/css/index.css b/css/index.css
index 015c6f8..54022f6 100644
--- a/css/index.css
+++ b/css/index.css
@@ -69,6 +69,7 @@ table th {
#players {
overflow: auto;
+ margin-bottom: 15px;
}
#players p {
@@ -116,6 +117,10 @@ table.list tr:not(.title):hover, table.ranking tr:not(.title):nth-child(even):ho
/* ranking div */
+#ranking {
+ margin-bottom: 15px;
+}
+
table.ranking {
border-collapse: collapse;
width: 500px;
@@ -171,6 +176,10 @@ button.cancel:hover {
background-image: linear-gradient(to bottom, #fc433c, #d93434);
}
+.toto {
+ color: darkgrey;
+}
+
.scored {
background-color: lightgreen;
}
diff --git a/js/index.js b/js/index.js
index 944a51b..870be76 100644
--- a/js/index.js
+++ b/js/index.js
@@ -21,7 +21,7 @@ new Vue({
Absents
-
+
{{ p.prenom }} |
{{ p.nom }} |
@@ -61,8 +61,8 @@ new Vue({
Score |
PdT |
-
- {{ i+1 }} |
+
+ {{ p.rank }} |
{{ p.prenom }} {{ p.nom }} |
{{ p.score }} |
{{ p.pdt }} |
@@ -70,14 +70,24 @@ new Vue({
`,
- computed: {
+ computed: { //TODO: first sort on score, then on Pdt (and reciprocally) --> function add fraction relative Pdt / score (compute min max first, take care of 0 case)
sortedPlayers: function() {
let sortFunc = this.sortMethod == "score"
? this.sortByScore
: this.sortByPdt;
- return this.players
- .map( p => { return p; }) //to not alter original array
+ let res = this.players
+ .map( p => { return Object.assign({}, p); }) //to not alter original array
.sort(sortFunc);
+ // Add rank information (taking care of ex-aequos)
+ let rank = 1;
+ for (let i=0; iTable {{ index+1 }}
- {{ players[i].prenom }} {{ players[i].nom }} |
+ {{ players[i].prenom }} {{ players[i].nom }} |
{{ pdts[index][j] }} |
-
- |
- |
-
@@ -128,7 +134,9 @@ new Vue({