X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fcomponents%2FGameList.vue;h=1a50e95696b5052cb0ac813a62a7c21e557d7b79;hb=585d095517ca2aedab8ad125cc7c39b90e13d5cc;hp=7160202802eb856449bf12674a605ea1bb889e00;hpb=e727fe31742dfb3e40eb222c94f4199e2be98453;p=vchess.git diff --git a/client/src/components/GameList.vue b/client/src/components/GameList.vue index 71602028..1a50e956 100644 --- a/client/src/components/GameList.vue +++ b/client/src/components/GameList.vue @@ -9,7 +9,7 @@ div th {{ st.tr["Result"] }} tbody tr( - v-for="g in sortedGames" + v-for="g in sortedGames()" @click="$emit('show-game',g)" :class="{'my-turn': !!g.myTurn}" ) @@ -52,23 +52,6 @@ export default { } }); }, - computed: { - sortedGames: function() { - // Show in order: it's my turn, running games, completed games - let minCreated = Number.MAX_SAFE_INTEGER; - let maxCreated = 0; - this.games.forEach(g => { - if (g.created < minCreated) minCreated = g.created; - if (g.created > maxCreated) maxCreated = g.created; - }); - const deltaCreated = maxCreated - minCreated; - return this.games.sort((g1, g2) => { - return ( - g2.priority - g1.priority + (g2.created - g1.created) / deltaCreated - ); - }); - }, - }, methods: { player_s: function(g) { if (this.showBoth) @@ -84,6 +67,28 @@ export default { return g.players[1].name || "@nonymous"; return g.players[0].name || "@nonymous"; }, + sortedGames: function() { + // Show in order: it's my turn, running games, completed games + let minCreated = Number.MAX_SAFE_INTEGER; + let maxCreated = 0; + let remGames = this.games.filter(g => !this.deleted[g.id]); + remGames.forEach(g => { + if (g.created < minCreated) minCreated = g.created; + if (g.created > maxCreated) maxCreated = g.created; + g.priority = 0; + if (g.score == "*") { + g.priority++; + if (!!g.myColor) g.priority++; + if (!!g.myTurn) g.priority++; + } + }); + const deltaCreated = maxCreated - minCreated; + return remGames.sort((g1, g2) => { + return ( + g2.priority - g1.priority + (g2.created - g1.created) / deltaCreated + ); + }); + }, scoreClass: function(g) { if (g.score == "*" || !g.myColor) return {}; // Ok it's my finished game: determine if I won, drew or lost.