vid: parseInt(localStorage.getItem("vid")) || 0,
to: "", //name of challenged player (if any)
cadence: localStorage.getItem("cadence") || "",
- randomness: parseInt(localStorage.getItem("randomness")) || 2,
+ randomness: parseInt(localStorage.getItem("challRandomness")) || 2,
// VariantRules object, stored to not interfere with
// diagrams of targetted challenges:
V: null,
pages: [{ path: "/", focus: true }]
}
);
+ const connectAndPoll = () => {
+ this.send("connect");
+ this.send("pollclientsandgamers");
+ };
+ // Initialize connection
+ this.connexionString =
+ params.socketUrl +
+ "/?sid=" +
+ this.st.user.sid +
+ "&id=" +
+ this.st.user.id +
+ "&tmpId=" +
+ getRandString() +
+ "&page=" +
+ // Hall: path is "/" (could be hard-coded as well)
+ encodeURIComponent(this.$route.path);
+ this.conn = new WebSocket(this.connexionString);
+ this.conn.onopen = connectAndPoll;
+ this.conn.onmessage = this.socketMessageListener;
+ this.conn.onclose = this.socketCloseListener;
+ },
+ mounted: function() {
+ document.addEventListener('visibilitychange', this.visibilityChange);
+ ["peopleWrap", "infoDiv", "newgameDiv"].forEach(eltName => {
+ document.getElementById(eltName)
+ .addEventListener("click", processModalClick);
+ });
+ document.querySelectorAll("#predefinedCadences > button").forEach(b => {
+ b.addEventListener("click", () => {
+ this.newchallenge.cadence = b.innerHTML;
+ });
+ });
+ const dispCorr = this.$route.query["disp"];
+ const showCtype =
+ dispCorr || localStorage.getItem("type-challenges") || "live";
+ const showGtype =
+ dispCorr || localStorage.getItem("type-games") || "live";
+ this.setDisplay('c', showCtype);
+ this.setDisplay('g', showGtype);
// Ask server for current corr games (all but mines)
ajax(
"/games",
{
data: { uid: this.st.user.id, excluded: true },
success: (response) => {
+ if (
+ response.games.length > 0 &&
+ this.games.length == 0 &&
+ this.gdisplay == "live"
+ ) {
+ document
+ .getElementById("btnGcorr")
+ .classList.add("somethingnew");
+ }
this.games = this.games.concat(
response.games.map(g => {
const type = this.classifyObject(g);
{
data: { uid: this.st.user.id },
success: (response) => {
+ if (
+ response.challenges.length > 0 &&
+ this.challenges.length == 0 &&
+ this.cdisplay == "live"
+ ) {
+ document
+ .getElementById("btnCcorr")
+ .classList.add("somethingnew");
+ }
// Gather all senders names, and then retrieve full identity:
// (TODO [perf]: some might be online...)
let names = {};
}
}
);
- const connectAndPoll = () => {
- this.send("connect");
- this.send("pollclientsandgamers");
- };
- // Initialize connection
- this.connexionString =
- params.socketUrl +
- "/?sid=" +
- this.st.user.sid +
- "&id=" +
- this.st.user.id +
- "&tmpId=" +
- getRandString() +
- "&page=" +
- // Hall: path is "/" (could be hard-coded as well)
- encodeURIComponent(this.$route.path);
- this.conn = new WebSocket(this.connexionString);
- this.conn.onopen = connectAndPoll;
- this.conn.onmessage = this.socketMessageListener;
- this.conn.onclose = this.socketCloseListener;
- },
- mounted: function() {
- document.addEventListener('visibilitychange', this.visibilityChange);
- ["peopleWrap", "infoDiv", "newgameDiv"].forEach(eltName => {
- let elt = document.getElementById(eltName);
- elt.addEventListener("click", processModalClick);
- });
- document.querySelectorAll("#predefinedCadences > button").forEach(b => {
- b.addEventListener("click", () => {
- this.newchallenge.cadence = b.innerHTML;
- });
- });
- const dispCorr = this.$route.query["disp"];
- const showCtype =
- dispCorr || localStorage.getItem("type-challenges") || "live";
- const showGtype =
- dispCorr || localStorage.getItem("type-games") || "live";
- this.setDisplay("c", showCtype);
- this.setDisplay("g", showGtype);
},
beforeDestroy: function() {
document.removeEventListener('visibilitychange', this.visibilityChange);
const vModule = await import("@/variants/" + vname + ".js");
this.newchallenge.V = vModule.VariantRules;
this.newchallenge.vname = vname;
- if (!!cb)
- cb();
+ if (!!cb) cb();
},
trySetNewchallDiag: function() {
if (!this.newchallenge.fen) {
this.newchallenge.vid = pchall.vid;
this.newchallenge.cadence = pchall.cadence;
this.newchallenge.randomness = pchall.randomness;
- this.issueNewChallenge();
+ this.loadNewchallVariant(this.issueNewChallenge);
},
issueNewChallenge: async function() {
if (!!(this.newchallenge.cadence.match(/^[0-9]+$/)))
// Remember cadence + vid for quicker further challenges:
localStorage.setItem("cadence", chall.cadence);
localStorage.setItem("vid", chall.vid);
- localStorage.setItem("randomness", chall.randomness);
+ localStorage.setItem("challRandomness", chall.randomness);
document.getElementById("modalNewgame").checked = false;
// Show the challenge if not on current display
if (