<template lang="pug">
main
+ input#modalRules.modal(type="checkbox")
+ div#rulesDiv(
+ role="dialog"
+ data-checkbox="modalRules"
+ )
+ .card
+ label.modal-close(for="modalRules")
+ a#variantNameInAnalyze(:href="'/#/variants/'+game.vname")
+ | {{ game.vname }}
+ div(v-html="rulesContent")
.row
.col-sm-12
.text-center
<script>
import BaseGame from "@/components/BaseGame.vue";
+import { processModalClick } from "@/utils/modalClick";
+import { replaceByDiag } from "@/utils/printDiagram";
import { store } from "@/store";
+import afterRawLoad from "@/utils/afterRawLoad";
export default {
name: "my-analyse",
+ // TODO: game import ==> require some adjustments, like
+ // the ability to analyse from a list of moves...
components: {
BaseGame
},
data: function() {
return {
st: store.state,
+ rulesContent: "",
gameRef: {
- //given in URL (rid = remote ID)
vname: "",
- fen: ""
+ fen: "",
+ options: {}
},
game: {
players: [{ name: "Analyse" }, { name: "Analyse" }],
created: function() {
this.initFromUrl();
},
+ mounted: function() {
+ document.getElementById("rulesDiv")
+ .addEventListener("click", processModalClick);
+ },
methods: {
alertAndQuit: function(text, wrongVname) {
// Soon after component creation, st.tr might be uninitialized.
if (!routeFen) this.alertAndQuit("Missing FEN");
else {
this.gameRef.fen = routeFen.replace(/_/g, " ");
- // orientation is optional: taken from FEN if missing
+ // orientation is optional: taken from FEN if missing.
+ // NOTE: currently no internal usage of 'side', but could be used by
+ // manually settings the URL (TODO?).
const orientation = this.$route.query["side"];
this.initialize(orientation);
}
this.alertAndQuit("Analysis disabled for this variant");
else this.loadGame(orientation);
})
- .catch((err) => { this.alertAndQuit("Mispelled variant name", true); });
+ //.catch((err) => { this.alertAndQuit("Mispelled variant name", true); });
+ this.rulesContent =
+ afterRawLoad(
+ require(
+ "raw-loader!@/translations/rules/" +
+ this.gameRef.vname + "/" + this.st.lang + ".pug"
+ ).default
+ ).replace(/(fen:)([^:]*):/g, replaceByDiag);
},
loadGame: function(orientation) {
this.game.vname = this.gameRef.vname;
};
</script>
-<style lang="sass" scoped=true>
+<style lang="sass">
+@import "@/styles/_board_squares_img.sass"
+@import "@/styles/_rules.sass"
+</style>
+
+<style lang="sass" scoped>
+a#variantNameInAnalyze
+ color: var(--card-fore-color)
+ text-align: center
+ font-weight: bold
+ font-size: calc(1rem * var(--heading-ratio))
+ line-height: 1.2
+ margin: calc(1.5 * var(--universal-margin))
+
+#rulesDiv > .card
+ padding: 5px 0
+ max-width: 50%
+ max-height: 100%
+ @media screen and (max-width: 1500px)
+ max-width: 67%
+ @media screen and (max-width: 1024px)
+ max-width: 85%
+ @media screen and (max-width: 767px)
+ max-width: 100%
+
input#fen
// Use a Monospace font for input FEN width adjustment
font-family: "Fira Code"