- clickChallenge: function(c) {
- const myChallenge = (c.from.sid == this.st.user.sid //live
- || (this.st.user.id > 0 && c.from.id == this.st.user.id)); //corr
- if (!myChallenge)
- {
- if (c.type == "corr" && this.st.user.id <= 0)
- return alert(this.st.tr["Please log in to accept corr challenges"]);
- c.accepted = true;
- if (!!c.to) //c.to == this.st.user.name (connected)
- {
- // TODO: if special FEN, show diagram after loading variant
- c.accepted = confirm("Accept challenge?");
+ // Callback function after a diagram was showed to accept
+ // or refuse targetted challenge:
+ decisionChallenge: function(accepted) {
+ this.curChallToAccept.accepted = accepted;
+ this.finishProcessingChallenge(this.curChallToAccept);
+ document.getElementById("modalAccept").checked = false;
+ },
+ finishProcessingChallenge: function(c) {
+ if (c.accepted) {
+ c.seat = {
+ // Again, avoid c.seat = st.user to not reveal email
+ sid: this.st.user.sid,
+ id: this.st.user.id,
+ name: this.st.user.name
+ };
+ this.launchGame(c);
+ } else {
+ const oppsid = this.getOppsid(c);
+ if (!!oppsid)
+ this.send("refusechallenge", { data: c.id, target: oppsid });
+ if (c.type == "corr")
+ ajax("/challenges", "DELETE", { id: c.id });
+ }
+ this.send("deletechallenge", { data: c.id });
+ },
+ clickChallenge: async function(c) {
+ const myChallenge =
+ c.from.sid == this.st.user.sid || //live
+ (this.st.user.id > 0 && c.from.id == this.st.user.id); //corr
+ if (!myChallenge) {
+ if (c.type == "corr" && this.st.user.id <= 0) {
+ alert(this.st.tr["Please log in to accept corr challenges"]);
+ return;