X-Git-Url: https://git.auder.net/pieces/Checkered/cp.svg?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FBaseGame.vue;h=6faa1b60c7d26a92165628936afe8fb4754489c0;hb=a01ab95c262b2ab8fe96cd57d925cf878da85c45;hp=4a40a3a522338bb1ea4e30eefe81d396a43d7205;hpb=d4036efea5b57656478affd7d71f53dcea0f8017;p=vchess.git
diff --git a/client/src/components/BaseGame.vue b/client/src/components/BaseGame.vue
index 4a40a3a5..6faa1b60 100644
--- a/client/src/components/BaseGame.vue
+++ b/client/src/components/BaseGame.vue
@@ -1,45 +1,44 @@
-.row
- .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
- input#modalEog.modal(type="checkbox")
- div(role="dialog" aria-labelledby="eogMessage")
- .card.smallpad.small-modal.text-center
- label.modal-close(for="modalEog")
- h3#eogMessage.section {{ endgameMessage }}
- // TODO: or "BoardHex" if this.game.vname in "Hexagonal..."
- Board(:vr="vr" :last-move="lastMove" :analyze="analyze"
- :user-color="game.mycolor" :orientation="orientation"
- :vname="game.vname" @play-move="play")
- .button-group
- button(@click="() => play()") Play
- button(@click="() => undo()") Undo
- button(@click="flip") Flip
- button(@click="gotoBegin") GotoBegin
- button(@click="gotoEnd") GotoEnd
- #fenDiv.section-content(v-if="showFen && !!vr")
- p#fenString.text-center {{ vr.getFen() }}
- #pgnDiv.section-content
- a#download(href="#")
- .button-group
- button#downloadBtn(@click="download") {{ st.tr["Download PGN"] }}
-
- // TODO: Import game button copy game locally in IndexedDB
- //button Import game
-
-
-// TODO: do not use localStorage for current game, but directly indexedDB
-// update function is similar
-// ==> retrieval functions must filter on score, and potential "imported" tag
-// ==> this should allow several simultaneous games
-
-
- //MoveList(v-if="showMoves"
- :moves="moves" :cursor="cursor" @goto-move="gotoMove")
+div#baseGame(tabindex=-1 @click="() => focusBg()"
+ @keydown="handleKeys" @wheel="handleScroll")
+ input#modalEog.modal(type="checkbox")
+ div(role="dialog" data-checkbox="modalEog" aria-labelledby="eogMessage")
+ .card.smallpad.small-modal.text-center
+ label.modal-close(for="modalEog")
+ h3#eogMessage.section {{ endgameMessage }}
+ #gameContainer
+ #boardContainer
+ Board(:vr="vr" :last-move="lastMove" :analyze="analyze"
+ :user-color="game.mycolor" :orientation="orientation"
+ :vname="game.vname" @play-move="play")
+ #turnIndicator(v-if="game.vname=='Dark' && game.score=='*'")
+ | {{ turn }}
+ #controls
+ button(@click="gotoBegin") <<
+ button(@click="() => undo()") <
+ button(@click="flip") ⇅
+ button(@click="() => play()") >
+ button(@click="gotoEnd") >>
+ #pgnDiv
+ div(v-if="game.vname!='Dark' || game.score!='*'")
+ a#download(href="#")
+ button(@click="download") {{ st.tr["Download PGN"] }}
+ button(v-if="game.vname!='Dark' && game.mode!='analyze'"
+ @click="analyzePosition")
+ | {{ st.tr["Analyze"] }}
+ // NOTE: rather ugly hack to avoid showing twice "rules" link...
+ button(v-if="!$route.path.match('/variants/')" @click="showRules")
+ | {{ st.tr["Rules"] }}
+ #movesList
+ MoveList(v-if="showMoves" :score="game.score" :message="game.scoreMsg"
+ :firstNum="firstMoveNumber" :moves="moves" :cursor="cursor"
+ @goto-move="gotoMove")
+ .clearer
+
+