Update TODO
[vchess.git] / public / javascripts / components / problemSummary.js
CommitLineData
b5fb8e69 1// Show a problem summary on variant page or new problem preview
da06a6eb 2Vue.component('my-problem-summary', {
b5fb8e69 3 props: ['prob','preview'],
da06a6eb 4 template: `
e8e4adbd
BA
5 <div class="row problem">
6 <div class="col-sm-12 col-md-6 diagram"
b5fb8e69
BA
7 v-html="getDiagram(prob.fen)">
8 </div>
e8e4adbd 9 <div class="col-sm-12 col-md-6">
b5fb8e69
BA
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>
247356cd 13 <button v-if="!preview" @click="showProblem()">{{ translate("Solve") }}</button>
b5fb8e69 14 </div>
da06a6eb
BA
15 </div>
16 `,
7931e479 17 methods: {
247356cd
BA
18 translate: function(text) {
19 return translations[text];
20 },
7931e479 21 getDiagram: function(fen) {
b5fb8e69 22 const fenParsed = V.ParseFen(fen);
7931e479 23 return getDiagram({
b5fb8e69
BA
24 position: fenParsed.position,
25 turn: fenParsed.turn,
7931e479 26 // No need for flags here
7931e479
BA
27 });
28 },
c794dbb8
BA
29 timestamp2date(ts) {
30 return getDate(new Date(ts));
7931e479 31 },
c794dbb8 32 // Propagate "show problem" event to parent component (my-problems)
7931e479 33 showProblem: function() {
c794dbb8 34 this.$emit('show-problem');
7931e479
BA
35 },
36 },
da06a6eb 37})