Separate client and server codes. Keep everything in one git repo for simplicity
[vchess.git] / client / client_OLD / javascripts / components / problemSummary.js
diff --git a/client/client_OLD/javascripts/components/problemSummary.js b/client/client_OLD/javascripts/components/problemSummary.js
new file mode 100644 (file)
index 0000000..54602e0
--- /dev/null
@@ -0,0 +1,34 @@
+// Preview a problem on variant page
+Vue.component('my-problem-summary', {
+       props: ['prob','userid','preview'],
+       template: `
+               <div class="row problem">
+                       <div class="col-sm-12 col-md-6 diagram"
+                               v-html="getDiagram(prob.fen)">
+                       </div>
+                       <div class="col-sm-12 col-md-6">
+                               <p v-html="prob.instructions"></p>
+                               <p v-if="!!prob.preview" v-html="prob.solution"></p>
+                               <p v-else class="problem-time">{{ timestamp2date(prob.added) }}</p>
+                               <button v-show="!preview" @click="$emit('show-problem')">Show</button>
+                               <div v-show="prob.uid==userid && !preview" class="button-group">
+                                       <button @click="$emit('edit-problem')">Edit</button>
+                                       <button @click="$emit('delete-problem')">Delete</button>
+                               </div>
+                       </div>
+               </div>
+       `,
+       methods: {
+               getDiagram: function(fen) {
+                       const fenParsed = V.ParseFen(fen);
+                       return getDiagram({
+                               position: fenParsed.position,
+                               turn: fenParsed.turn,
+                               // No need for flags here
+                       });
+               },
+               timestamp2date(ts) {
+                       return getDate(new Date(ts));
+               },
+       },
+})