From: Benjamin Auder Date: Tue, 16 Jul 2019 16:42:43 +0000 (+0200) Subject: Small improvement in Hall X-Git-Url: https://git.auder.net/%7B%7B%20asset%28%27mixstore/css/img/doc/pieces/cb.svg?a=commitdiff_plain;h=40477190d905a715d59a800279a20da4ef8135ed;p=vchess.git Small improvement in Hall --- diff --git a/client/src/views/Game.vue b/client/src/views/Game.vue index 5eeb7fd5..803751eb 100644 --- a/client/src/views/Game.vue +++ b/client/src/views/Game.vue @@ -211,6 +211,7 @@ export default { break; } }; + // TODO: onopen, ask lastState informations + update observers and players status const socketCloseListener = () => { this.st.conn.addEventListener('message', socketMessageListener); this.st.conn.addEventListener('close', socketCloseListener); diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index ae45e658..afa2173d 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -141,7 +141,7 @@ export default { response => { console.log(response.challenges); // TODO: post-treatment on challenges ? - this.challenges = this.challenges.concat(response.challenges); + Array.prototype.push.apply(this.challenges, response.challenges); } ); } @@ -466,12 +466,14 @@ export default { console.log("click challenge"); console.log(c); - if (c.from.sid == this.st.user.sid - || (this.st.user.id > 0 && c.from.id == this.st.user.id)) + // In all cases, the challenge is consumed: + ArrayFun.remove(this.challenges, ch => ch.id == c.id); + + if (c.from.sid == this.st.user.sid //live + || (this.st.user.id > 0 && c.from.id == this.st.user.id)) //corr { // It's my challenge: cancel it this.sendSomethingTo(c.to, "deletechallenge", {cid:c.id}); - ArrayFun.remove(this.challenges, ch => ch.id == c.id); if (c.type == "corr") { ajax( @@ -492,30 +494,13 @@ export default { this.st.conn.send(JSON.stringify({ code: (c.accepted ? "accept" : "refuse") + "challenge", cid: c.id, target: c.from.sid})); - if (c.accepted) - { - if (c.type == "corr") - { - ajax( - "/challenges", - "PUT", - {id: this.challenges[cIdx].id} - ); - } - } - else + if (c.type == "corr") { - ArrayFun.remove(this.challenges, ch => ch.id == c.id); - if (!c.to) //TODO: send to everyone except me and opponent ? - this.sendSomethingTo("", "deletechallenge", {cid: this.challenges[cIdx].id}); - if (c.type == "corr") - { - ajax( - "/challenges", - "DELETE", - {id: this.challenges[cIdx].id} - ); - } + ajax( + "/challenges", + accepted ? "PUT" : "DELETE", + {id: this.challenges[cIdx].id} + ); } } },