Fix problems edit
[vchess.git] / client / src / views / Problems.vue
index e17bead..1e8ff68 100644 (file)
@@ -8,7 +8,7 @@ main
     role="dialog"
     data-checkbox="modalNewprob"
   )
-    .card(@keyup.enter="sendProblem()")
+    .card
       label#closeNewprob.modal-close(for="modalNewprob")
       fieldset
         label(for="selectVariant") {{ st.tr["Variant"] }}
@@ -45,7 +45,7 @@ main
       button(@click="sendProblem()") {{ st.tr["Send"] }}
       #dialog.text-center {{ st.tr[infoMsg] }}
   .row(v-if="showOne")
-    .col-sm-12.col-md-10.col-md-offset-2
+    .col-sm-12.col-md-10.col-md-offset-1.col-lg-8.col-lg-offset-2
       #topPage
         span.vname {{ curproblem.vname }}
         span.uname ({{ curproblem.uname }})
@@ -60,7 +60,7 @@ main
           @click="deleteProblem(curproblem)"
         )
           | {{ st.tr["Delete"] }}
-      p.clickable(
+      p.oneInstructions.clickable(
         v-html="parseHtml(curproblem.instruction)"
         @click="curproblem.showSolution=!curproblem.showSolution"
       )
@@ -273,7 +273,7 @@ export default {
     },
     displayProblem: function(p) {
       return (
-        (this.selectedVar == 0 || p.vid == this.selectedVar) &&
+        (!this.selectedVar || p.vid == this.selectedVar) &&
         ((this.onlyMines && p.uid == this.st.user.id) ||
           (!this.onlyMines && p.uid != this.st.user.id))
       );
@@ -293,7 +293,7 @@ export default {
     sendProblem: function() {
       const error = checkProblem(this.curproblem);
       if (error) {
-        alert(error);
+        alert(this.st.tr[error]);
         return;
       }
       const edit = this.curproblem.id > 0;
@@ -306,21 +306,24 @@ export default {
           if (edit) {
             let editedP = this.problems.find(p => p.id == this.curproblem.id);
             this.copyProblem(this.curproblem, editedP);
-          } //new problem
+          }
           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.problems = [newProblem].concat(this.problems);
+            this.resetCurProb();
           }
-          this.resetCurProb();
           this.infoMsg = "";
+          document.getElementById("modalNewprob").checked = false;
         }
       );
     },
     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");
     },
@@ -358,6 +361,11 @@ textarea
   & > *
     margin: 0
 
+p.oneInstructions
+  margin: 0
+  padding: 2px 5px
+  background-color: lightgreen
+
 #topPage
   span.vname
     font-weight: bold