X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=views%2Fapp.pug;fp=views%2Fapp.pug;h=fb9853a3c31d34462f4906ff30d07a8c554de9b9;hb=b955c65b942d09d24b5c3bed0d755d4f2f8f71f1;hp=0000000000000000000000000000000000000000;hpb=74ea2e8d9ec6980e2fb5a4f86afe33b4850e3d53;p=vchess.git diff --git a/views/app.pug b/views/app.pug new file mode 100644 index 00000000..fb9853a3 --- /dev/null +++ b/views/app.pug @@ -0,0 +1,157 @@ +doctype html +html + + head + meta(charset="UTF-8") + title vchess - club + meta(name="viewport" content="width=device-width, initial-scale=1") + meta(name="msapplication-config" + content="/images/favicon/browserconfig.xml") + meta(name="theme-color" content="#ffffff") + link(rel="stylesheet" + href="//cdnjs.cloudflare.com/ajax/libs/mini.css/3.0.0/mini-default.min.css") + link(rel="stylesheet" + href="//fonts.googleapis.com/css?family=Open+Sans:400,700") + link(rel="apple-touch-icon" sizes="180x180" + href="/images/favicon/apple-touch-icon.png") + link(rel="icon" type="image/png" sizes="32x32" + href="/images/favicon/favicon-32x32.png") + link(rel="icon" type="image/png" sizes="16x16" + href="/images/favicon/favicon-16x16.png") + link(rel="manifest" href="/images/favicon/manifest.json") + link(rel="mask-icon" href="/images/favicon/safari-pinned-tab.svg" + color="#5bbad5") + link(rel="shortcut icon" href="/images/favicon/favicon.ico") + link(rel="stylesheet" href="/stylesheets/app.css") + + // TODO: on-demand components, do not load all at startup + body + - + var langName = { + "en": "English", + "es": "Español", + "fr": "Français", + }; + case lang + when "en" + include translations/en + include welcome/en + when "es" + include translations/es + include welcome/es + when "fr" + include translations/fr + include welcome/fr + include modals + main#VueElement + my-upsert-user + .container + // Header (on index only) + .row(v-show="display=='index'") + .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 + header + img(src="/images/index/unicorn.svg") + .info-container + p vchess.club + img(src="/images/index/wildebeest.svg") + // Menu (top of page) + .row + .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 + label.drawer-toggle(for="drawerControl") + input#drawerControl.drawer(type="checkbox") + #menuBar + label.drawer-close(for="drawerControl") + a.icon-link(href="/") + i(data-feather="home") + a(href="#room") + =translations["Hall"] + a(href="#tabGames") + =translations["My games"] + a(href="#rules") + =translations["Rules"] + a(href="#problems") + =translations["Problems"] + #userMenu.clickable.right-menu(onClick="doClick('modalUser')") + .info-container + if !user.email + p + span Login + span.icon-user + else + p + span Update + span.icon-user + #flagMenu.clickable.right-menu(onClick="doClick('modalLang')") + img(src="/images/flags/" + lang + ".svg") + #settings.clickable(v-show="display!='index'" onClick="doClick('modalSettings')") + i(data-feather="settings") + #mainTitle.clickable(onClick="doClick('modalWelcome')") + .info-container + p Introduction + .row + .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 + .row(v-show="display=='variants'") + .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 + label(for="prefixFilter") Type first letters... + input#prefixFilter(v-model="curPrefix") + my-variant-summary(v-for="(v,idx) in sortedCounts" + v-bind:vobj="v" v-bind:index="idx" v-bind:key="v.name") + .row(v-show="display=='correspondance'") + my-correspondance + .row + my-room(v-show="display=='room'" :conn="conn" :settings="settings") + my-tab-games(v-show="display=='tabGames'") + my-rules(v-show="display=='rules'" :settings="settings") + my-problems(v-show="display=='problems'" :prob-id="probId" :settings="settings") + my-game(v-show="display=='game'" :game-ref="gameRef" :conn="conn" + :allow-chat="allowChat" :allow-movelist="allowMovelist" + :mode="mode" :settings="settings" @game-over="archiveGame") + + footer.col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2.text-center + div + a(href="https://github.com/yagu0/vchess") Source code + p.clickable(onClick="document.getElementById('modalContact').checked=true") + =translations["Contact form"] + + script. + const translations = !{JSON.stringify(translations)}; + const user = !{JSON.stringify(user)}; + const variantArray = !{JSON.stringify(variantArray)}; + // TODO: get rid of underscore + // (used essentially for _.random(), _.sample() and _.range()) + script(src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js") + // TODO: add only the necessary icons to mini-css custom build + script(src="//unpkg.com/feather-icons") + if development + script(src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js") + else + script(src="https://cdn.jsdelivr.net/npm/vue") + script(src="/javascripts/utils/printDiagram.js") + script(src="/javascripts/utils/datetime.js") + script(src="/javascripts/utils/squareId.js") + script(src="/javascripts/utils/misc.js") + script(src="/javascripts/utils/ajax.js") + script(src="/javascripts/utils/array.js") + script(src="/javascripts/shared/nbPlayers.js") + script(src="/javascripts/shared/challengeCheck.js") + script(src="/javascripts/shared/userCheck.js") + script(src="/javascripts/components/upsertUser.js") + script(src="/javascripts/components/variantSummary.js") + script(src="/javascripts/components/correspondance.js") + script(src="/javascripts/components/board.js") + script(src="/javascripts/components/chat.js") + script(src="/javascripts/components/gameList.js") + script(src="/javascripts/components/challengeList.js") + script(src="/javascripts/components/moveList.js") + script(src="/javascripts/components/game.js") + script(src="/javascripts/components/rules.js") + script(src="/javascripts/components/room.js") + script(src="/javascripts/components/tabGames.js") + script(src="/javascripts/components/problemSummary.js") + script(src="/javascripts/components/problems.js") + script(src="/javascripts/base_rules.js") + script(src="/javascripts/contactForm.js") + script(src="/javascripts/socket_url.js") + script(src="/javascripts/index.js") + script(src="/javascripts/variant.js") + script(src="/javascripts/app.js")