X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FBaseGame.vue;h=0e0f37208858c87f933b209be4a963dc5e167da7;hb=677fe285f1137d1d3e672dcf2dae3ac6e943be37;hp=55ed249feae0343bcf9f45ee10beb45bebe3aab3;hpb=e01dff1a4661974349091ffa1a8596676d90a75c;p=vchess.git diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue index 55ed249f..0e0f3720 100644 --- a/client/src/components/BaseGame.vue +++ b/client/src/components/BaseGame.vue @@ -29,11 +29,11 @@ div#baseGame(tabindex=-1 @click="() => focusBg()" #pgnDiv #downloadDiv(v-if="game.vname!='Dark' || game.score!='*'") a#download(href="#") - button(@click="download") {{ st.tr["Download PGN"] }} + button(@click="download") {{ st.tr["Download"] }} PGN button(onClick="doClick('modalAdjust')") ⤢ button(v-if="game.vname!='Dark' && game.mode!='analyze'" @click="analyzePosition") - | {{ st.tr["Analyze"] }} + | {{ st.tr["Analyse"] }} // NOTE: rather ugly hack to avoid showing twice "rules" link... button(v-if="!$route.path.match('/variants/')" @click="showRules") | {{ st.tr["Rules"] }} @@ -81,7 +81,6 @@ export default { this.re_setVariables(); }, // Received a new move to play: - // TODO: error "flush nextTick callbacks" when observer reloads page "game.moveToPlay": function(newMove) { if (!!newMove) //if stop + launch new game, get undefined move this.play(newMove, "receive"); @@ -226,7 +225,7 @@ export default { this.incheck = []; }, analyzePosition: function() { - const newUrl = "/analyze/" + this.game.vname + + const newUrl = "/analyse/" + this.game.vname + "/?fen=" + this.vr.getFen().replace(/ /g, "_"); if (this.game.type == "live") this.$router.push(newUrl); //open in same tab: against cheating... @@ -274,12 +273,18 @@ export default { }, animateMove: function(move, callback) { let startSquare = document.getElementById(getSquareId(move.start)); + // TODO: error "flush nextTick callbacks" when observer reloads page: + // this late check is not a fix! + if (!startSquare) + return; let endSquare = document.getElementById(getSquareId(move.end)); let rectStart = startSquare.getBoundingClientRect(); let rectEnd = endSquare.getBoundingClientRect(); let translation = {x:rectEnd.x-rectStart.x, y:rectEnd.y-rectStart.y}; let movingPiece = document.querySelector("#" + getSquareId(move.start) + " > img.piece"); + if (!movingPiece) //TODO: shouldn't happen + return; // HACK for animation (with positive translate, image slides "under background") // Possible improvement: just alter squares on the piece's way... const squares = document.getElementsByClassName("board");