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}"
)
}
});
},
- 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)
);
if (
this.st.user.sid == g.players[0].sid ||
- this.st.user.id == g.players[0].uid
+ this.st.user.id == g.players[0].id
)
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 +
+ // Modulate with creation time (value in ]0,1[)
+ (g2.created - g1.created) / (deltaCreated + 1)
+ );
+ });
+ },
scoreClass: function(g) {
if (g.score == "*" || !g.myColor) return {};
// Ok it's my finished game: determine if I won, drew or lost.
if (
// My game ?
game.players.some(p =>
- p.sid == this.st.user.sid ||
- p.uid == this.st.user.id
+ p.sid == this.st.user.sid || p.id == this.st.user.id
)
) {
const message =
GameStorage.remove(game.id, afterDelete);
else {
const mySide =
- game.players[0].uid == this.st.user.id
+ game.players[0].id == this.st.user.id
? "White"
: "Black";
game["deletedBy" + mySide] = true;