X-Git-Url: https://git.auder.net/pieces/Cwda/n_black_bishop.svg?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=92030e74089650d9c1b697f40e38cdd6d1a40d4a;hb=e727fe31742dfb3e40eb222c94f4199e2be98453;hp=ac2e26ecf8c8f6e68f13ca9ae28703b4f7e639f0;hpb=584f81b93154313a3856112400b7df98e0eb2632;p=vchess.git diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index ac2e26ec..92030e74 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -256,7 +256,15 @@ export default { response.games.map(g => { const type = this.classifyObject(g); const vname = this.getVname(g.vid); - return Object.assign({}, g, { type: type, vname: vname }); + return Object.assign( + {}, + g, + { + type: type, + vname: vname, + priority: g.score == "*" ? 1 : 0 //for display + } + ); }) ); } @@ -324,6 +332,8 @@ export default { params.socketUrl + "/?sid=" + this.st.user.sid + + "&id=" + + this.st.user.id + "&tmpId=" + getRandString() + "&page=" + @@ -692,9 +702,11 @@ export default { let newGame = game; newGame.type = this.classifyObject(game); newGame.vname = this.getVname(game.vid); + newGame.priority = 0; if (!game.score) - //if new game from Hall + // New game from Hall newGame.score = "*"; + if (newGame.score == "*") newGame.priority++; newGame.rids = [game.rid]; delete newGame["rid"]; this.games.push(newGame); @@ -715,7 +727,10 @@ export default { } case "result": { let g = this.games.find(g => g.id == data.gid); - if (!!g) g.score = data.score; + if (!!g) { + g.score = data.score; + g.priority = 0; + } break; } case "startgame": { @@ -905,6 +920,7 @@ export default { } this.send("deletechallenge", { data: c.id }); }, + // TODO: if several players click same challenge at the same time: problem clickChallenge: async function(c) { const myChallenge = c.from.sid == this.st.user.sid || //live @@ -977,6 +993,16 @@ export default { // Send game info (only if live) to everyone except me and opponent // TODO: this double message send could be avoided. this.send("newgame", { data: gameInfo, oppsid: oppsid }); + // Also to MyGames page: + this.send( + "notifynewgame", + { + data: gameInfo, + targets: gameInfo.players.map(p => { + return { sid: p.sid, uid: p.uid }; + }) + } + ); }; if (c.type == "live") { notifyNewgame();