Advance on problems page
[vchess.git] / public / javascripts / components / problemSummary.js
index 6b006cb..2c9ea94 100644 (file)
@@ -1,15 +1,19 @@
-// Show a problem summary on variant page or new problem preview
-Vue.component('my-problem-summary', {
-       props: ['prob','preview'],
+// Preview a problem on variant page
+Vue.component('my-problem-preview', {
+       props: ['prob','userid'],
        template: `
-               <div class="row problem clickable" @click="showProblem()">
-                       <div class="col-sm-6 diagram"
+               <div class="row problem">
+                       <div class="col-sm-12 col-md-6 diagram"
                                v-html="getDiagram(prob.fen)">
                        </div>
-                       <div class="col-sm-6">
+                       <div class="col-sm-12 col-md-6">
                                <p v-html="prob.instructions"></p>
-                               <p v-if="preview" v-html="prob.solution"></p>
+                               <p v-if="!!prob.preview" v-html="prob.solution"></p>
                                <p v-else class="problem-time">{{ timestamp2date(prob.added) }}</p>
+                               <div v-show="prob.uid==userid" class="button-group">
+                                       <button @click="sendSignal('edit')'">Edit</button>
+                                       <button @click="sendSignal('delete')">Delete</button>
+                               </div>
                        </div>
                </div>
        `,
@@ -25,9 +29,8 @@ Vue.component('my-problem-summary', {
                timestamp2date(ts) {
                        return getDate(new Date(ts));
                },
-               // Propagate "show problem" event to parent component (my-problems)
-               showProblem: function() {
-                       this.$emit('show-problem');
+               sendSignal: function(action) {
+                       this.$emit(action + "-problem");
                },
        },
 })