)
.card
div(v-if="st.user.id == uid")
- div
- button(@click="modeEdit = !modeEdit")
+ div.buttons
+ button(@click="toggleEdit()")
| {{ st.tr[modeEdit ? "Cancel" : "Edit"] }}
button(
v-show="modeEdit"
| {{ st.tr["Send"] }}
fieldset(v-if="userBio !== undefined && modeEdit")
textarea(
- @input="adjustHeight($event)"
+ @input="adjustHeight()"
v-model="userBio"
)
h3 {{ uname }}
methods: {
parseHtml: function(txt) {
return !txt.match(/<[/a-zA-Z]+>/)
- ? txt.replace(/\n/g, "<br/>") //no HTML tag
+ ?
+ // No HTML tag
+ txt.replace(/\n\n/g, "<br/><div class='br'></div>")
+ .replace(/\n/g, "<br/>")
: txt;
},
- adjustHeight: function(e) {
+ adjustHeight: function() {
// https://stackoverflow.com/a/48460773
- let t = e.target;
+ let t = document.querySelector("#player_" + this.uid + " textarea");
t.style.height = "";
- t.style.height = t.scrollHeight + "px";
+ t.style.height = (t.scrollHeight + 3) + "px";
+ },
+ toggleEdit: function() {
+ this.modeEdit = !this.modeEdit;
+ if (this.modeEdit) this.$nextTick(this.adjustHeight);
},
showBio: function() {
if (!this.uname)
document.querySelector("#player_" + this.uid + " > .bio-div")
.addEventListener("click", processModalClick);
}
+ else if (this.modeEdit) this.adjustHeight();
},
sendBio: function() {
ajax(
margin: 0 var(--universal-margin)
p, ul, ol
margin: var(--universal-margin) 0
+ .br
+ display: block
+ margin: 10px 0
</style>
<style lang="sass" scoped>
max-width: 500px
max-height: 100%
+.buttons > button
+ margin-bottom: 0
+
+h3
+ margin-bottom: 5px
+
textarea
display: block
margin: 0 var(--universal-margin)
fieldset
textarea.instructions-edit(
:placeholder="st.tr['Instructions']"
- @input="adjustHeight($event)"
+ @input="adjustHeight('instructions')"
v-model="curproblem.instruction"
)
p(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)")
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;
},
parseHtml: function(txt) {
return !txt.match(/<[/a-zA-Z]+>/)
- ? txt.replace(/\n/g, "<br/>") //no HTML tag
+ ?
+ // No HTML tag
+ txt.replace(/\n\n/g, "<br/><div class='br'></div>")
+ .replace(/\n/g, "<br/>")
: txt;
},
changeVariant: function(prob) {
},
prepareNewProblem: function() {
this.resetCurProb();
+ this.adjustHeight("instructions");
+ this.adjustHeight("solution");
window.doClick("modalNewprob");
},
sendProblem: function() {
// 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);
+ this.adjustHeight("instructions");
+ this.adjustHeight("solution");
window.doClick("modalNewprob");
},
deleteProblem: function(prob) {
<style lang="sass">
@import "@/styles/_board_squares_img.sass"
@import "@/styles/_rules.sass"
+.br
+ display: block
+ margin: 10px 0
</style>
<style lang="sass" scoped>