summaryrefslogtreecommitdiff
path: root/iridescence/src/components/admin/ProductEditCard.vue
diff options
context:
space:
mode:
Diffstat (limited to 'iridescence/src/components/admin/ProductEditCard.vue')
-rw-r--r--iridescence/src/components/admin/ProductEditCard.vue64
1 files changed, 64 insertions, 0 deletions
diff --git a/iridescence/src/components/admin/ProductEditCard.vue b/iridescence/src/components/admin/ProductEditCard.vue
new file mode 100644
index 0000000..db4ab77
--- /dev/null
+++ b/iridescence/src/components/admin/ProductEditCard.vue
@@ -0,0 +1,64 @@
+<template>
+ <div id="productEditCard">
+ <nav class="panel">
+ <p class="panel-heading">{{ oldProduct.id }}: {{ oldProduct.name }}</p>
+ <div class="panel-block">
+ <input class="input" type="text" v-model="newProduct.name" />
+ </div>
+ <a class="panel-block">
+ mojs
+ </a>
+ <div class="panel-block" v-if="productChanged">
+ <button
+ class="button is-link is-outlined is-fullwidth"
+ @click="saveProduct"
+ >
+ Save
+ </button>
+ </div>
+ </nav>
+ </div>
+</template>
+
+<script>
+export default {
+ name: "ProductEditCard",
+ data: function() {
+ return {
+ newProduct: {
+ id: this.oldProduct.id,
+ name: this.oldProduct.name,
+ quantity: this.oldProduct.quantity,
+ cents: this.oldProduct.cents,
+ imgPath: this.oldProduct.imgPath,
+ description: this.oldProduct.description,
+ categories: this.oldProduct.categories
+ }
+ };
+ },
+ props: {
+ oldProduct: {
+ type: Object,
+ required: true
+ }
+ },
+ computed: {
+ productChanged() {
+ return (
+ this.newProduct.id != this.oldProduct.id ||
+ this.newProduct.name != this.oldProduct.name ||
+ this.newProduct.quantity != this.oldProduct.quantity ||
+ this.newProduct.cents != this.oldProduct.cents ||
+ this.newProduct.imgPath != this.oldProduct.imgPath ||
+ this.newProduct.description != this.oldProduct.description ||
+ this.newProduct.categories != this.oldProduct.categories
+ );
+ }
+ },
+ methods: {
+ saveProduct() {
+ this.$store.dispatch("updateProduct", this.newProduct);
+ }
+ }
+};
+</script>