.row(v-else)
.col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
#controls
- button#newProblem(onClick="window.doClick('modalNewprob')")
+ button#newProblem(@click="prepareNewProblem()")
| {{ st.tr["New problem"] }}
label(for="checkboxMine") {{ st.tr["My problems"] }}
input#checkboxMine(
let names = {};
this.problems.forEach(p => {
if (p.uid != this.st.user.id) names[p.uid] = "";
- //unknwon for now
else p.uname = this.st.user.name;
});
const showOneIfPid = () => {
res2.users.forEach(u => {
names[u.id] = u.name;
});
- this.problems.forEach(p => (p.uname = names[p.uid]));
+ this.problems.forEach(p => {
+ if (!p.uname)
+ p.uname = names[p.uid];
+ });
showOneIfPid();
});
} else showOneIfPid();
this.showOne = true;
});
},
+ prepareNewProblem: function() {
+ this.resetCurProb();
+ window.doClick("modalNewprob");
+ },
sendProblem: function() {
const error = checkProblem(this.curproblem);
if (error) {
if (edit) {
let editedP = this.problems.find(p => p.id == this.curproblem.id);
this.copyProblem(this.curproblem, editedP);
+ this.showProblem(editedP);
}
else {
- // New problem
let newProblem = Object.assign({}, this.curproblem);
newProblem.id = ret.id;
newProblem.uid = this.st.user.id;
newProblem.uname = this.st.user.name;
- this.problems = this.problems.concat(newProblem);
- this.resetCurProb();
+ this.problems = [newProblem].concat(this.problems);
}
- this.infoMsg = "";
document.getElementById("modalNewprob").checked = false;
+ this.infoMsg = "";
}
);
},
editProblem: function(prob) {
- if (!prob.diag) this.setDiagram(prob); //V is loaded at this stage
+ // prob.diag might correspond to some other problem or be empty:
+ this.setDiagram(prob); //V is loaded at this stage
this.copyProblem(prob, this.curproblem);
window.doClick("modalNewprob");
},