Almost finished problems logic. TODO: showProblem() part
[vchess.git] / public / javascripts / components / problemSummary.js
index 6003f08..48a4253 100644 (file)
@@ -2,16 +2,33 @@
 Vue.component('my-problem-summary', {
        props: ['prob'],
        template: `
-               <div class="problem col-sm-12">
-                       <div class="diagram">
-                               {{ getDiagram(prob.fen) }}
-                       </div>
-                       <div class="problem-instructions">
-                               {{ prob.instructions.substr(0,32) }}
-                       </div>
-                       <div class="problem-time">
-                               {{ prob.added }}
-                       </div>
+               <div class="problem col-sm-12" @click="showProblem()">
+                       <div class="diagram" v-html="getDiagram(prob.fen)"></div>
+                       <div class="problem-instructions" v-html="prob.instructions.substr(0,32)"></div>
+                       <div class="problem-time">{{ timestamp2datetime(prob.added) }}</div>
                </div>
        `,
+       methods: {
+               getDiagram: function(fen) {
+                       const fenParts = fen.split(" ");
+                       return getDiagram({
+                               position: fenParts[0],
+                               // No need for flags here
+                               turn: fenParts[2],
+                       });
+               },
+               timestamp2datetime(ts) {
+                       // TODO
+                       return ts;
+               },
+               showProblem: function() {
+                       alert("show problem");
+                       //..........
+                       //TODO: send event with object prob.fen, prob.instructions, prob.solution
+                       //Event should propagate to game, which set mode=="problem" + other variables
+                       //click on a problem ==> land on variant page with mode==friend, FEN prefilled... ok
+                       // click on problem ==> masque problems, affiche game tab, launch new game Friend with
+                       //   FEN + turn + flags + rappel instructions / solution on click sous l'échiquier
+               },
+       },
 })