projects
/
vchess.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix options in preset challenges
[vchess.git]
/
client
/
src
/
views
/
Hall.vue
diff --git
a/client/src/views/Hall.vue
b/client/src/views/Hall.vue
index
224d5d2
..
bdb2805
100644
(file)
--- a/
client/src/views/Hall.vue
+++ b/
client/src/views/Hall.vue
@@
-172,9
+172,11
@@
main
th {{ st.tr["Options"] }}
th
tbody
th {{ st.tr["Options"] }}
th
tbody
+ // TODO: remove the check !!pc.options
tr(
v-for="pc in presetChalls"
@click="newChallFromPreset(pc)"
tr(
v-for="pc in presetChalls"
@click="newChallFromPreset(pc)"
+ v-if="!!pc.options"
)
td {{ pc.vname }}
td {{ pc.cadence }}
)
td {{ pc.vname }}
td {{ pc.cadence }}
@@
-848,7
+850,7
@@
export default {
id: c.id,
from: this.st.user.sid,
to: c.to,
id: c.id,
from: this.st.user.sid,
to: c.to,
- options:
c.options
,
+ options:
JSON.stringify(c.options)
,
fen: c.fen,
vid: c.vid,
cadence: c.cadence,
fen: c.fen,
vid: c.vid,
cadence: c.cadence,
@@
-907,6
+909,8
@@
export default {
if (!game.score)
// New game from Hall
newGame.score = "*";
if (!game.score)
// New game from Hall
newGame.score = "*";
+ // TODO: remove patch on next line (options || "{}")
+ newGame.options = JSON.parse(newGame.options || "{}");
this.games.push(newGame);
if (
newGame.score == '*' &&
this.games.push(newGame);
if (
newGame.score == '*' &&
@@
-927,9
+931,12
@@
export default {
}
case "startgame": {
// New game just started, I'm involved
}
case "startgame": {
// New game just started, I'm involved
- const gameInfo = data.data;
- if (this.classifyObject(gameInfo) == "live")
+ let gameInfo = data.data;
+ if (this.classifyObject(gameInfo) == "live") {
+ // TODO: remove patch on next line (+ const gameInfo)
+ if (!gameInfo.options) gameInfo.options = "{}";
this.startNewGame(gameInfo);
this.startNewGame(gameInfo);
+ }
else {
this.infoMessage =
this.st.tr["New correspondence game:"] + " " +
else {
this.infoMessage =
this.st.tr["New correspondence game:"] + " " +
@@
-973,6
+980,7
@@
export default {
let moreGames = res.games.map(g => {
this.setVname(g);
g.type = "corr";
let moreGames = res.games.map(g => {
this.setVname(g);
g.type = "corr";
+ g.options = JSON.parse(g.options);
return g;
});
this.games = this.games.concat(moreGames);
return g;
});
this.games = this.games.concat(moreGames);
@@
-992,7
+1000,8
@@
export default {
) {
let newChall = Object.assign({}, chall);
newChall.type = this.classifyObject(chall);
) {
let newChall = Object.assign({}, chall);
newChall.type = this.classifyObject(chall);
- newChall.options = chall.options;
+ // TODO: remove patch on next line (options || "{}")
+ newChall.options = JSON.parse(chall.options || "{}");
newChall.added = Date.now();
let fromValues = Object.assign({}, this.people[chall.from]);
delete fromValues["pages"]; //irrelevant in this context
newChall.added = Date.now();
let fromValues = Object.assign({}, this.people[chall.from]);
delete fromValues["pages"]; //irrelevant in this context
@@
-1087,15
+1096,17
@@
export default {
return;
}
window.V = this.newchallenge.V;
return;
}
window.V = this.newchallenge.V;
- let chall = Object.assign({
options: {} }, this.newchallenge
);
+ let chall = Object.assign({
}, this.newchallenge, { options: {} }
);
// Get/set options variables (if any) / TODO: v-model?!
for (const check of this.newchallenge.V.Options.check || []) {
const elt = document.getElementById(check.variable + "_opt");
// Get/set options variables (if any) / TODO: v-model?!
for (const check of this.newchallenge.V.Options.check || []) {
const elt = document.getElementById(check.variable + "_opt");
-
if (elt.checked) chall.options[check.variable] = true
;
+
chall.options[check.variable] = elt.checked
;
}
for (const select of this.newchallenge.V.Options.select || []) {
const elt = document.getElementById(select.variable + "_opt");
}
for (const select of this.newchallenge.V.Options.select || []) {
const elt = document.getElementById(select.variable + "_opt");
- chall.options[select.variable] = parseInt(elt.value, 10) || elt.value;
+ const tryIntVal = parseInt(elt.value, 10);
+ chall.options[select.variable] =
+ (isNaN(tryIntVal) ? elt.value : tryIntVal);
}
error = checkChallenge(chall);
if (error) {
}
error = checkChallenge(chall);
if (error) {
@@
-1123,7
+1134,7
@@
export default {
alert(this.st.tr["Challenge already exists"]);
return;
}
alert(this.st.tr["Challenge already exists"]);
return;
}
- if (this.newchallenge.memorize) this.addPresetChall(
this.newchallenge
);
+ if (this.newchallenge.memorize) this.addPresetChall(
chall
);
delete chall["V"];
delete chall["diag"];
const finishAddChallenge = cid => {
delete chall["V"];
delete chall["diag"];
const finishAddChallenge = cid => {
@@
-1166,7
+1177,10
@@
export default {
this.send("newchallenge", {
data: Object.assign(
// Temporarily add sender infos to display challenge on Discord.
this.send("newchallenge", {
data: Object.assign(
// Temporarily add sender infos to display challenge on Discord.
- { from: this.st.user.sid, sender: this.st.user.name }, chall)
+ { from: this.st.user.sid, sender: this.st.user.name },
+ chall,
+ { options: JSON.stringify(chall.options) }
+ )
});
// Add new challenge:
chall.from = {
});
// Add new challenge:
chall.from = {
@@
-1314,7
+1328,7
@@
export default {
let gameInfo = {
id: getRandString(),
fen: c.fen || V.GenRandInitFen(c.options),
let gameInfo = {
id: getRandString(),
fen: c.fen || V.GenRandInitFen(c.options),
- options:
c.options
, //for rematch
+ options:
JSON.stringify(c.options)
, //for rematch
players: players,
vid: c.vid,
cadence: c.cadence
players: players,
vid: c.vid,
cadence: c.cadence
@@
-1364,11
+1378,7
@@
export default {
{
// cid is useful to delete the challenge:
data: {
{
// cid is useful to delete the challenge:
data: {
- gameInfo: Object.assign(
- {},
- gameInfo,
- { options: JSON.stringify(gameInfo.options) }
- ),
+ gameInfo: gameInfo,
cid: c.id
},
success: (response) => {
cid: c.id
},
success: (response) => {
@@
-1394,8
+1404,7
@@
export default {
moves: [],
clocks: [-1, -1], //-1 = unstarted
chats: [],
moves: [],
clocks: [-1, -1], //-1 = unstarted
chats: [],
- score: "*",
- options: JSON.stringify(gameInfo.options)
+ score: "*"
}
);
setTimeout(
}
);
setTimeout(