X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=cb08808832af5d71b0159e601fd57aa589b9a3cf;hb=5b18515f0b7dbfab8a2770d9b0fc7aace09267dc;hp=9d9df92a7ff3af9ad7853bdadee936f04627a0a2;hpb=d2b314163a13f59426baac62792d3a0dd5bea92a;p=vchess.git diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index 9d9df92a..cb088088 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -99,7 +99,7 @@ main button(@click="issueNewChallenge()") {{ st.tr["Send challenge"] }} input#modalPeople.modal( type="checkbox" - @click="resetSocialColor()" + @click="toggleSocialColor()" ) div#peopleWrap( role="dialog" @@ -135,7 +135,7 @@ main .row .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 .button-group - button#peopleBtn(@click="openModalPeople()") + button#peopleBtn(onClick="window.doClick('modalPeople')") | {{ st.tr["Who's there?"] }} button(@click="showNewchallengeForm()") | {{ st.tr["New game"] }} @@ -186,13 +186,13 @@ main GameList( v-show="gdisplay=='live'" :games="filterGames('live')" - :showBoth="true" + :show-both="true" @show-game="showGame" ) div(v-show="gdisplay=='corr'") GameList( :games="filterGames('corr')" - :showBoth="true" + :show-both="true" @show-game="showGame" ) button#loadMoreBtn( @@ -322,7 +322,13 @@ export default { ); }, mounted: function() { - ["peopleWrap", "infoDiv", "newgameDiv"].forEach(eltName => { + document.getElementById("peopleWrap") + .addEventListener("click", (e) => { + processModalClick(e, () => { + this.toggleSocialColor("close") + }); + }); + ["infoDiv", "newgameDiv"].forEach(eltName => { document.getElementById(eltName) .addEventListener("click", processModalClick); }); @@ -423,10 +429,6 @@ export default { ["random-" + pc.randomness]: true }; }, - openModalPeople: function() { - window.doClick("modalPeople"); - document.getElementById("inputChat").focus(); - }, anonymousCount: function() { let count = 0; Object.values(this.people).forEach(p => { @@ -519,7 +521,7 @@ export default { // o: challenge or game classifyObject: function(o) { // Consider imports as live games (TODO) - if (!!o.id && !!o.id.match(/^i/)) return "live"; + if (!!o.id && !!o.id.toString().match(/^i/)) return "live"; return o.cadence.indexOf("d") === -1 ? "live" : "corr"; }, setDisplay: function(letter, type, e) { @@ -577,9 +579,11 @@ export default { // ==> Moves sent by connected remote player(s) if live game this.$router.push("/game/" + g.id); }, - resetSocialColor: function() { - // TODO: this is called twice, once on opening an once on closing - document.getElementById("peopleBtn").classList.remove("somethingnew"); + toggleSocialColor: function(action) { + if (!action && document.getElementById("modalPeople").checked) + document.getElementById("inputChat").focus(); + else + document.getElementById("peopleBtn").classList.remove("somethingnew"); }, processChat: function(chat) { this.send("newchat", { data: chat }); @@ -1178,10 +1182,13 @@ export default { // NOTE: when launching game, the challenge is already being deleted launchGame: function(c) { // White player index 0, black player index 1: - const players = + let players = !!c.mycolor ? (c.mycolor == "w" ? [c.seat, c.from] : [c.from, c.seat]) : shuffle([c.from, c.seat]); + players.forEach(p => { + if (!!p["tmpIds"]) delete p["tmpIds"]; + }); // These game informations will be shared let gameInfo = { id: getRandString(),