X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FRules.vue;h=48a9e935bd75320d5621da682a46102b0a994632;hb=84fc0f02d3d399af66c40b3e9994f67b415ffd0e;hp=00202e6403212e98b7495e3ceb9b27319150ccf5;hpb=98b94cc3504937ae0af29a265394dfe52ea1ee67;p=vchess.git diff --git a/client/src/views/Rules.vue b/client/src/views/Rules.vue index 00202e64..48a9e935 100644 --- a/client/src/views/Rules.vue +++ b/client/src/views/Rules.vue @@ -23,7 +23,9 @@ main v-if="showAnalyzeBtn" @click="gotoAnalyze()" ) - | {{ st.tr["Analyse"] }} + | {{ st.tr["Analysis mode"] }} + .row + .col-sm-12.col-md-8.col-md-offset-2.col-lg-6.col-lg-offset-3 div( v-show="display=='rules'" v-html="content" @@ -55,7 +57,8 @@ export default { gameInfo: { vname: "", mode: "versus", - } + }, + V: null, }; }, watch: { @@ -69,23 +72,23 @@ export default { }, computed: { showAnalyzeBtn: function() { - return (this.display=='rules' && (!window.V || V.CanAnalyse)); + return !!this.V && this.V.CanAnalyze; }, content: function() { if (!this.gameInfo.vname) return ""; //variant not set yet // (AJAX) Request to get rules content (plain text, HTML) return ( - require("raw-loader!@/translations/rules/" + - this.gameInfo.vname + - "/" + - this.st.lang + - ".pug") - // Next two lines fix a weird issue after last update (2019-11) - .replace(/\\n/g, " ") - .replace(/\\"/g, '"') - .replace('module.exports = "', "") - .replace(/"$/, "") - .replace(/(fen:)([^:]*):/g, this.replaceByDiag) + require( + "raw-loader!@/translations/rules/" + + this.gameInfo.vname + "/" + + this.st.lang + ".pug" + ) + // Next two lines fix a weird issue after last update (2019-11) + .replace(/\\n/g, " ") + .replace(/\\"/g, '"') + .replace('module.exports = "', "") + .replace(/"$/, "") + .replace(/(fen:)([^:]*):/g, this.replaceByDiag) ); } }, @@ -109,9 +112,20 @@ export default { return getDiagram(args); }, re_setVariant: async function(vname) { - const vModule = await import("@/variants/" + vname + ".js"); - window.V = vModule.VariantRules; - this.gameInfo.vname = vname; + await import("@/variants/" + vname + ".js") + .then((vModule) => { + this.V = window.V = vModule[vname + "Rules"]; + this.gameInfo.vname = vname; + }) + .catch((err) => { + // Soon after component creation, st.tr might be uninitialized. + // Set a timeout to let a chance for the message to show translated. + const text = "Mispelled variant name"; + setTimeout(() => { + alert(this.st.tr[text] || text); + this.$router.replace("/variants"); + }, 500); + }); }, startGame: function(mode) { if (this.gameInProgress) return; @@ -139,7 +153,8 @@ export default { }, gotoAnalyze: function() { this.$router.push( - "/analyse/" + this.gameInfo.vname + "/?fen=" + V.GenRandInitFen() + "/analyse/" + this.gameInfo.vname + + "/?fen=" + V.GenRandInitFen(this.st.settings.randomness) ); } } @@ -161,12 +176,13 @@ figure.diagram-container display: block .diagram display: block - width: 40% + width: 50% min-width: 240px margin-left: auto margin-right: auto .diag12 float: left + width: 40% margin-left: calc(10% - 20px) margin-right: 40px @media screen and (max-width: 630px) @@ -174,6 +190,7 @@ figure.diagram-container margin: 0 auto 10px auto .diag22 float: left + width: 40% margin-right: calc(10% - 20px) @media screen and (max-width: 630px) float: none