31e9e5453998e842eeaf2e9ae4e85add656a3183
[vchess.git] / public / javascripts / components / problemSummary.js
1 // Show a problem summary on variant page or new problem preview
2 Vue.component('my-problem-summary', {
3 props: ['prob','preview'],
4 template: `
5 <div class="row problem">
6 <div class="col-sm-12 col-md-6 diagram"
7 v-html="getDiagram(prob.fen)">
8 </div>
9 <div class="col-sm-12 col-md-6">
10 <p v-html="prob.instructions"></p>
11 <p v-if="preview" v-html="prob.solution"></p>
12 <p v-else class="problem-time">{{ timestamp2date(prob.added) }}</p>
13 <button v-if="!preview" @click="showProblem()">Show</button>
14 </div>
15 </div>
16 `,
17 methods: {
18 getDiagram: function(fen) {
19 const fenParsed = V.ParseFen(fen);
20 return getDiagram({
21 position: fenParsed.position,
22 turn: fenParsed.turn,
23 // No need for flags here
24 });
25 },
26 timestamp2date(ts) {
27 return getDate(new Date(ts));
28 },
29 // Propagate "show problem" event to parent component (my-problems)
30 showProblem: function() {
31 this.$emit('show-problem');
32 },
33 },
34 })