Attempt to fix selected piece over smartphone menu
[vchess.git] / client / src / views / Game.vue
index e83b988..51fde64 100644 (file)
@@ -14,7 +14,8 @@ main
         :newChat="newChat" @mychat="processChat")
   .row
     #aboveBoard.col-sm-12.col-md-9.col-md-offset-3.col-lg-10.col-lg-offset-2
-      span.variant-info {{ game.vname }}
+      span.variant-cadence {{ game.cadence }}
+      span.variant-name {{ game.vname }}
       button#chatBtn(onClick="doClick('modalChat')") Chat
       #actions(v-if="game.score=='*'")
         button(@click="clickDraw()" :class="{['draw-' + drawOffer]: true}")
@@ -30,8 +31,7 @@ main
           span.name(:class="{connected: isConnected(1)}")
             | {{ game.players[1].name || "@nonymous" }}
           span.time(v-if="game.score=='*'") {{ virtualClocks[1] }}
-  BaseGame(:game="game" :vr="vr" ref="basegame"
-    @newmove="processMove" @gameover="gameOver")
+  BaseGame(:game="game" :vr="vr" @newmove="processMove" @gameover="gameOver")
 </template>
 
 <script>
@@ -344,13 +344,10 @@ export default {
           this.drawOffer = "received";
           break;
         case "newchat":
-        {
-          const chat = data.data;
-          this.newChat = chat;
+          this.newChat = data.data;
           if (!document.getElementById("modalChat").checked)
-            document.getElementById("chatBtn").style.backgroundColor = "#c5fefe";
+            document.getElementById("chatBtn").classList.add("somethingnew");
           break;
-        }
       }
     },
     socketCloseListener: function() {
@@ -560,8 +557,16 @@ export default {
         GameStorage.get(this.gameRef.id, afterRetrieval);
       }
     },
-    // Post-process a move (which was just played)
+    // Post-process a move (which was just played in BaseGame)
     processMove: function(move) {
+      if (this.game.type == "corr" && move.color == this.game.mycolor)
+      {
+
+//TODO: if takeback, then time over occurs.
+
+        if (!confirm(this.st.tr["Move played:"] + " " + move.notation + "\n" + this.st.tr["Are you sure?"]))
+          return this.$set(this.game, "moveToUndo", move);
+      }
       // Update storage (corr or live) if I play in the game
       const colorIdx = ["w","b"].indexOf(move.color);
       const nextIdx = ["w","b"].indexOf(this.vr.turn);
@@ -666,7 +671,7 @@ export default {
     },
     resetChatColor: function() {
       // TODO: this is called twice, once on opening an once on closing
-      document.getElementById("chatBtn").style.backgroundColor = "#e2e2e2";
+      document.getElementById("chatBtn").classList.remove("somethingnew");
     },
     processChat: function(chat) {
       this.send("newchat", {data:chat});
@@ -686,6 +691,8 @@ export default {
       {
         GameStorage.update(this.gameRef.id,
           {score: score, scoreMsg: scoreMsg});
+        // Notify the score to main Hall. TODO: only one player (currently double send)
+        this.send("result", {gid:this.game.id, score:score});
       }
     },
   },
@@ -703,6 +710,9 @@ export default {
   color: grey
   font-style: italic
 
+#playersInfo > p
+  margin: 0
+
 @media screen and (min-width: 768px)
   #actions
     width: 300px
@@ -712,7 +722,7 @@ export default {
 
 #actions
   display: inline-block
-  margin-top: 10px
+  margin: 0
   button
     display: inline-block
     margin: 0
@@ -724,7 +734,10 @@ export default {
   #aboveBoard
     margin-left: 30%
 
-.variant-info
+.variant-cadence
+  padding-right: 10px
+
+.variant-name
   font-weight: bold
   padding-right: 10px
 
@@ -757,4 +770,7 @@ export default {
 
 .draw-threerep, .draw-threerep:hover
   background-color: #e4d1fc
+
+.somethingnew
+  background-color: #c5fefe
 </style>