Step toward a one-page application
[vchess.git] / public / javascripts / components / problemSummary.js
index 2c9ea94..54602e0 100644 (file)
@@ -1,6 +1,6 @@
 // Preview a problem on variant page
-Vue.component('my-problem-preview', {
-       props: ['prob','userid'],
+Vue.component('my-problem-summary', {
+       props: ['prob','userid','preview'],
        template: `
                <div class="row problem">
                        <div class="col-sm-12 col-md-6 diagram"
@@ -10,9 +10,10 @@ Vue.component('my-problem-preview', {
                                <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>
-                               <div v-show="prob.uid==userid" class="button-group">
-                                       <button @click="sendSignal('edit')'">Edit</button>
-                                       <button @click="sendSignal('delete')">Delete</button>
+                               <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>
@@ -29,8 +30,5 @@ Vue.component('my-problem-preview', {
                timestamp2date(ts) {
                        return getDate(new Date(ts));
                },
-               sendSignal: function(action) {
-                       this.$emit(action + "-problem");
-               },
        },
 })