X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FMyGames.vue;h=863d17fc42ff24e675519c8fd1ccfcba1b913f5e;hb=98fb976e16bd19564c960d64fceda49955c14fa6;hp=1ca94117536a21d20066ec62183fdce9619edb4c;hpb=77c5096644d83aaae8ab1dd42a5cde524507cf9d;p=vchess.git diff --git a/client/src/views/MyGames.vue b/client/src/views/MyGames.vue index 1ca94117..863d17fc 100644 --- a/client/src/views/MyGames.vue +++ b/client/src/views/MyGames.vue @@ -3,11 +3,11 @@ main .row .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2 .button-group - button(@click="display='live'") {{ st.tr["Live games"] }} - button(@click="display='corr'") {{ st.tr["Correspondance games"] }} - GameList(v-show="display=='live'" :games="filterGames('live')" + button.tabbtn#liveGames(@click="setDisplay('live',$event)") {{ st.tr["Live games"] }} + button.tabbtn#corrGames(@click="setDisplay('corr',$event)") {{ st.tr["Correspondance games"] }} + GameList(v-show="display=='live'" :games="liveGames" @show-game="showGame") - GameList(v-show="display=='corr'" :games="filterGames('corr')" + GameList(v-show="display=='corr'" :games="corrGames" @show-game="showGame") @@ -16,9 +16,8 @@ import { store } from "@/store"; import { GameStorage } from "@/utils/gameStorage"; import { ajax } from "@/utils/ajax"; import GameList from "@/components/GameList.vue"; - export default { - name: "my-games", + name: "my-my-games", components: { GameList, }, @@ -26,31 +25,43 @@ export default { return { st: store.state, display: "live", - games: [], + liveGames: [], + corrGames: [], }; }, created: function() { GameStorage.getAll((localGames) => { localGames.forEach((g) => g.type = this.classifyObject(g)); - //Array.prototype.push.apply(this.games, localGames); //TODO: Vue 3 - this.games = this.games.concat(localGames); + this.liveGames = localGames; }); if (this.st.user.id > 0) { ajax("/games", "GET", {uid: this.st.user.id}, (res) => { res.games.forEach((g) => g.type = this.classifyObject(g)); - //Array.prototype.push.apply(this.games, res.games); //TODO: Vue 3 - this.games = this.games.concat(res.games); + this.corrGames = res.games; }); } }, + mounted: function() { + const showType = localStorage.getItem("type-myGames") || "live"; + this.setDisplay(showType); + }, methods: { - // TODO: classifyObject and filterGames are redundant (see Hall.vue) - classifyObject: function(o) { - return (o.timeControl.indexOf('d') === -1 ? "live" : "corr"); + setDisplay: function(type, e) { + this.display = type; + localStorage.setItem("type-myGames", type); + let elt = !!e + ? e.target + : document.getElementById(type + "Games"); + elt.classList.add("active"); + if (!!elt.previousElementSibling) + elt.previousElementSibling.classList.remove("active"); + else + elt.nextElementSibling.classList.remove("active"); }, - filterGames: function(type) { - return this.games.filter(g => g.type == type); + // TODO: classifyObject is redundant (see Hall.vue) + classifyObject: function(o) { + return (o.cadence.indexOf('d') === -1 ? "live" : "corr"); }, showGame: function(g) { this.$router.push("/game/" + g.id); @@ -58,3 +69,11 @@ export default { }, }; + +