<template lang="pug">
main
- input#modalInfo.modal(type="checkbox")
- div#infoDiv(
+ input#modalScore.modal(type="checkbox")
+ div#scoreDiv(
role="dialog"
- data-checkbox="modalInfo"
+ data-checkbox="modalScore"
)
.card.text-center
- label.modal-close(for="modalInfo")
+ label.modal-close(for="modalScore")
+ p
+ span.score {{ game.score }}
+ | :
+ span.score-msg {{ st.tr[game.scoreMsg] }}
+ input#modalRematch.modal(type="checkbox")
+ div#rematchDiv(
+ role="dialog"
+ data-checkbox="modalRematch"
+ )
+ .card.text-center
+ label.modal-close(for="modalRematch")
a(
:href="'#/game/' + rematchId"
- onClick="document.getElementById('modalInfo').checked=false"
+ onClick="document.getElementById('modalRematch').checked=false"
)
| {{ st.tr["Rematch in progress"] }}
input#modalChat.modal(
this.toggleChat("close")
});
});
- document.getElementById("infoDiv")
- .addEventListener("click", processModalClick);
+ ["rematchDiv", "scoreDiv"].forEach(
+ (eltName) => {
+ document.getElementById(eltName)
+ .addEventListener("click", processModalClick);
+ }
+ );
if ("ontouchstart" in window) {
// Disable tooltips on smartphones:
document.querySelectorAll("#aboveBoard .tooltip").forEach(elt => {
if (sid != this.st.user.sid) {
this.send("askidentity", { target: sid });
this.people[sid] = { tmpIds: data.sockIds[sid] };
- } else {
+ }
+ else {
// Complete my tmpIds:
Object.assign(this.people[sid].tmpIds, data.sockIds[sid]);
}
// player.tmpIds is already set
player.name = user.name;
player.id = user.id;
+ if (this.game.type == "live") {
+ const myGidx =
+ this.game.players.findIndex(p => p.sid == this.st.user.sid);
+ // Sometimes a player name isn't stored yet (TODO: why?)
+ if (
+ myGidx >= 0 &&
+ !this.game.players[1 - myGidx].name &&
+ this.game.players[1 - myGidx].sid == user.sid &&
+ !!user.name
+ ) {
+ this.game.players[1-myGidx].name = user.name;
+ GameStorage.update(
+ this.gameRef,
+ { playerName: { idx: 1 - myGidx, name: user.name } }
+ );
+ }
+ }
this.$forceUpdate(); //TODO: shouldn't be required
// If I multi-connect, kill current connexion if no mark (I'm older)
if (this.newConnect[user.sid]) {
this.$router.push("/game/" + gameInfo.id);
} else {
this.rematchId = gameInfo.id;
- document.getElementById("modalInfo").checked = true;
+ document.getElementById("modalRematch").checked = true;
}
break;
}
const myIdx = game.players.findIndex(p => {
return p.sid == this.st.user.sid || p.id == this.st.user.id;
});
+ // Sometimes the name isn't stored yet (TODO: why?)
+ if (
+ myIdx >= 0 &&
+ gtype == "live" &&
+ !game.players[myIdx].name &&
+ !!this.st.user.name
+ ) {
+ game.players[myIdx].name = this.st.user.name;
+ GameStorage.update(
+ game.id,
+ { playerName: { idx: myIdx, name: this.st.user.name } }
+ );
+ }
// "mycolor" is undefined for observers
const mycolor = [undefined, "w", "b"][myIdx + 1];
if (gtype == "corr") {
game.clocks = [tc.mainTime, tc.mainTime];
if (myIdx >= 0) {
// I play in this live game
- GameStorage.update(game.id, {
- clocks: game.clocks
- });
+ GameStorage.update(
+ game.id,
+ { clocks: game.clocks }
+ );
}
} else {
if (!!game.initime)
this.game.score = score;
if (!scoreMsg) scoreMsg = getScoreMessage(score);
this.game.scoreMsg = scoreMsg;
+ // Display result in a un-missable way:
+ document.getElementById("modalScore").checked = true;
this.$set(this.game, "scoreMsg", scoreMsg);
const myIdx = this.game.players.findIndex(p => {
return p.sid == this.st.user.sid || p.id == this.st.user.id;
</script>
<style lang="sass" scoped>
-#infoDiv > .card
+#scoreDiv > .card, #rematchDiv > .card
padding: 15px 0
max-width: 430px
+span.score
+ font-weight: bold
+
.connected
background-color: lightgreen