X-Git-Url: https://git.auder.net/?a=blobdiff_plain;f=public%2Fjavascripts%2Fcomponents%2Fproblems.js;h=bcd069cc389d7b2386514f5016f0af2d3b1df554;hb=298c42e63ae321526693e9ce418c4113af36e025;hp=b67203a35cc1952a5e14d15020dad103204630f8;hpb=a5d5668613d9a3d04c9a4f8b69122d02b7322137;p=vchess.git diff --git a/public/javascripts/components/problems.js b/public/javascripts/components/problems.js index b67203a3..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: "", @@ -13,15 +13,15 @@ Vue.component('my-problems', { template: `
- - - @@ -34,22 +34,22 @@ Vue.component('my-problems', {
-

Add problem

+

{{ translate("Add a problem") }}

- + + :placeholder='translate("Full FEN description")'/>
-

Safe HTML tags allowed

- +

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

+ - + :placeholder='translate("Describe the problem goal")'> + - + :placeholder='translate("How to solve the problem?")'> +
@@ -58,8 +58,8 @@ Vue.component('my-problems', {
- - + +
@@ -71,11 +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: { - // Propagate "show problem" event to parent component (my-variant) - bubbleUp: function(problem) { - this.$emit('show-problem', JSON.stringify(problem)); + translate: function(text) { + return translations[text]; }, + // 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?! @@ -102,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() { @@ -124,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"