Improvements - untested
[vchess.git] / client / src / views / Hall.vue
index a39cd54..7a7f911 100644 (file)
@@ -42,9 +42,10 @@ main
         fieldset
           label(for="cadence") {{ st.tr["Cadence"] }} *
           div#predefinedCadences
-            button(type="button") 3+2
             button(type="button") 5+3
             button(type="button") 15+5
+            button(type="button") 45+30
+            button(type="button") 7d+2d
           input#cadence(
             type="text"
             v-model="newchallenge.cadence"
@@ -237,7 +238,6 @@ export default {
       let names = {};
       response.challenges.forEach(c => {
         if (c.uid != this.st.user.id) names[c.uid] = "";
-        //unknwon for now
         else if (!!c.target && c.target != this.st.user.id)
           names[c.target] = "";
       });
@@ -751,6 +751,13 @@ export default {
         localStorage.setItem("cadence", chall.cadence);
         localStorage.setItem("vid", chall.vid);
         document.getElementById("modalNewgame").checked = false;
+        // Show the challenge if not on current display
+        if (
+          (ctype == "live" && this.cdisplay == "corr") ||
+          (ctype == "corr" && this.cdisplay == "live")
+        ) {
+          this.setDisplay('c', ctype);
+        }
       };
       if (ctype == "live") {
         // Live challenges have a random ID
@@ -799,9 +806,10 @@ export default {
           // c.to == this.st.user.name (connected)
           if (c.fen) {
             const parsedFen = V.ParseFen(c.fen);
+            c.mycolor = V.GetOppCol(parsedFen.turn);
             this.tchallDiag = getDiagram({
               position: parsedFen.position,
-              orientation: V.GetOppCol(parsedFen.turn)
+              orientation: c.mycolor
             });
             this.curChallToAccept = c;
             document.getElementById("modalAccept").checked = true;
@@ -831,7 +839,10 @@ export default {
       let gameInfo = {
         id: getRandString(),
         fen: c.fen || V.GenRandInitFen(),
-        players: shuffle([c.from, c.seat]), //white then black
+        // White player index 0, black player index 1:
+        players: c.mycolor
+          ? (c.mycolor == "w" ? [c.seat, c.from] : [c.from, c.seat])
+          : shuffle([c.from, c.seat]),
         vid: c.vid,
         cadence: c.cadence
       };
@@ -881,8 +892,8 @@ export default {
       GameStorage.add(game, (err) => {
         // If an error occurred, game is not added: abort
         if (!err) {
-          if (this.st.settings.sound >= 1)
-            new Audio("/sounds/newgame.mp3").play().catch(() => {});
+          if (this.st.settings.sound)
+            new Audio("/sounds/newgame.wav").play().catch(() => {});
           this.$router.push("/game/" + gameInfo.id);
         }
       });