summaryrefslogtreecommitdiff
path: root/iridescence/src/components/admin
diff options
context:
space:
mode:
authorAdam T. Carpenter <atc@53hor.net>2020-09-12 14:10:57 -0400
committerAdam T. Carpenter <atc@53hor.net>2020-09-12 14:10:57 -0400
commit4dffff999d4025ddb593f5f44bf4ecccf577a0e5 (patch)
tree289a241347e24b0f0963e91256e2b44b70db3ee0 /iridescence/src/components/admin
parent92b5b5cc69fdd3dfe67ea07a0fcf26bdd3c930f8 (diff)
downloadtheglassyladies-4dffff999d4025ddb593f5f44bf4ecccf577a0e5.tar.xz
theglassyladies-4dffff999d4025ddb593f5f44bf4ecccf577a0e5.zip
basic product editing view with renaming
Diffstat (limited to 'iridescence/src/components/admin')
-rw-r--r--iridescence/src/components/admin/ProductEditCard.vue64
-rw-r--r--iridescence/src/components/admin/ProductEditList.vue36
2 files changed, 100 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>
diff --git a/iridescence/src/components/admin/ProductEditList.vue b/iridescence/src/components/admin/ProductEditList.vue
new file mode 100644
index 0000000..46016c2
--- /dev/null
+++ b/iridescence/src/components/admin/ProductEditList.vue
@@ -0,0 +1,36 @@
+<template>
+ <div id="productEditList">
+ <div class="columns is-multiline is-variable is-7-desktop">
+ <div
+ class="column is-one-quarter"
+ v-for="product in products"
+ :key="product.id"
+ >
+ <ProductEditCard v-bind:old-product="product"></ProductEditCard>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import ProductEditCard from "@/components/admin/ProductEditCard.vue";
+
+export default {
+ name: "ProductsList",
+ components: {
+ ProductEditCard
+ },
+ data() {
+ return {};
+ },
+ computed: {
+ products() {
+ return this.$store.getters.products;
+ }
+ },
+ methods: {},
+ created() {
+ this.$store.dispatch("refreshProducts");
+ }
+};
+</script>