X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FAnalyse.vue;h=4307b9d039512f257f1079dc3ae8de5ea0c6d3b4;hb=310b83c9857f2efa48cbdb80919a8d3cbe257ea7;hp=7259632ca43d59987b0650e04ff20fe50f9f424b;hpb=910d631b73cad5ffef1b4461157b704e7e7057d8;p=vchess.git diff --git a/client/src/views/Analyse.vue b/client/src/views/Analyse.vue index 7259632c..4307b9d0 100644 --- a/client/src/views/Analyse.vue +++ b/client/src/views/Analyse.vue @@ -5,12 +5,11 @@ main .text-center input#fen( v-model="curFen" - @input="adjustFenSize()" + @input="adjustFenSize(); tryGotoFen()" ) - button(@click="gotoFen()") {{ st.tr["Go"] }} BaseGame( :game="game" - :vr="vr" + @fenchange="setFen" ) @@ -35,28 +34,15 @@ export default { players: [{ name: "Analyse" }, { name: "Analyse" }], mode: "analyze" }, - vr: null, //"variant rules" object initialized from FEN curFen: "" - //people: [], //players + observers //TODO later: interactive analyze... }; }, - watch: { - // NOTE: no watcher for $route change, because if fenStart doesn't change - // then it doesn't trigger BaseGame.re_init() and the result is weird. - "vr.movesCount": function() { - this.curFen = this.vr.getFen(); - this.adjustFenSize(); - } - }, + // NOTE: no watcher for $route change, because if fenStart doesn't change + // then it doesn't trigger BaseGame.re_init() and the result is weird. created: function() { this.gameRef.vname = this.$route.params["vname"]; - if (this.gameRef.vname == "Dark") { - alert(this.st.tr["Analyse in Dark mode makes no sense!"]); - history.back(); //or this.$router.go(-1) - } else { - this.gameRef.fen = this.$route.query["fen"].replace(/_/g, " "); - this.initialize(); - } + this.gameRef.fen = this.$route.query["fen"].replace(/_/g, " "); + this.initialize(); }, methods: { initialize: async function() { @@ -71,17 +57,24 @@ export default { this.game.fen = this.gameRef.fen; this.curFen = this.game.fen; this.adjustFenSize(); - this.vr = new V(this.game.fen); - this.game.mycolor = this.vr.turn; + this.game.mycolor = V.ParseFen(this.gameRef.fen).turn; this.$set(this.game, "fenStart", this.gameRef.fen); }, + // Triggered by "fenchange" emitted in BaseGame: + setFen: function(fen) { + this.curFen = fen; + this.adjustFenSize(); + }, adjustFenSize: function() { let fenInput = document.getElementById("fen"); fenInput.style.width = this.curFen.length + "ch"; }, - gotoFen: function() { - this.gameRef.fen = this.curFen; - this.loadGame(); + tryGotoFen: function() { + if (V.IsGoodFen(this.curFen)) + { + this.gameRef.fen = this.curFen; + this.loadGame(); + } } } };