Some small enhancements and fixes
authorBenjamin Auder <benjamin.auder@somewhere>
Mon, 9 Mar 2020 02:25:37 +0000 (03:25 +0100)
committerBenjamin Auder <benjamin.auder@somewhere>
Mon, 9 Mar 2020 02:25:37 +0000 (03:25 +0100)
client/src/App.vue
client/src/main.js
client/src/translations/en.js
client/src/translations/es.js
client/src/translations/fr.js
client/src/views/Game.vue
client/src/views/Hall.vue
server/db/create.sql

index 78cd10b..3839976 100644 (file)
@@ -64,7 +64,6 @@ export default {
   },
   methods: {
     hideDrawer: function(e) {
   },
   methods: {
     hideDrawer: function(e) {
-      if (e.target.innerText == "Forum") return; //external link
       e.preventDefault(); //TODO: why is this needed?
       document.getElementsByClassName("drawer")[0].checked = false;
     }
       e.preventDefault(); //TODO: why is this needed?
       document.getElementsByClassName("drawer")[0].checked = false;
     }
index 7e9ce9c..f2e38f1 100644 (file)
@@ -11,9 +11,11 @@ new Vue({
     return h(App);
   },
   created: function() {
     return h(App);
   },
   created: function() {
+    // Several interactions on clicks on elements:
     window.doClick = elemId => {
       document.getElementById(elemId).click();
     };
     window.doClick = elemId => {
       document.getElementById(elemId).click();
     };
+    // Esc key can close modals:
     document.addEventListener("keydown", e => {
       if (e.code === "Escape") {
         let modalBoxes = document.querySelectorAll("[id^='modal']");
     document.addEventListener("keydown", e => {
       if (e.code === "Escape") {
         let modalBoxes = document.querySelectorAll("[id^='modal']");
index 5b90af7..f0a5942 100644 (file)
@@ -87,6 +87,7 @@ export const translations = {
   Observe: "Observe",
   "Offer draw?": "Offer draw?",
   "Opponent action": "Opponent action",
   Observe: "Observe",
   "Offer draw?": "Offer draw?",
   "Opponent action": "Opponent action",
+  "Participant(s):": "Participant(s):",
   "Play with?": "Play with?",
   Players: "Players",
   "Please log in to accept corr challenges": "Please log in to accept corr challenges",
   "Play with?": "Play with?",
   Players: "Players",
   "Please log in to accept corr challenges": "Please log in to accept corr challenges",
@@ -97,7 +98,6 @@ export const translations = {
   Previous: "Previous",
   "Processing... Please wait": "Processing... Please wait",
   Problems: "Problems",
   Previous: "Previous",
   "Processing... Please wait": "Processing... Please wait",
   Problems: "Problems",
-  "participant(s):": "participant(s):",
   "Random?": "Random?",
   "Randomness": "Randomness",
   "Randomness against computer": "Randomness against computer",
   "Random?": "Random?",
   "Randomness": "Randomness",
   "Randomness against computer": "Randomness against computer",
index f647a9b..b79df7e 100644 (file)
@@ -87,6 +87,7 @@ export const translations = {
   "Offer draw?": "¿Ofrecer tablas?",
   Observe: "Observar",
   "Opponent action": "Acción del adversario",
   "Offer draw?": "¿Ofrecer tablas?",
   Observe: "Observar",
   "Opponent action": "Acción del adversario",
+  "Participant(s):": "Participante(s):",
   "Play with?": "¿Jugar con?",
   Players: "Jugadores",
   "Please log in to accept corr challenges": "Inicia sesión para aceptar los desafíos por correspondencia",
   "Play with?": "¿Jugar con?",
   Players: "Jugadores",
   "Please log in to accept corr challenges": "Inicia sesión para aceptar los desafíos por correspondencia",
@@ -97,7 +98,6 @@ export const translations = {
   Previous: "Anterior",
   "Processing... Please wait": "Procesando... por favor espere",
   Problems: "Problemas",
   Previous: "Anterior",
   "Processing... Please wait": "Procesando... por favor espere",
   Problems: "Problemas",
-  "participant(s):": "participante(s):",
   "Random?": "Aleatorio?",
   "Randomness": "Grado de azar",
   "Randomness against computer": "Grado de azar contra la computadora",
   "Random?": "Aleatorio?",
   "Randomness": "Grado de azar",
   "Randomness against computer": "Grado de azar contra la computadora",
index e7121ca..2cbc6d2 100644 (file)
@@ -87,6 +87,7 @@ export const translations = {
   "Offer draw?": "Proposer nulle ?",
   Observe: "Observer",
   "Opponent action": "Action de l'adversaire",
   "Offer draw?": "Proposer nulle ?",
   Observe: "Observer",
   "Opponent action": "Action de l'adversaire",
+  "Participant(s):": "Participant(s) :",
   "Play with?": "Jouer avec ?",
   Players: "Joueurs",
   "Please log in to accept corr challenges": "Identifiez vous pour accepter des défis par correspondance",
   "Play with?": "Jouer avec ?",
   Players: "Joueurs",
   "Please log in to accept corr challenges": "Identifiez vous pour accepter des défis par correspondance",
@@ -97,7 +98,6 @@ export const translations = {
   Previous: "Précédent",
   "Processing... Please wait": "Traitement en cours... Attendez SVP",
   Problems: "Problèmes",
   Previous: "Précédent",
   "Processing... Please wait": "Traitement en cours... Attendez SVP",
   Problems: "Problèmes",
-  "participant(s):": "participant(s) :",
   "Random?": "Aléatoire?",
   "Randomness": "Degré d'aléa",
   "Randomness against computer": "Degré d'aléa contre l'ordinateur",
   "Random?": "Aléatoire?",
   "Randomness": "Degré d'aléa",
   "Randomness against computer": "Degré d'aléa contre l'ordinateur",
index 282a371..d920053 100644 (file)
@@ -11,7 +11,7 @@ main
     .card
       label.modal-close(for="modalChat")
       #participants
     .card
       label.modal-close(for="modalChat")
       #participants
-        span {{ Object.keys(people).length + " " + st.tr["participant(s):"] }} 
+        span {{ st.tr["Participant(s):"] }} 
         span(
           v-for="p in Object.values(people)"
           v-if="p.focus && !!p.name"
         span(
           v-for="p in Object.values(people)"
           v-if="p.focus && !!p.name"
index 271c0bc..9656c96 100644 (file)
@@ -15,8 +15,11 @@ main
         span.variantName {{ curChallToAccept.vname }} 
         span {{ curChallToAccept.cadence }} 
         span {{ st.tr["with"] + " " + curChallToAccept.from.name }}
         span.variantName {{ curChallToAccept.vname }} 
         span {{ curChallToAccept.cadence }} 
         span {{ st.tr["with"] + " " + curChallToAccept.from.name }}
-      .diagram(v-html="tchallDiag")
-      .button-group#buttonsTchall
+      .diagram(
+        v-if="!!curChallToAccept.fen"
+        v-html="tchallDiag"
+      )
+      .button-group#buttonsTchall(:style="tchallButtonsMargin()")
         button.acceptBtn(@click="decisionChallenge(true)")
           span {{ st.tr["Accept challenge?"] }}
         button.refuseBtn(@click="decisionChallenge(false)")
         button.acceptBtn(@click="decisionChallenge(true)")
           span {{ st.tr["Accept challenge?"] }}
         button.refuseBtn(@click="decisionChallenge(false)")
@@ -117,7 +120,7 @@ main
       .button-group
         button#peopleBtn(onClick="window.doClick('modalPeople')")
           | {{ st.tr["Who's there?"] }}
       .button-group
         button#peopleBtn(onClick="window.doClick('modalPeople')")
           | {{ st.tr["Who's there?"] }}
-        button(onClick="window.doClick('modalNewgame')")
+        button(@click="showNewchallengeForm()")
           | {{ st.tr["New game"] }}
   .row
     .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
           | {{ st.tr["New game"] }}
   .row
     .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
@@ -363,7 +366,20 @@ export default {
           : "losefocus"
       );
     },
           : "losefocus"
       );
     },
-    // Helpers:
+    partialResetNewchallenge: function() {
+      // Reset potential target and custom FEN:
+      this.newchallenge.to = "";
+      this.newchallenge.fen = "";
+      this.newchallenge.diag = "";
+    },
+    showNewchallengeForm: function() {
+      this.partialResetNewchallenge();
+      window.doClick("modalNewgame");
+    },
+    tchallButtonsMargin: function() {
+      if (!!this.curChallToAccept.fen) return { "margin-top": "10px" };
+      return {};
+    },
     cadenceFocusIfOpened: function() {
       if (event.target.checked)
         document.getElementById("cadence").focus();
     cadenceFocusIfOpened: function() {
       if (event.target.checked)
         document.getElementById("cadence").focus();
@@ -416,7 +432,8 @@ export default {
       );
     },
     challenge: function(sid) {
       );
     },
     challenge: function(sid) {
-      // Available, in Hall (only)
+      this.partialResetNewchallenge();
+      // Available, in Hall
       this.newchallenge.to = this.people[sid].name;
       document.getElementById("modalPeople").checked = false;
       window.doClick("modalNewgame");
       this.newchallenge.to = this.people[sid].name;
       document.getElementById("modalPeople").checked = false;
       window.doClick("modalNewgame");
@@ -911,17 +928,11 @@ export default {
               position: parsedFen.position,
               orientation: c.mycolor
             });
               position: parsedFen.position,
               orientation: c.mycolor
             });
-            this.curChallToAccept = c;
-            document.getElementById("modalAccept").checked = true;
-          }
-          else {
-            if (!confirm(this.st.tr["Accept challenge?"]))
-              c.accepted = false;
-            this.finishProcessingChallenge(c);
           }
           }
+          this.curChallToAccept = c;
+          document.getElementById("modalAccept").checked = true;
         }
         }
-        else
-          this.finishProcessingChallenge(c);
+        else this.finishProcessingChallenge(c);
       }
       else {
         // My challenge
       }
       else {
         // My challenge
@@ -1071,7 +1082,7 @@ button.refuseBtn
   background-color: red
 
 #buttonsTchall
   background-color: red
 
 #buttonsTchall
-  margin-top: 10px
+  // margin-top set dynamically (depends if diagram showed or not)
   & > button > span
     width: 100%
     text-align: center
   & > button > span
     width: 100%
     text-align: center
index c9f5232..8f3daa8 100644 (file)
@@ -58,6 +58,7 @@ create table Games (
   score varchar default '*',
   scoreMsg varchar,
   cadence varchar,
   score varchar default '*',
   scoreMsg varchar,
   cadence varchar,
+  randomness integer, --for rematch
   created datetime,
   drawOffer character default '',
   rematchOffer character default '',
   created datetime,
   drawOffer character default '',
   rematchOffer character default '',