X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=9b5265ad6477bb48fe514eb0a6f08ec26a0f2187;hb=d737116438d84785f2cee6661b35c18fef039a64;hp=e499d7ecfb60dedd678584da30c745181f2ec76a;hpb=4edfed6c011cd97d58d5bd8e0451cc0c1006a0a0;p=vchess.git diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index e499d7ec..9b5265ad 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -122,29 +122,37 @@ export default { return playerList; }, }, + watch: { + // Watch event "user infos retrieved" (through /whoami) + "st.user.id": function(newId) { + if (newId > 0) //should always be the case + { + // Ask server for current corr games (all but mines) + // ajax( + // "/games", + // "GET", + // {excluded: this.st.user.id}, + // response => { + // this.games = this.games.concat(response.games); + // } + // ); + // Also ask for corr challenges (open + sent to me) + ajax( + "/challenges", + "GET", + {uid: this.st.user.id}, + response => { + console.log(response.challenges); + // TODO: post-treatment on challenges ? + this.challenges = this.challenges.concat(response.challenges); + } + ); + } + }, + }, created: function() { // Always add myself to players' list this.players.push(this.st.user); - // Ask server for current corr games (all but mines) -// ajax( -// "/games", -// "GET", -// {excluded: this.st.user.id}, -// response => { -// this.games = this.games.concat(response.games); -// } -// ); - // Also ask for corr challenges (open + personal to me) - ajax( - "/challenges", - "GET", - {uid: this.st.user.id}, - response => { - console.log(response.challenges); - // TODO: post-treatment on challenges ? - this.challenges = this.challenges.concat(response.challenges); - } - ); // 0.1] Ask server for room composition: const socketOpenListener = () => { this.st.conn.send(JSON.stringify({code:"pollclients"})); @@ -387,6 +395,7 @@ export default { } case "deletechallenge": { + console.log("receive delete"); ArrayFun.remove(this.challenges, c => c.id == data.cid); break; } @@ -394,8 +403,8 @@ export default { { this.players.push({name:"", id:0, sid:data.sid}); this.st.conn.send(JSON.stringify({code:"askidentity", target:data.sid})); - this.st.conn.send(JSON.stringify({code:"askchallenge", target:sid})); - this.st.conn.send(JSON.stringify({code:"askgame", target:sid})); + this.st.conn.send(JSON.stringify({code:"askchallenge", target:data.sid})); + this.st.conn.send(JSON.stringify({code:"askgame", target:data.sid})); break; } case "disconnect": @@ -487,6 +496,9 @@ export default { // * - prepare and start new game (if challenge is full after acceptation) // * --> include challenge ID (so that opponents can delete the challenge too) clickChallenge: function(c) { + + console.log(c); + if (!!c.accepted) { this.st.conn.send(JSON.stringify({code: "withdrawchallenge", @@ -504,6 +516,7 @@ export default { else if (c.from.sid == this.st.user.sid || (this.st.user.id > 0 && c.from.id == this.st.user.id)) { + console.log("send delete"); // It's my challenge: cancel it this.sendSomethingTo(c.to, "deletechallenge", {cid:c.id}); ArrayFun.remove(this.challenges, ch => ch.id == c.id); @@ -549,8 +562,7 @@ export default { } } }, - // c.type == corr alors use id...sinon sid (figés) - // NOTE: only for live games ? + // NOTE: for live games only (corr games are launched on server) launchGame: async function(c) { // Just assign colors and pass the message const vname = this.getVname(c.vid);