<template lang="pug">
#app
- // modal "welcome" will be filled in the selected language
- #modalWelcome
Language
Settings
ContactForm
UpsertUser
.container
- .row(v-show="$route.path == '/'")
- .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
- // Header (on index only)
- header
- img(src="./assets/images/index/unicorn.svg")
- .info-container
- p vchess.club
- img(src="./assets/images/index/wildebeest.svg")
.row
.col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
// Menu (top of page):
- // Left: home, variants, mygames, problems
+ // Left: hall, variants, mygames, forum (ext. link)
// Right: usermenu, settings, flag
nav
label.drawer-toggle(for="drawerControl")
label.drawer-close(for="drawerControl")
#leftMenu
router-link(to="/")
- | {{ st.tr["Home"] }}
+ | {{ st.tr["Hall"] }}
router-link(to="/variants")
| {{ st.tr["Variants"] }}
router-link(to="/mygames")
| {{ st.tr["My games"] }}
- router-link(to="/problems")
- | {{ st.tr["Problems"] }}
+ // TODO: parametric URL, "forumURL"
+ a(href="https://forum.vchess.club")
+ | {{ st.tr["Forum"] }}
#rightMenu
.clickable(onClick="doClick('modalUser')")
- | {{ !st.user.id ? "Login" : "Update" }}
+ | {{ st.user.id > 0 ? "Update" : "Login" }}
.clickable(onClick="doClick('modalSettings')")
| {{ st.tr["Settings"] }}
.clickable#flagContainer(onClick="doClick('modalLang')")
- img(v-if="!!st.lang"
- :src="require(`@/assets/images/flags/${st.lang}.svg`)")
+ img(v-if="!!st.lang" :src="flagImage")
router-view
.row
.col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
footer
- a(href="https://github.com/yagu0/vchess") {{ st.tr["Source code"] }}
+ router-link.menuitem(to="/about") {{ st.tr["About"] }}
p.clickable(onClick="doClick('modalContact')")
- | {{ st.tr["Contact form"] }}
- //my-game(:game-ref="gameRef" :mode="mode" :settings="settings" @game-over="archiveGame")
- //// TODO: add only the necessary icons to mini-css custom build
+ | {{ st.tr["Contact"] }}
+ // TODO: add only the necessary icons to mini-css custom build
//script(src="//unpkg.com/feather-icons")
</template>
st: store.state,
};
},
+ computed: {
+ flagImage: function() {
+ return `/images/flags/${this.st.lang}.svg`;
+ },
+ },
};
</script>
.nopadding
padding: 0
-#modalWelcome
- max-width: 767px
- @media screen and (max-width: 767px)
- max-width: 100vw
- img
- width: 75%
- @media screen and (max-width: 767px)
- width: 100%
- max-width: 552px
- ul
- list-style-type: none
- // TODO: bad practice, shouldn't use table to align things...
- table.list-table
- width: 300px
- margin: 0 auto
- border: 0
- tbody
- border: 0
- tr
- border: 0
- margin: 0
- padding: 0
- td
- padding: 0
- text-align: left
- border: 0
-
header
width: 100%
display: flex
//background-color: #000033
font-size: 1rem
width: 100%
+ padding-left: 0
+ padding-right: 0
display: inline-flex
align-items: center
justify-content: center
- & > a
+ & > .menuitem
display: inline-block
margin: 0 10px 0 0
&:link