extends layout
block css
- link(rel="stylesheet", href="//fonts.googleapis.com/icon?family=Material+Icons")
- link(rel="stylesheet", href="/stylesheets/variant.css")
+ link(rel="stylesheet" href="//fonts.googleapis.com/icon?family=Material+Icons")
+ link(rel="stylesheet" href="/stylesheets/variant.css")
block content
.container#variantPage
+ include langNames.pug
+ case lang
+ when "en"
+ include translations/en.pug
+ include modal-lang/en.pug
+ include modal-help/en.pug
+ when "es"
+ include translations/es.pug
+ include modal-lang/es.pug
+ include modal-help/es.pug
+ when "fr"
+ include translations/fr.pug
+ include modal-lang/fr.pug
+ include modal-help/fr.pug
+ input#modal-newgame.modal(type="checkbox")
+ div(role="dialog" aria-labelledby="newGameTxt")
+ .card.smallpad.small-modal
+ label#close-newgame.modal-close(for="modal-newgame")
+ h3#newGameTxt= translations["New game"]
+ p= translations["Waiting for opponent..."]
.row
.col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
- h4.rulesTitle.text-center(v-on:click="displayRules=!displayRules") #{variant} Rules
- my-rules(v-show="displayRules")
- .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
- my-game
+ label.drawer-toggle(for="drawer-control")
+ input#drawer-control.drawer(type="checkbox")
+ #menuBar
+ label.drawer-close(for="drawer-control")
+ a#homeLink(href="/")
+ i.material-icons home
+ .info-container
+ a(href="#rules" @click="setDisplay('rules')")
+ =translations["Rules"]
+ a(href="#play" @click="setDisplay('play')")
+ =translations["Play"]
+ a(href="#problems" v-if="notDark()" @click="setDisplay('problems')")
+ =translations["Problems"]
+ #flagMenu.clickable(
+ onClick="document.getElementById('modalLang').checked=true")
+ img(src="/images/flags/" + lang + ".svg")
+ #helpMenu.clickable(
+ onClick="document.getElementById('modalHelp').checked=true")
+ .info-container
+ p= translations["Help"]
+ .row
+ my-rules(v-show="display=='rules'")
+ my-game(v-show="display=='play'" v-bind:problem="problem")
+ my-problems(v-if="notDark()" v-show="display=='problems'"
+ v-on:show-problem="showProblem($event)")
block javascripts
script(src="/javascripts/utils/misc.js")
- script(src="/javascripts/utils/socket_url.js")
script(src="/javascripts/utils/array.js")
+ script(src="/javascripts/utils/md5.js")
+ script(src="/javascripts/utils/printDiagram.js")
+ script(src="/javascripts/utils/ajax.js")
+ script(src="/javascripts/utils/datetime.js")
+ script(src="/javascripts/socket_url.js")
script(src="/javascripts/base_rules.js")
script(src="/javascripts/variants/" + variant + ".js")
script.
- const VariantRules = #{variant}Rules;
+ const V = VariantRules; //because this variable is often used
const variant = "#{variant}";
+ const problemArray = !{JSON.stringify(problemArray)};
+ const translations = !{JSON.stringify(translations)};
script(src="/javascripts/components/rules.js")
script(src="/javascripts/components/game.js")
- script.
- new Vue({
- el: "#variantPage",
- data: { displayRules: false },
- });
+ script(src="/javascripts/components/problemSummary.js")
+ script(src="/javascripts/components/problems.js")
+ script(src="/javascripts/variant.js")