X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=bdb280509ff9a7a991a09f6e201cfba9d5ac0e25;hb=c55f90a29815f68dc24a912370db8f6ff9360f8e;hp=db483e1d15618f3d9194f76f61ded6e9451adde6;hpb=7c4601d007042510ea2aad95a081d6fe83aab938;p=vchess.git diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue index db483e1d..bdb28050 100644 --- a/client/src/views/Hall.vue +++ b/client/src/views/Hall.vue @@ -172,9 +172,11 @@ main th {{ st.tr["Options"] }} th tbody + // TODO: remove the check !!pc.options tr( v-for="pc in presetChalls" @click="newChallFromPreset(pc)" + v-if="!!pc.options" ) td {{ pc.vname }} td {{ pc.cadence }} @@ -848,7 +850,7 @@ export default { id: c.id, from: this.st.user.sid, to: c.to, - options: c.options, + options: JSON.stringify(c.options), fen: c.fen, vid: c.vid, cadence: c.cadence, @@ -907,6 +909,8 @@ export default { if (!game.score) // New game from Hall newGame.score = "*"; + // TODO: remove patch on next line (options || "{}") + newGame.options = JSON.parse(newGame.options || "{}"); this.games.push(newGame); if ( newGame.score == '*' && @@ -927,9 +931,12 @@ export default { } case "startgame": { // New game just started, I'm involved - const gameInfo = data.data; - if (this.classifyObject(gameInfo) == "live") + let gameInfo = data.data; + if (this.classifyObject(gameInfo) == "live") { + // TODO: remove patch on next line (+ const gameInfo) + if (!gameInfo.options) gameInfo.options = "{}"; this.startNewGame(gameInfo); + } else { this.infoMessage = this.st.tr["New correspondence game:"] + " " + @@ -973,6 +980,7 @@ export default { let moreGames = res.games.map(g => { this.setVname(g); g.type = "corr"; + g.options = JSON.parse(g.options); return g; }); this.games = this.games.concat(moreGames); @@ -992,7 +1000,8 @@ export default { ) { let newChall = Object.assign({}, chall); newChall.type = this.classifyObject(chall); - newChall.options = chall.options; + // TODO: remove patch on next line (options || "{}") + newChall.options = JSON.parse(chall.options || "{}"); newChall.added = Date.now(); let fromValues = Object.assign({}, this.people[chall.from]); delete fromValues["pages"]; //irrelevant in this context @@ -1087,11 +1096,11 @@ export default { return; } window.V = this.newchallenge.V; - let chall = Object.assign({ options: {} }, this.newchallenge); + let chall = Object.assign({}, this.newchallenge, { options: {} }); // Get/set options variables (if any) / TODO: v-model?! for (const check of this.newchallenge.V.Options.check || []) { const elt = document.getElementById(check.variable + "_opt"); - if (elt.checked) chall.options[check.variable] = true; + chall.options[check.variable] = elt.checked; } for (const select of this.newchallenge.V.Options.select || []) { const elt = document.getElementById(select.variable + "_opt"); @@ -1125,7 +1134,7 @@ export default { alert(this.st.tr["Challenge already exists"]); return; } - if (this.newchallenge.memorize) this.addPresetChall(this.newchallenge); + if (this.newchallenge.memorize) this.addPresetChall(chall); delete chall["V"]; delete chall["diag"]; const finishAddChallenge = cid => { @@ -1168,7 +1177,10 @@ export default { this.send("newchallenge", { data: Object.assign( // Temporarily add sender infos to display challenge on Discord. - { from: this.st.user.sid, sender: this.st.user.name }, chall) + { from: this.st.user.sid, sender: this.st.user.name }, + chall, + { options: JSON.stringify(chall.options) } + ) }); // Add new challenge: chall.from = { @@ -1316,7 +1328,7 @@ export default { let gameInfo = { id: getRandString(), fen: c.fen || V.GenRandInitFen(c.options), - options: c.options, //for rematch + options: JSON.stringify(c.options), //for rematch players: players, vid: c.vid, cadence: c.cadence @@ -1366,11 +1378,7 @@ export default { { // cid is useful to delete the challenge: data: { - gameInfo: Object.assign( - {}, - gameInfo, - { options: JSON.stringify(gameInfo.options) } - ), + gameInfo: gameInfo, cid: c.id }, success: (response) => { @@ -1396,8 +1404,7 @@ export default { moves: [], clocks: [-1, -1], //-1 = unstarted chats: [], - score: "*", - options: JSON.stringify(gameInfo.options) + score: "*" } ); setTimeout(