X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fcomponents%2Fproblems.js;h=bcd069cc389d7b2386514f5016f0af2d3b1df554;hb=298c42e63ae321526693e9ce418c4113af36e025;hp=9288a393a6f9135cd325273cc36a3a30c775d7db;hpb=247356cde3f4e36004942c5f57187d667f7ef27c;p=vchess.git diff --git a/public/javascripts/components/problems.js b/public/javascripts/components/problems.js index 9288a393..bcd069cc 100644 --- a/public/javascripts/components/problems.js +++ b/public/javascripts/components/problems.js @@ -1,7 +1,7 @@ Vue.component('my-problems', { data: function () { return { - problems: problemArray, //initial value + problems: [], newProblem: { fen: "", instructions: "", @@ -39,16 +39,16 @@ Vue.component('my-problems', {
+ :placeholder='translate("Full FEN description")'/>

{{ translate("Safe HTML tags allowed") }}

+ :placeholder='translate("Describe the problem goal")'> + :placeholder='translate("How to solve the problem?")'>
@@ -71,14 +71,18 @@ Vue.component('my-problems', { return this.problems.sort((p1,p2) => { return p2.added - p1.added; }); }, }, + created: function() { + // TODO: fetch most recent problems from server + }, methods: { translate: function(text) { return translations[text]; }, - // Propagate "show problem" event to parent component (my-variant) - bubbleUp: function(problem) { - this.$emit('show-problem', JSON.stringify(problem)); - }, + // TODO: obsolete: +// // Propagate "show problem" event to parent component (my-variant) +// bubbleUp: function(problem) { +// this.$emit('show-problem', JSON.stringify(problem)); +// }, fetchProblems: function(direction) { if (this.problems.length == 0) return; //what could we do?! @@ -105,11 +109,11 @@ Vue.component('my-problems', { }, previewNewProblem: function() { if (!V.IsGoodFen(this.newProblem.fen)) - return alert("Bad FEN string"); - if (this.newProblem.instructions.length == 0) - return alert("Empty instructions"); - if (this.newProblem.solution.length == 0) - return alert("Empty solution"); + return alert(translations["Bad FEN description"]); + if (this.newProblem.instructions.trim().length == 0) + return alert(translations["Empty instructions"]); + if (this.newProblem.solution.trim().length == 0) + return alert(translations["Empty solution"]); this.newProblem.stage = "preview"; }, sendNewProblem: function() { @@ -127,3 +131,8 @@ Vue.component('my-problems', { }, }, }) + +// TODO: +// possibilité de supprimer / éditer si peer ID reconnu comme celui du probleme (champ "uploader") +// --> côté serveur on vérifie un certain "secret" +// --> filtre possible "mes problèmes"