Commit | Line | Data |
---|---|---|
b955c65b BA |
1 | doctype html |
2 | html | |
3 | ||
4 | head | |
5 | meta(charset="UTF-8") | |
6 | title vchess - club | |
7 | meta(name="viewport" content="width=device-width, initial-scale=1") | |
8 | meta(name="msapplication-config" | |
9 | content="/images/favicon/browserconfig.xml") | |
10 | meta(name="theme-color" content="#ffffff") | |
11 | link(rel="stylesheet" | |
12 | href="//cdnjs.cloudflare.com/ajax/libs/mini.css/3.0.0/mini-default.min.css") | |
13 | link(rel="stylesheet" | |
14 | href="//fonts.googleapis.com/css?family=Open+Sans:400,700") | |
15 | link(rel="apple-touch-icon" sizes="180x180" | |
16 | href="/images/favicon/apple-touch-icon.png") | |
17 | link(rel="icon" type="image/png" sizes="32x32" | |
18 | href="/images/favicon/favicon-32x32.png") | |
19 | link(rel="icon" type="image/png" sizes="16x16" | |
20 | href="/images/favicon/favicon-16x16.png") | |
21 | link(rel="manifest" href="/images/favicon/manifest.json") | |
22 | link(rel="mask-icon" href="/images/favicon/safari-pinned-tab.svg" | |
23 | color="#5bbad5") | |
24 | link(rel="shortcut icon" href="/images/favicon/favicon.ico") | |
25 | link(rel="stylesheet" href="/stylesheets/app.css") | |
26 | ||
27 | // TODO: on-demand components, do not load all at startup | |
28 | body | |
29 | - | |
30 | var langName = { | |
31 | "en": "English", | |
32 | "es": "Español", | |
33 | "fr": "Français", | |
34 | }; | |
35 | case lang | |
36 | when "en" | |
37 | include translations/en | |
38 | include welcome/en | |
39 | when "es" | |
40 | include translations/es | |
41 | include welcome/es | |
42 | when "fr" | |
43 | include translations/fr | |
44 | include welcome/fr | |
45 | include modals | |
46 | main#VueElement | |
47 | my-upsert-user | |
48 | .container | |
49 | // Header (on index only) | |
50 | .row(v-show="display=='index'") | |
51 | .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 | |
52 | header | |
53 | img(src="/images/index/unicorn.svg") | |
54 | .info-container | |
55 | p vchess.club | |
56 | img(src="/images/index/wildebeest.svg") | |
57 | // Menu (top of page) | |
58 | .row | |
59 | .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 | |
60 | label.drawer-toggle(for="drawerControl") | |
61 | input#drawerControl.drawer(type="checkbox") | |
62 | #menuBar | |
63 | label.drawer-close(for="drawerControl") | |
64 | a.icon-link(href="/") | |
65 | i(data-feather="home") | |
66 | a(href="#room") | |
67 | =translations["Hall"] | |
68 | a(href="#tabGames") | |
69 | =translations["My games"] | |
70 | a(href="#rules") | |
71 | =translations["Rules"] | |
72 | a(href="#problems") | |
73 | =translations["Problems"] | |
74 | #userMenu.clickable.right-menu(onClick="doClick('modalUser')") | |
75 | .info-container | |
76 | if !user.email | |
77 | p | |
78 | span Login | |
79 | span.icon-user | |
80 | else | |
81 | p | |
82 | span Update | |
83 | span.icon-user | |
84 | #flagMenu.clickable.right-menu(onClick="doClick('modalLang')") | |
85 | img(src="/images/flags/" + lang + ".svg") | |
86 | #settings.clickable(v-show="display!='index'" onClick="doClick('modalSettings')") | |
87 | i(data-feather="settings") | |
88 | #mainTitle.clickable(onClick="doClick('modalWelcome')") | |
89 | .info-container | |
90 | p Introduction | |
91 | .row | |
92 | .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 | |
93 | .row(v-show="display=='variants'") | |
94 | .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 | |
95 | label(for="prefixFilter") Type first letters... | |
96 | input#prefixFilter(v-model="curPrefix") | |
97 | my-variant-summary(v-for="(v,idx) in sortedCounts" | |
98 | v-bind:vobj="v" v-bind:index="idx" v-bind:key="v.name") | |
99 | .row(v-show="display=='correspondance'") | |
100 | my-correspondance | |
101 | .row | |
102 | my-room(v-show="display=='room'" :conn="conn" :settings="settings") | |
103 | my-tab-games(v-show="display=='tabGames'") | |
104 | my-rules(v-show="display=='rules'" :settings="settings") | |
105 | my-problems(v-show="display=='problems'" :prob-id="probId" :settings="settings") | |
106 | my-game(v-show="display=='game'" :game-ref="gameRef" :conn="conn" | |
107 | :allow-chat="allowChat" :allow-movelist="allowMovelist" | |
108 | :mode="mode" :settings="settings" @game-over="archiveGame") | |
109 | ||
110 | footer.col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2.text-center | |
111 | div | |
112 | a(href="https://github.com/yagu0/vchess") Source code | |
113 | p.clickable(onClick="document.getElementById('modalContact').checked=true") | |
114 | =translations["Contact form"] | |
115 | ||
116 | script. | |
117 | const translations = !{JSON.stringify(translations)}; | |
118 | const user = !{JSON.stringify(user)}; | |
119 | const variantArray = !{JSON.stringify(variantArray)}; | |
120 | // TODO: get rid of underscore | |
121 | // (used essentially for _.random(), _.sample() and _.range()) | |
122 | script(src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js") | |
123 | // TODO: add only the necessary icons to mini-css custom build | |
124 | script(src="//unpkg.com/feather-icons") | |
125 | if development | |
126 | script(src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js") | |
127 | else | |
128 | script(src="https://cdn.jsdelivr.net/npm/vue") | |
129 | script(src="/javascripts/utils/printDiagram.js") | |
130 | script(src="/javascripts/utils/datetime.js") | |
131 | script(src="/javascripts/utils/squareId.js") | |
132 | script(src="/javascripts/utils/misc.js") | |
133 | script(src="/javascripts/utils/ajax.js") | |
134 | script(src="/javascripts/utils/array.js") | |
135 | script(src="/javascripts/shared/nbPlayers.js") | |
136 | script(src="/javascripts/shared/challengeCheck.js") | |
137 | script(src="/javascripts/shared/userCheck.js") | |
138 | script(src="/javascripts/components/upsertUser.js") | |
139 | script(src="/javascripts/components/variantSummary.js") | |
140 | script(src="/javascripts/components/correspondance.js") | |
141 | script(src="/javascripts/components/board.js") | |
142 | script(src="/javascripts/components/chat.js") | |
143 | script(src="/javascripts/components/gameList.js") | |
144 | script(src="/javascripts/components/challengeList.js") | |
145 | script(src="/javascripts/components/moveList.js") | |
146 | script(src="/javascripts/components/game.js") | |
147 | script(src="/javascripts/components/rules.js") | |
148 | script(src="/javascripts/components/room.js") | |
149 | script(src="/javascripts/components/tabGames.js") | |
150 | script(src="/javascripts/components/problemSummary.js") | |
151 | script(src="/javascripts/components/problems.js") | |
152 | script(src="/javascripts/base_rules.js") | |
153 | script(src="/javascripts/contactForm.js") | |
154 | script(src="/javascripts/socket_url.js") | |
155 | script(src="/javascripts/index.js") | |
156 | script(src="/javascripts/variant.js") | |
157 | script(src="/javascripts/app.js") |