X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FAnalyze.vue;h=59d2f3a86a289aa4dc0bde2070c35b6075a3087b;hb=d641bec1b3b299e16b7da93f966dad0b0bd35088;hp=d1b669ecb164b2fa5d59587900e48e4a6c83de56;hpb=7aa548e72ba8a4af4e2c7f63e7723ad10d2cd3a4;p=vchess.git diff --git a/client/src/views/Analyze.vue b/client/src/views/Analyze.vue index d1b669ec..59d2f3a8 100644 --- a/client/src/views/Analyze.vue +++ b/client/src/views/Analyze.vue @@ -1,5 +1,10 @@ @@ -26,33 +31,61 @@ export default { mode: "analyze" }, vr: null, //"variant rules" object initialized from FEN + curFen: "", //people: [], //players + observers //TODO later: interactive analyze... }; }, watch: { - "$route": function(to, from) { - this.gameRef.fen = to.query["fen"].replace(/_/g, " "); - this.gameRef.vname = to.params["vname"]; - this.loadGame(); + // 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(fen) { + this.curFen = this.vr.getFen(); + this.adjustFenSize(); }, }, created: function() { - this.gameRef.fen = this.$route.query["fen"].replace(/_/g, " "); this.gameRef.vname = this.$route.params["vname"]; - this.loadGame(); + if (this.gameRef.vname == "Dark") + { + alert(this.st.tr["Analyze 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(); + } }, methods: { - loadGame: async function() { + initialize: async function() { + // Obtain VariantRules object + const vModule = await import("@/variants/" + this.gameRef.vname + ".js"); + window.V = vModule.VariantRules; + this.loadGame(); + }, + loadGame: function() { + // NOTE: no need to set score (~unused) this.game.vname = this.gameRef.vname; this.game.fen = this.gameRef.fen; - const vModule = await import("@/variants/" + this.game.vname + ".js"); - window.V = vModule.VariantRules; + this.curFen = this.game.fen; + this.adjustFenSize(); this.vr = new V(this.game.fen); + this.game.mycolor = this.vr.turn; + this.$set(this.game, "fenStart", this.gameRef.fen); + }, + adjustFenSize: function() { + let fenInput = document.getElementById("fen"); + fenInput.style.width = this.curFen.length + "ch"; + }, + gotoFen: function() { + this.gameRef.fen = this.curFen; + this.loadGame(); }, }, }; -