X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=0fd8322cd876a83332b5f2d07a25b80e70ee2a83;hb=98f485791e915563996de4f37430b285ffc773ae;hp=19f2e77db56f22ac3e37908ff113eea514fb42ff;hpb=77fd729819118d491ff91c1d99960add2ef9cff3;p=vchess.git diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index 19f2e77d..0fd8322c 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -101,7 +101,7 @@ export default { fen: "", vid: 0, nbPlayers: 0, - to: ["", "", ""], //name of challenged players + to: ["", "", ""], //name(s) of challenged player(s) timeControl: "", //"2m+2s" ...etc }, }; @@ -125,22 +125,29 @@ export default { created: function() { // Always add myself to players' list this.players.push(this.st.user); + if (this.st.user.id > 0) + { // Ask server for current corr games (all but mines) // ajax( -// "", +// "/games", // "GET", +// {excluded: this.st.user.id}, // response => { -// -// } -// ); - // // Also ask for corr challenges (all) --> + accepted status if I play -// ajax( -// "", -// "GET", -// 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); + } + ); + } // 0.1] Ask server for room composition: const socketOpenListener = () => { this.st.conn.send(JSON.stringify({code:"pollclients"})); @@ -390,8 +397,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": @@ -422,7 +429,7 @@ export default { if (!!error) return alert(error); const ctype = this.classifyObject(this.newchallenge); - const cto = this.newchallenge.to.slice(0, this.newchallenge.nbPlayers); + const cto = this.newchallenge.to.slice(0, this.newchallenge.nbPlayers - 1); // NOTE: "from" information is not required here let chall = { @@ -483,6 +490,10 @@ 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("click challenge"); + console.log(c); + if (!!c.accepted) { this.st.conn.send(JSON.stringify({code: "withdrawchallenge", @@ -520,16 +531,15 @@ export default { // TODO: if special FEN, show diagram after loading variant c.accepted = confirm("Accept challenge?"); } - const action = (c.accepted ? "accept" : "refuse"); this.st.conn.send(JSON.stringify({ - code: action + "challenge", + code: (c.accepted ? "accept" : "refuse") + "challenge", cid: c.id, target: c.from.sid})); - if (c.type == "corr") + if (c.type == "corr" && c.accepted) { ajax( "/challenges", "PUT", - {action: action, id: this.challenges[cIdx].id} + {action: "accept", id: this.challenges[cIdx].id} ); } if (!c.accepted) @@ -546,8 +556,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); @@ -584,7 +593,6 @@ export default { localStorage["increment"] = tc.increment; localStorage["started"] = JSON.stringify( [...Array(gameInfo.players.length)].fill(false)); - localStorage["mysid"] = this.st.user.sid; localStorage["vname"] = this.getVname(gameInfo.vid); localStorage["fenInit"] = gameInfo.fen; localStorage["players"] = JSON.stringify(gameInfo.players);