X-Git-Url: https://git.auder.net/images/pieces/current/gitweb.js?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FProblems.vue;h=338eaaf2ff920b7cd2198c8ccb6ba49d3b19da43;hb=b3ef5759ad2cf1dcc1e48813bcfc9e1a67b92c7a;hp=3a700eabfd56887c9219225cf213c89bfb54d1ec;hpb=866842c3c310524c034922870234120ed2a16cbf;p=vchess.git diff --git a/client/src/views/Problems.vue b/client/src/views/Problems.vue index 3a700eab..338eaaf2 100644 --- a/client/src/views/Problems.vue +++ b/client/src/views/Problems.vue @@ -72,7 +72,7 @@ main .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( @@ -86,7 +86,7 @@ main :value="v.id" ) | {{ v.name }} - table + table#tProblems tr th {{ st.tr["Variant"] }} th {{ st.tr["Instructions"] }} @@ -159,7 +159,6 @@ export default { 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 = () => { @@ -171,7 +170,10 @@ export default { 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(); @@ -290,6 +292,10 @@ export default { this.showOne = true; }); }, + prepareNewProblem: function() { + this.resetCurProb(); + window.doClick("modalNewprob"); + }, sendProblem: function() { const error = checkProblem(this.curproblem); if (error) { @@ -306,21 +312,23 @@ export default { if (edit) { let editedP = this.problems.find(p => p.id == this.curproblem.id); this.copyProblem(this.curproblem, editedP); - } //new problem + this.showProblem(editedP); + } else { 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.problems = [newProblem].concat(this.problems); } - this.resetCurProb(); + 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"); }, @@ -351,6 +359,9 @@ textarea margin: 0 auto max-width: 400px +table#tProblems + max-height: 100% + #controls margin: 0 width: 100%