X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=client%2Fsrc%2Fviews%2FProblems.vue;h=057035acae3e6d25914b0d658cb93cb4e2f9f555;hb=c64b61f254fb6e606ab6be6440b6dbec1bb2ad05;hp=57473bce0a2f31635a05e9eb14753a6dee830442;hpb=3c24a27df9d973bdbfd8d863a2209bad5da03572;p=vchess.git
diff --git a/client/src/views/Problems.vue b/client/src/views/Problems.vue
index 57473bce..057035ac 100644
--- a/client/src/views/Problems.vue
+++ b/client/src/views/Problems.vue
@@ -8,7 +8,7 @@ main
.card
label.modal-close(for="modalRules")
a#variantNameInProblems(:href="'/#/variants/'+game.vname")
- | {{ game.vname }}
+ | {{ curproblem.vdisp }}
div(v-html="rulesContent")
input#modalNewprob.modal(
type="checkbox"
@@ -44,17 +44,17 @@ main
fieldset
textarea.instructions-edit(
:placeholder="st.tr['Instructions']"
- @input="adjustHeight($event)"
+ @input="adjustHeight('instructions')"
v-model="curproblem.instruction"
)
- p(v-html="parseHtml(curproblem.instruction)")
+ .instructions(v-html="parseHtml(curproblem.instruction)")
fieldset
textarea.solution-edit(
:placeholder="st.tr['Solution']"
- @input="adjustHeight($event)"
+ @input="adjustHeight('solution')"
v-model="curproblem.solution"
)
- p(v-html="parseHtml(curproblem.solution)")
+ .solution(v-html="parseHtml(curproblem.solution)")
button(@click="sendProblem()") {{ st.tr["Send"] }}
#dialog.text-center {{ st.tr[infoMsg] }}
.row(v-if="showOne")
@@ -63,19 +63,19 @@ main
.button-group(v-if="canIedit(curproblem.uid)")
button(@click="editProblem(curproblem)") {{ st.tr["Edit"] }}
button(@click="deleteProblem(curproblem)") {{ st.tr["Delete"] }}
- span.vname {{ curproblem.vname }}
+ span.vname {{ curproblem.vdisp }}
span.uname ({{ curproblem.uname }})
button.marginleft(@click="backToList()") {{ st.tr["Back to list"] }}
button.nomargin(@click="gotoPrevNext(curproblem,1)")
| {{ st.tr["Previous_p"] }}
button.nomargin(@click="gotoPrevNext(curproblem,-1)")
| {{ st.tr["Next_p"] }}
- p.oneInstructions.clickable(
+ .instructions.oneInstructions.clickable(
v-html="parseHtml(curproblem.instruction)"
@click="curproblem.showSolution=!curproblem.showSolution"
)
| {{ st.tr["Show solution"] }}
- p(
+ .solution(
v-show="curproblem.showSolution"
v-html="parseHtml(curproblem.solution)"
)
@@ -108,7 +108,7 @@ main
v-show="onlyMine || !selectedVar || p.vid == selectedVar"
@click="setHrefPid(p)"
)
- td {{ p.vname }}
+ td {{ p.vdisp }}
td {{ firstChars(p.instruction) }}
td {{ p.id }}
button#loadMoreBtn(
@@ -131,6 +131,7 @@ import params from "@/parameters";
import { getDiagram, replaceByDiag } from "@/utils/printDiagram";
import { processModalClick } from "@/utils/modalClick";
import { ArrayFun } from "@/utils/array";
+import afterRawLoad from "@/utils/afterRawLoad";
import BaseGame from "@/components/BaseGame.vue";
export default {
name: "my-problems",
@@ -140,10 +141,7 @@ export default {
data: function() {
return {
st: store.state,
- emptyVar: {
- vid: 0,
- vname: ""
- },
+ emptyVar: { vid: 0 },
// Problem currently showed, or edited:
curproblem: {
id: 0, //used in case of edit
@@ -212,14 +210,16 @@ export default {
document.getElementById("inputFen").focus();
}
},
- adjustHeight: function(e) {
+ adjustHeight: function(elt) {
// https://stackoverflow.com/a/48460773
- let t = e.target;
+ let t = document.querySelector("." + elt + "-edit");
t.style.height = "";
- t.style.height = t.scrollHeight + "px";
+ t.style.height = (t.scrollHeight + 3) + "px";
},
setVname: function(prob) {
- prob.vname = this.st.variants.find(v => v.id == prob.vid).name;
+ const variant = this.st.variants.find(v => v.id == prob.vid);
+ prob.vname = variant.name;
+ prob.vdisp = variant.display;
},
// Add vname and user names:
decorate: function(problems, callback) {
@@ -249,7 +249,8 @@ export default {
}
}
);
- } else if (!!callback) callback();
+ }
+ else if (!!callback) callback();
},
firstChars: function(text) {
let preparedText = text
@@ -281,6 +282,7 @@ export default {
this.curproblem.uid = 0;
this.curproblem.vid = "";
this.curproblem.vname = "";
+ this.curproblem.vdisp = "";
this.curproblem.fen = "";
this.curproblem.diag = "";
this.curproblem.instruction = "";
@@ -289,7 +291,10 @@ export default {
},
parseHtml: function(txt) {
return !txt.match(/<[/a-zA-Z]+>/)
- ? txt.replace(/\n/g, "
") //no HTML tag
+ ?
+ // No HTML tag
+ txt.replace(/\n\n/g, "