X-Git-Url: https://git.auder.net/?a=blobdiff_plain;ds=sidebyside;f=client%2Fsrc%2Fviews%2FProblems.vue;h=057035acae3e6d25914b0d658cb93cb4e2f9f555;hb=HEAD;hp=7f8632da5e58879a0837dc2cfa07b428f0788f45;hpb=29d33c8ac72a9ea5d72d8c48c426d8380e188bd7;p=vchess.git
diff --git a/client/src/views/Problems.vue b/client/src/views/Problems.vue
index 7f8632da..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"
@@ -42,17 +42,19 @@ main
)
#diagram(v-html="curproblem.diag")
fieldset
- textarea(
+ textarea.instructions-edit(
:placeholder="st.tr['Instructions']"
+ @input="adjustHeight('instructions')"
v-model="curproblem.instruction"
)
- p(v-html="parseHtml(curproblem.instruction)")
+ .instructions(v-html="parseHtml(curproblem.instruction)")
fieldset
- textarea(
+ textarea.solution-edit(
:placeholder="st.tr['Solution']"
+ @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")
@@ -61,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)"
)
@@ -106,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(
@@ -129,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",
@@ -138,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
@@ -210,8 +210,16 @@ export default {
document.getElementById("inputFen").focus();
}
},
+ adjustHeight: function(elt) {
+ // https://stackoverflow.com/a/48460773
+ let t = document.querySelector("." + elt + "-edit");
+ t.style.height = "";
+ 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) {
@@ -241,7 +249,8 @@ export default {
}
}
);
- } else if (!!callback) callback();
+ }
+ else if (!!callback) callback();
},
firstChars: function(text) {
let preparedText = text
@@ -273,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 = "";
@@ -281,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, "