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}"
)
<script>
import { store } from "@/store";
import { GameStorage } from "@/utils/gameStorage";
+import { ImportgameStorage } from "@/utils/importgameStorage";
import { ajax } from "@/utils/ajax";
export default {
name: "my-game-list",
}
});
},
- computed: {
+ methods: {
+ player_s: function(g) {
+ if (this.showBoth)
+ return (
+ (g.players[0].name || "@nonymous") +
+ " - " +
+ (g.players[1].name || "@nonymous")
+ );
+ if (
+ this.st.user.sid == g.players[0].sid ||
+ 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;
const deltaCreated = maxCreated - minCreated;
return remGames.sort((g1, g2) => {
return (
- g2.priority - g1.priority + (g2.created - g1.created) / deltaCreated
+ g2.priority - g1.priority +
+ // Modulate with creation time (value in ]0,1[)
+ (g2.created - g1.created) / (deltaCreated + 1)
);
});
},
- },
- methods: {
- player_s: function(g) {
- if (this.showBoth)
- return (
- (g.players[0].name || "@nonymous") +
- " - " +
- (g.players[1].name || "@nonymous")
- );
- if (
- this.st.user.sid == g.players[0].sid ||
- this.st.user.id == g.players[0].uid
- )
- return g.players[1].name || "@nonymous";
- return g.players[0].name || "@nonymous";
- },
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 =
: "Abort and remove game?";
if (confirm(this.st.tr[message])) {
const afterDelete = () => {
- if (game.score == "*") this.$emit("abortgame", game);
+ if (game.score == "*" && game.type != "import")
+ this.$emit("abortgame", game);
this.$set(this.deleted, game.id, true);
};
if (game.type == "live")
// Effectively remove game:
GameStorage.remove(game.id, afterDelete);
+ else if (game.type == "import")
+ ImportgameStorage.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;