From fe5403014267b81142581f54c38e4576a391ea6f Mon Sep 17 00:00:00 2001 From: "Adam T. Carpenter" Date: Mon, 16 Nov 2020 19:55:48 -0500 Subject: Thumbnails and shortened descriptions. --- dichroism/src/dtos/product_get.rs | 6 +++--- dichroism/src/models/photo.rs | 4 ---- iridescence/src/components/ProductCard.vue | 32 ++++++++++++++++++++---------- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/dichroism/src/dtos/product_get.rs b/dichroism/src/dtos/product_get.rs index 3f68eef..aa52f19 100644 --- a/dichroism/src/dtos/product_get.rs +++ b/dichroism/src/dtos/product_get.rs @@ -24,9 +24,9 @@ impl From for ProductGet { quantity: p.quantity, featured: p.featured, category: p.category, - photo_fullsize: p.photo_set.fullsize.filename(), - photo_base: p.photo_set.base.filename(), - photo_thumbnail: p.photo_set.thumbnail.filename(), + photo_fullsize: p.photo_set.fullsize.id, + photo_base: p.photo_set.base.id, + photo_thumbnail: p.photo_set.thumbnail.id, } } } diff --git a/dichroism/src/models/photo.rs b/dichroism/src/models/photo.rs index e24a691..086d387 100644 --- a/dichroism/src/models/photo.rs +++ b/dichroism/src/models/photo.rs @@ -7,8 +7,4 @@ impl Photo { pub fn new(id: String) -> Self { Self { id } } - - pub fn filename(&self) -> String { - format!("{}.jpg", self.id) - } } diff --git a/iridescence/src/components/ProductCard.vue b/iridescence/src/components/ProductCard.vue index 36c7be5..4ff6c80 100644 --- a/iridescence/src/components/ProductCard.vue +++ b/iridescence/src/components/ProductCard.vue @@ -2,24 +2,21 @@
-
- +
+

{{ name }}

- {{ dollars(cents) }} + {{ dollars }}

{{ stock }}

- {{ description }} + {{ shortDescription }}
@@ -34,7 +31,9 @@ export default { name: String, quantity: Number, cents: Number, - imgPath: String, + photo_thumbnail: String, + photo_base: String, + photo_fullsize: String, description: String }, computed: { @@ -44,10 +43,21 @@ export default { } else { return [this.quantity, "in stock"].join(" "); } + }, + dollars() { + return "$ " + (this.cents / 100).toFixed(2); + }, + thumbnail() { + return process.env.VUE_APP_IMAGE_ROOT + "/" + this.photo_thumbnail; + }, + shortDescription() { + let description = this.description.split(" "); + if (description.length < 10) { + return this.description; + } else { + return description.splice(0, 10).join(" ") + "…"; + } } - }, - methods: { - dollars: cents => "$ " + (cents / 100).toFixed(2) } }; -- cgit v1.2.3