X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=d0012fc6ec1cb66f4f64f98466cba4f26069a8b3;hb=78d60fc852926e9ad643105d706847de49b5237e;hp=0ed355bf5cdae241da3c81b1d397c6c2081a6a14;hpb=bfa7d9931b50c1ed54ff3c6d4ef5bc423f26de94;p=vchess.git diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index 0ed355bf..d0012fc6 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -257,8 +257,7 @@ export default { connexionString: "", socketCloseListener: 0, // Related to (killing of) self multi-connects: - newConnect: {}, - killed: {} + newConnect: {} }; }, watch: { @@ -517,8 +516,10 @@ export default { filterGames: function(type) { return this.games.filter(g => g.type == type); }, + // o: challenge or game classifyObject: function(o) { - // o: challenge or game + // Consider imports as live games (TODO) + if (!!o.id && !!o.id.toString().match(/^i/)) return "live"; return o.cadence.indexOf("d") === -1 ? "live" : "corr"; }, setDisplay: function(letter, type, e) { @@ -638,13 +639,13 @@ export default { const page = data.page || "/"; if (data.code == "connect") { // Ask challenges only on first connexion: - if (!this.people[data.from]) + if (!this.people[data.from[0]]) this.send("askchallenges", { target: data.from[0] }); } // Ask game only if live: else if (!page.match(/\/[0-9]+$/)) this.send("askgame", { target: data.from[0], page: page }); - if (!this.people[data.from]) { + if (!this.people[data.from[0]]) { this.$set( this.people, data.from[0], @@ -654,7 +655,8 @@ export default { } } ); - this.newConnect[data.from] = true; //for self multi-connects tests + // For self multi-connects tests: + this.newConnect[data.from[0]] = true; this.send("askidentity", { target: data.from[0], page: page }); } else { this.people[data.from[0]].tmpIds[data.from[1]] = @@ -713,13 +715,6 @@ export default { } break; } - case "killed": - // I logged in elsewhere: - this.conn.removeEventListener("message", this.socketMessageListener); - this.conn.removeEventListener("close", this.socketCloseListener); - this.conn = null; - alert(this.st.tr["New connexion detected: tab now offline"]); - break; case "askidentity": { // Request for identification const me = { @@ -742,16 +737,16 @@ export default { this.$forceUpdate(); // If I multi-connect, kill current connexion if no mark (I'm older) if (this.newConnect[user.sid]) { + delete this.newConnect[user.sid]; if ( user.id > 0 && user.id == this.st.user.id && - user.sid != this.st.user.sid && - !this.killed[this.st.user.sid] + user.sid != this.st.user.sid ) { - this.send("killme", { sid: this.st.user.sid }); - this.killed[this.st.user.sid] = true; + // I logged in elsewhere: + this.cleanBeforeDestroy(); + alert(this.st.tr["New connexion detected: tab now offline"]); } - delete this.newConnect[user.sid]; } break; }