X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FGameList.vue;h=7160202802eb856449bf12674a605ea1bb889e00;hb=e727fe31742dfb3e40eb222c94f4199e2be98453;hp=183d646306f67d77d5bb37b2ea1f85600dcfc8c8;hpb=2a8a94c9e539319c76c0a72967b39f2e7e7b279e;p=vchess.git diff --git a/client/src/components/GameList.vue b/client/src/components/GameList.vue index 183d6463..71602028 100644 --- a/client/src/components/GameList.vue +++ b/client/src/components/GameList.vue @@ -11,7 +11,7 @@ div tr( v-for="g in sortedGames" @click="$emit('show-game',g)" - :class="{'my-turn': g.myTurn}" + :class="{'my-turn': !!g.myTurn}" ) td {{ g.vname }} td {{ player_s(g) }} @@ -54,52 +54,20 @@ export default { }, computed: { sortedGames: function() { - // Show in order: games where it's my turn, my running games, my games, other games + // Show in order: it's my turn, running games, completed games let minCreated = Number.MAX_SAFE_INTEGER; let maxCreated = 0; - const isMyTurn = (g, myColor) => { - const rem = g.movesCount % 2; - return ( - (rem == 0 && myColor == "w") || - (rem == 1 && myColor == "b") - ); - }; - let augmentedGames = this.games - .filter(g => !this.deleted[g.id]) - .map(g => { - let priority = 0; - let myColor = undefined; - if ( - g.players.some( - p => p.uid == this.st.user.id || p.sid == this.st.user.sid - ) - ) { - priority++; - myColor = - g.players[0].uid == this.st.user.id || - g.players[0].sid == this.st.user.sid - ? "w" - : "b"; - if (g.score == "*") { - priority++; - if (g.turn == myColor || isMyTurn(g, myColor)) priority++; - } - } - if (g.created < minCreated) minCreated = g.created; - if (g.created > maxCreated) maxCreated = g.created; - return Object.assign({}, g, { - priority: priority, - myTurn: priority == 3, - myColor: myColor - }); - }); + this.games.forEach(g => { + if (g.created < minCreated) minCreated = g.created; + if (g.created > maxCreated) maxCreated = g.created; + }); const deltaCreated = maxCreated - minCreated; - return augmentedGames.sort((g1, g2) => { + return this.games.sort((g1, g2) => { return ( g2.priority - g1.priority + (g2.created - g1.created) / deltaCreated ); }); - } + }, }, methods: { player_s: function(g) {