X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FBaseGame.vue;h=ef6ef01e17f3b5d20870301e4d680a2b163dba71;hb=ae2c49bb0bbaac3953f63be5b720e9c6835f00b6;hp=a1539bab773d170218ee29a1f3e34af663cd1a6b;hpb=9a3049f3a48fa4b3627ef26ccdf213a8e550d478;p=vchess.git diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue index a1539bab..ef6ef01e 100644 --- a/client/src/components/BaseGame.vue +++ b/client/src/components/BaseGame.vue @@ -26,7 +26,7 @@ div#baseGame(tabindex=-1 @click="focusBg()" button(@click="flip()") ⇅ button(@click="play()") > button(@click="gotoEnd()") >> - #pgnDiv + #belowControls #downloadDiv(v-if="game.vname!='Dark' || game.score!='*'") a#download(href="#") button(@click="download()") {{ st.tr["Download"] }} PGN @@ -84,6 +84,11 @@ export default { if (!!newMove) //if stop + launch new game, get undefined move this.play(newMove, "receive"); }, + // ...Or to undo (corr game, move not validated) + "game.moveToUndo": function(move) { + if (!!move) + this.undo(move); + }, }, computed: { showMoves: function() { @@ -116,15 +121,14 @@ export default { if (!boardSize) { boardSize = (window.innerWidth >= 768 - ? Math.min(600, 0.5*window.innerWidth) //heuristic... + ? 0.75 * Math.min(window.innerWidth, window.innerHeight) : window.innerWidth); } const movesWidth = (window.innerWidth >= 768 ? 280 : 0); document.getElementById("boardContainer").style.width = boardSize + "px"; let gameContainer = document.getElementById("gameContainer"); gameContainer.style.width = (boardSize + movesWidth) + "px"; - // TODO: find the right formula here: - //document.getElementById("boardSize").value = Math.floor(boardSize / 10); + document.getElementById("boardSize").value = (boardSize * 100) / (window.innerWidth - movesWidth); // timeout to avoid calling too many time the adjust method let timeoutLaunched = false; window.addEventListener("resize", (e) => { @@ -212,8 +216,8 @@ export default { vr_tmp.play(move); move.fen = vr_tmp.getFen(); }); - if (this.game.fenStart.indexOf(" b ") >= 0 || - (this.moves.length > 0 && this.moves[0].color == "b")) + if ((this.moves.length > 0 && this.moves[0].color == "b") || + (this.moves.length == 0 && this.vr_tmp.turn == "b")) { // 'end' is required for Board component to check lastMove for e.p. this.moves.unshift({color: "w", notation: "...", end: {x:-1,y:-1}}); @@ -221,7 +225,7 @@ export default { const L = this.moves.length; this.cursor = L-1; this.lastMove = (L > 0 ? this.moves[L-1] : null); - this.incheck = []; + this.incheck = this.vr.getCheckSquares(this.vr.turn); }, analyzePosition: function() { const newUrl = "/analyse/" + this.game.vname + @@ -429,22 +433,24 @@ export default { display: inline-block #controls - margin-top: 10px - margin-left: auto - margin-right: auto + margin: 0 auto button display: inline-block width: 20% margin: 0 -@media screen and (min-width: 768px) - #controls - max-width: 400px #turnIndicator text-align: center -#pgnDiv +#belowControls + border-top: 1px solid #2f4f4f text-align: center - margin-left: auto - margin-right: auto + margin: 0 auto + & > #downloadDiv + margin: 0 + & > button + margin: 0 + & > button + border-left: 1px solid #2f4f4f + margin: 0 #boardContainer float: left // TODO: later, maybe, allow movesList of variable width