summaryrefslogtreecommitdiff
path: root/iridescence/src/components/admin/ProductEditCard.vue
diff options
context:
space:
mode:
authorAdam T. Carpenter <atc@53hor.net>2020-09-15 17:24:00 -0400
committerAdam T. Carpenter <atc@53hor.net>2020-09-15 17:24:00 -0400
commit253dceb5591c5a39122f1439a721ce5b0b3fc97c (patch)
tree0a217184cd29f6ff8bc23fa9b7163594cdccf096 /iridescence/src/components/admin/ProductEditCard.vue
parent78daddbbbee1b67bbf3960e3d4d08d0757547207 (diff)
downloadtheglassyladies-253dceb5591c5a39122f1439a721ce5b0b3fc97c.tar.xz
theglassyladies-253dceb5591c5a39122f1439a721ce5b0b3fc97c.zip
added new product button, added search bar to admin view
Diffstat (limited to 'iridescence/src/components/admin/ProductEditCard.vue')
-rw-r--r--iridescence/src/components/admin/ProductEditCard.vue98
1 files changed, 95 insertions, 3 deletions
diff --git a/iridescence/src/components/admin/ProductEditCard.vue b/iridescence/src/components/admin/ProductEditCard.vue
index e7fef5e..9fdf0c6 100644
--- a/iridescence/src/components/admin/ProductEditCard.vue
+++ b/iridescence/src/components/admin/ProductEditCard.vue
@@ -12,9 +12,73 @@
v-model="newProduct.name"
/>
</div>
- <a class="panel-block">
- mojs
- </a>
+ <div class="panel-block">
+ <div class="field has-addons">
+ <p class="control">
+ <a class="button is-static">
+ #
+ </a>
+ </p>
+ <div class="control">
+ <input
+ class="input"
+ type="text"
+ placeholder="inventory (quantity)"
+ v-model="newProductQuantity"
+ />
+ </div>
+ <div class="control">
+ <a class="button is-info" @click="incrementQuantity(-1)">
+ ▼
+ </a>
+ </div>
+ <div class="control">
+ <a class="button is-info" @click="incrementQuantity(1)">
+ ▲
+ </a>
+ </div>
+ </div>
+ </div>
+ <div class="panel-block">
+ <div class="field has-addons">
+ <p class="control">
+ <a class="button is-static">
+ $
+ </a>
+ </p>
+ <p class="control">
+ <input
+ class="input"
+ type="text"
+ placeholder="price"
+ v-model="newProductPrice"
+ />
+ </p>
+ </div>
+ </div>
+ <div class="panel-block">
+ <input
+ class="input"
+ type="text"
+ placeholder="image"
+ v-model="newProduct.imgPath"
+ />
+ </div>
+ <div class="panel-block">
+ <label class="checkbox">
+ <input type="checkbox" v-model="newProduct.featured" />
+ Featured?
+ </label>
+ </div>
+ <div class="panel-block">
+ <textarea
+ class="textarea"
+ type="text"
+ placeholder="description"
+ v-model="newProduct.description"
+ >
+ </textarea>
+ </div>
<div class="panel-block" v-if="newProductChanged">
<button
class="button is-link is-outlined is-fullwidth"
@@ -28,6 +92,8 @@
</template>
<script>
+const dollarRe = /^\$?(\d+)\.(\d{2})/gm;
+
export default {
name: "ProductEditCard",
data: function() {
@@ -74,11 +140,37 @@ export default {
this.newProduct.description != this.currentProduct.description ||
this.newProduct.featured != this.currentProduct.featured
);
+ },
+ newProductQuantity: {
+ get: function() {
+ return this.newProduct.quantity;
+ },
+ set: function(val) {
+ if (!isNaN(val)) {
+ this.newProduct.quantity = 1 * val;
+ }
+ }
+ },
+ newProductPrice: {
+ get: function() {
+ return (this.newProduct.cents / 100).toFixed(2);
+ },
+ set: function(val) {
+ let groups = dollarRe.exec(val);
+ if (groups && groups[1] && groups[2]) {
+ this.newProduct.cents = 100 * groups[1] + 1 * groups[2];
+ }
+ }
}
},
methods: {
saveProduct() {
this.$store.dispatch("updateProduct", this.newProduct);
+ },
+ incrementQuantity(amount) {
+ if (this.newProduct.quantity + amount >= 0) {
+ this.newProduct.quantity += amount;
+ }
}
}
};