socket rooms correspnding to pages. TODO: Hall+Game (split live and corr? shared...
[vchess.git] / client / src / views / Hall.vue
index 82330ef..a8dfa98 100644 (file)
@@ -90,7 +90,7 @@ export default {
       gdisplay: "live",
       games: [],
       challenges: [],
-      people: [], //(all) online players
+      people: [], //people in main hall
       infoMessage: "",
       newchallenge: {
         fen: "",
@@ -381,8 +381,8 @@ export default {
           else
           {
             this.infoMessage = "New game started: " +
-              "<a href='/game/" + data.gameInfo.gameId + "'>" +
-              "/game/" + data.gameInfo.gameId + "</a>";
+              "<a href='#/game/" + data.gameInfo.gameId + "'>" +
+              "#/game/" + data.gameInfo.gameId + "</a>";
             let modalBox = document.getElementById("modalInfo");
             modalBox.checked = true;
             setTimeout(() => { modalBox.checked = false; }, 3000);
@@ -550,20 +550,29 @@ export default {
         if (!!opponent)
           target = opponent.sid
       }
-      if (!!target) //opponent is online
-      {
-        this.st.conn.send(JSON.stringify({code:"newgame",
-          gameInfo:gameInfo, target:target, cid:c.id}));
-      }
+      const tryNotifyOpponent = () => {
+        if (!!target) //opponent is online
+        {
+          this.st.conn.send(JSON.stringify({code:"newgame",
+            gameInfo:gameInfo, target:target, cid:c.id}));
+        }
+      };
       if (c.type == "live")
+      {
+        tryNotifyOpponent();
         this.startNewGame(gameInfo);
+      }
       else //corr: game only on server
       {
         ajax(
           "/games",
           "POST",
           {gameInfo: gameInfo, cid: c.id}, //cid useful to delete challenge
-          response => { this.$router.push("/game/" + response.gameId); }
+          response => {
+            gameInfo.gameId = response.gameId;
+            tryNotifyOpponent();
+            this.$router.push("/game/" + response.gameId);
+          }
         );
       }
     },
@@ -572,7 +581,7 @@ export default {
       const game = Object.assign({}, gameInfo, {
         // (other) Game infos: constant
         fenStart: gameInfo.fen,
-        created: Date.now(),
+        added: Date.now(),
         // Game state (including FEN): will be updated
         moves: [],
         clocks: [-1, -1], //-1 = unstarted