X-Git-Url: https://git.auder.net/?p=vchess.git;a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FAnalyze.vue;h=d7e812f40d18b7ceeccf8962b876f7fbbafe27d3;hp=a1352f7c859951c1c246176253d86470a89007d7;hb=5157ce0b8872417fbeecd736c9d1ae750b24acdc;hpb=ddec77d8d3d304f61e86946ca73be6f23b11163e diff --git a/client/src/views/Analyze.vue b/client/src/views/Analyze.vue index a1352f7c..d7e812f4 100644 --- a/client/src/views/Analyze.vue +++ b/client/src/views/Analyze.vue @@ -2,7 +2,9 @@ main .row .col-sm-12 - #fenDiv(v-if="!!vr") {{ vr.getFen() }} + #fenDiv + input#fen(v-model="curFen" @input="adjustFenSize") + button(@click="gotoFen") Go .row .col-sm-12.col-md-10.col-md-offset-1 BaseGame(:game="game" :vr="vr" ref="basegame") @@ -31,6 +33,7 @@ export default { mode: "analyze" }, vr: null, //"variant rules" object initialized from FEN + curFen: "", //people: [], //players + observers //TODO later: interactive analyze... }; }, @@ -40,27 +43,44 @@ export default { this.gameRef.vname = to.params["vname"]; this.loadGame(); }, + "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(); + this.initialize(this.loadGame); }, methods: { - loadGame: async function() { + initialize: async function(callback) { + // Obtain VariantRules object + const vModule = await import("@/variants/" + this.gameRef.vname + ".js"); + window.V = vModule.VariantRules; + callback(); + }, + loadGame: function() { 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); - // fenStart initialized in the end, after definition of V, - // because it triggers a reset on BaseGame component. this.$set(this.game, "fenStart", this.gameRef.fen); //TODO: Vue3... }, + adjustFenSize: function() { + let fenInput = document.getElementById("fen"); + fenInput.style.width = this.curFen.length + "ch"; + }, + gotoFen: function() { + this.gameRef.fen = this.curFen; + this.loadGame(); + }, }, }; -