From 4dffff999d4025ddb593f5f44bf4ecccf577a0e5 Mon Sep 17 00:00:00 2001
From: "Adam T. Carpenter" <atc@53hor.net>
Date: Sat, 12 Sep 2020 14:10:57 -0400
Subject: basic product editing view with renaming

---
 .../src/components/admin/ProductEditCard.vue       | 64 ++++++++++++++++++++++
 1 file changed, 64 insertions(+)
 create mode 100644 iridescence/src/components/admin/ProductEditCard.vue

(limited to 'iridescence/src/components/admin/ProductEditCard.vue')

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>
-- 
cgit v1.2.3

