X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FHall.vue;h=a2ce34d9fd5d9409b0884d6b17e0925d9a3b6764;hb=25d183426e276870f57793f1f043c40a412d18c6;hp=ca0caa266cdf90bc6ad9c7e91ebdb756db058911;hpb=cf2343cee5729c011770ace6d5b4f79d1ac3a2b6;p=vchess.git
diff --git a/client/src/views/Hall.vue b/client/src/views/Hall.vue
index ca0caa26..a2ce34d9 100644
--- a/client/src/views/Hall.vue
+++ b/client/src/views/Hall.vue
@@ -1,250 +1,707 @@
-div
+main
+ input#modalInfo.modal(type="checkbox")
+ div(role="dialog" aria-labelledby="infoMessage")
+ .card.smallpad.small-modal.text-center
+ label.modal-close(for="modalInfo")
+ h3#infoMessage.section
+ p(v-html="infoMessage")
input#modalNewgame.modal(type="checkbox")
- div(role="dialog" aria-labelledby="titleFenedit")
- .card.smallpad
+ div(role="dialog" data-checkbox="modalNewgame"
+ aria-labelledby="titleFenedit")
+ .card.smallpad(@keyup.enter="newChallenge")
label#closeNewgame.modal-close(for="modalNewgame")
fieldset
label(for="selectVariant") {{ st.tr["Variant"] }}
- select#selectVariant(v-model="newgameInfo.vid")
- option(v-for="v in st.variants" :value="v.id") {{ v.name }}
+ select#selectVariant(v-model="newchallenge.vid")
+ option(v-for="v in st.variants" :value="v.id"
+ :selected="newchallenge.vid==v.id")
+ | {{ v.name }}
fieldset
- label(for="selectNbPlayers") {{ st.tr["Number of players"] }}
- select#selectNbPlayers(v-model="newgameInfo.nbPlayers")
- option(v-show="possibleNbplayers(2)" value="2") 2
- option(v-show="possibleNbplayers(3)" value="3") 3
- option(v-show="possibleNbplayers(4)" value="4") 4
- fieldset
- label(for="timeControl") Time control (in days)
- #timeControl
- input(type="number" v-model="newgameInfo.mainTime"
- placeholder="Main time")
- input(type="number" v-model="newgameInfo.increment"
- placeholder="Increment")
- fieldset
- label(for="selectPlayers") {{ st.tr["Play with?"] }}
- #selectPlayers
- input(type="text" v-model="newgameInfo.players[0].name")
- input(v-show="newgameInfo.nbPlayers>=3" type="text"
- v-model="newgameInfo.players[1].name")
- input(v-show="newgameInfo.nbPlayers==4" type="text"
- v-model="newgameInfo.players[2].name")
- fieldset
- label(for="inputFen")
- | {{ st.tr["FEN (ignored if players fields are blank)"] }}
- input#inputFen(type="text" v-model="newgameInfo.fen")
- button(@click="newGame") Launch game
- p TODO: cadence, adversaire (pre-filled if click on name)
- p cadence 2m+12s ou 7d+1d (m,s ou d,d) --> main, increment
- p Note: leave FEN blank for random; FEN only for targeted challenge
- div
- ChallengeList(:challenges="challenges" @click-challenge="clickChallenge")
- div(style="border:1px solid black")
- h3 Online players
- div(v-for="p in players" @click="challenge(p)") {{ p.name }}
- button(onClick="doClick('modalNewgame')") New game
- div
- .button-group
- button(@click="gdisplay='live'") Live games
- button(@click="gdisplay='corr'") Correspondance games
- GameList(v-show="gdisplay=='live'" :games="liveGames"
- @show-game="showGame")
- GameList(v-show="gdisplay=='corr'" :games="corrGames"
- @show-game="showGame")
+ label(for="timeControl") {{ st.tr["Time control"] }}
+ div#predefinedTimeControls
+ button 3+2
+ button 5+3
+ button 15+5
+ input#timeControl(type="text" v-model="newchallenge.timeControl"
+ placeholder="5+0, 1h+30s, 7d+1d ...")
+ fieldset(v-if="st.user.id > 0")
+ label(for="selectPlayers") {{ st.tr["Play with? (optional)"] }}
+ input#selectPlayers(type="text" v-model="newchallenge.to")
+ fieldset(v-if="st.user.id > 0 && newchallenge.to.length > 0")
+ label(for="inputFen") {{ st.tr["FEN (optional)"] }}
+ input#inputFen(type="text" v-model="newchallenge.fen")
+ button(@click="newChallenge") {{ st.tr["Send challenge"] }}
+ .row
+ .col-sm-12
+ button#newGame(onClick="doClick('modalNewgame')") New game
+ .row
+ .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
+ div
+ .button-group
+ button(@click="(e) => setDisplay('c','live',e)" class="active")
+ | Live Challenges
+ button(@click="(e) => setDisplay('c','corr',e)")
+ | Correspondance challenges
+ ChallengeList(v-show="cdisplay=='live'"
+ :challenges="filterChallenges('live')" @click-challenge="clickChallenge")
+ ChallengeList(v-show="cdisplay=='corr'"
+ :challenges="filterChallenges('corr')" @click-challenge="clickChallenge")
+ #people
+ h3.text-center Who's there?
+ #players
+ p(v-for="p in Object.values(people)" v-if="!!p.name")
+ span {{ p.name }}
+ button.player-action(
+ v-if="p.name != st.user.name"
+ @click="challOrWatch(p,$event)"
+ )
+ | {{ whatPlayerDoes(p) }}
+ p.anonymous @nonymous ({{ anonymousCount }})
+ #chat
+ Chat(:players="[]")
+ .clearer
+ div
+ .button-group
+ button(@click="(e) => setDisplay('g','live',e)" class="active")
+ | Live games
+ button(@click="(e) => setDisplay('g','corr',e)")
+ | Correspondance games
+ GameList(v-show="gdisplay=='live'" :games="filterGames('live')"
+ @show-game="showGame")
+ GameList(v-show="gdisplay=='corr'" :games="filterGames('corr')"
+ @show-game="showGame")
-