From 3e6dd5330048c322f7095a774979743cfc074373 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Mar 2017 15:09:58 -0800 Subject: [PATCH 1/4] Don't float variant container With the previous change to the image placeholder this was displaying incorrectly (the size was being calculated slightly differently). There was no reason to float this outer div which had two inner floating divs. --- .../stylesheets/spree/backend/components/_stock_table.scss | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/backend/app/assets/stylesheets/spree/backend/components/_stock_table.scss b/backend/app/assets/stylesheets/spree/backend/components/_stock_table.scss index b5c10706701..6f3d0287e17 100644 --- a/backend/app/assets/stylesheets/spree/backend/components/_stock_table.scss +++ b/backend/app/assets/stylesheets/spree/backend/components/_stock_table.scss @@ -31,8 +31,7 @@ padding: 0px 5px; } .variant-image, - .variant-details, - .variant-container { + .variant-details { float: left; } .variant-container { From f00fcbec94ea9e715b99c7d155808bb659f5b6a3 Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Mar 2017 15:16:30 -0800 Subject: [PATCH 2/4] Convert handlebars_extensions to JS --- .../spree/backend/handlebars_extensions.coffee | 11 ----------- .../spree/backend/handlebars_extensions.js | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 11 deletions(-) delete mode 100644 backend/app/assets/javascripts/spree/backend/handlebars_extensions.coffee create mode 100644 backend/app/assets/javascripts/spree/backend/handlebars_extensions.js diff --git a/backend/app/assets/javascripts/spree/backend/handlebars_extensions.coffee b/backend/app/assets/javascripts/spree/backend/handlebars_extensions.coffee deleted file mode 100644 index abb4f1a0648..00000000000 --- a/backend/app/assets/javascripts/spree/backend/handlebars_extensions.coffee +++ /dev/null @@ -1,11 +0,0 @@ -#= require handlebars -#= require spree/backend/translation - -Handlebars.registerHelper "t", (key, options) -> - Spree.t(key, options.hash) - -Handlebars.registerHelper "human_attribute_name", (model, attr) -> - Spree.human_attribute_name(model, attr) - -Handlebars.registerHelper "admin_url", -> - Spree.pathFor("admin") diff --git a/backend/app/assets/javascripts/spree/backend/handlebars_extensions.js b/backend/app/assets/javascripts/spree/backend/handlebars_extensions.js new file mode 100644 index 00000000000..3e6888367c2 --- /dev/null +++ b/backend/app/assets/javascripts/spree/backend/handlebars_extensions.js @@ -0,0 +1,14 @@ +//= require handlebars +//= require spree/backend/translation + +Handlebars.registerHelper("t", function(key, options) { + return Spree.t(key, options.hash); +}); + +Handlebars.registerHelper("human_attribute_name", function(model, attr) { + return Spree.human_attribute_name(model, attr); +}); + +Handlebars.registerHelper("admin_url", function() { + return Spree.pathFor("admin") +}); From 2a4b3fd26e8a4ed842d5541939eeb5b621434a6b Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Mar 2017 15:16:57 -0800 Subject: [PATCH 3/4] Add handlebars partial for image --- .../javascripts/spree/backend/handlebars_extensions.js | 4 ++++ .../spree/backend/stock_transfers/variant_form.coffee | 2 +- .../assets/javascripts/spree/backend/templates/_image.hbs | 5 +++++ .../app/assets/javascripts/spree/backend/templates/index.js | 1 + .../spree/backend/templates/orders/line_item.hbs | 6 +----- .../backend/templates/stock_transfers/transfer_item.hbs | 6 +----- .../spree/backend/templates/variants/autocomplete.hbs | 6 +----- .../spree/backend/variant_autocomplete.js.coffee | 2 +- 8 files changed, 15 insertions(+), 17 deletions(-) create mode 100644 backend/app/assets/javascripts/spree/backend/templates/_image.hbs diff --git a/backend/app/assets/javascripts/spree/backend/handlebars_extensions.js b/backend/app/assets/javascripts/spree/backend/handlebars_extensions.js index 3e6888367c2..dcd11a6c8e9 100644 --- a/backend/app/assets/javascripts/spree/backend/handlebars_extensions.js +++ b/backend/app/assets/javascripts/spree/backend/handlebars_extensions.js @@ -12,3 +12,7 @@ Handlebars.registerHelper("human_attribute_name", function(model, attr) { Handlebars.registerHelper("admin_url", function() { return Spree.pathFor("admin") }); + +Handlebars.registerHelper("concat", function() { + return Array.prototype.slice.call(arguments, 0, -1).join(''); +}); diff --git a/backend/app/assets/javascripts/spree/backend/stock_transfers/variant_form.coffee b/backend/app/assets/javascripts/spree/backend/stock_transfers/variant_form.coffee index 5500a22de12..74fb31a830f 100644 --- a/backend/app/assets/javascripts/spree/backend/stock_transfers/variant_form.coffee +++ b/backend/app/assets/javascripts/spree/backend/stock_transfers/variant_form.coffee @@ -84,7 +84,7 @@ class VariantForm variantId: transferItem.variant.id variantDisplayAttributes: formatVariantDisplayAttributes(transferItem.variant) variantOptions: formatVariantOptionValues(transferItem.variant) - variantImageURL: transferItem.variant.images[0]?.small_url + variantImage: transferItem.variant.images[0] if isReceiving templateAttributes["receivedQuantity"] = transferItem.received_quantity diff --git a/backend/app/assets/javascripts/spree/backend/templates/_image.hbs b/backend/app/assets/javascripts/spree/backend/templates/_image.hbs new file mode 100644 index 00000000000..f6fb264d69a --- /dev/null +++ b/backend/app/assets/javascripts/spree/backend/templates/_image.hbs @@ -0,0 +1,5 @@ +{{#if image }} + {{ alt }} +{{ else }} + +{{/if}} diff --git a/backend/app/assets/javascripts/spree/backend/templates/index.js b/backend/app/assets/javascripts/spree/backend/templates/index.js index 52227647742..908ce31db3e 100644 --- a/backend/app/assets/javascripts/spree/backend/templates/index.js +++ b/backend/app/assets/javascripts/spree/backend/templates/index.js @@ -1,3 +1,4 @@ +//= require spree/backend/templates/_image //= require spree/backend/templates/orders/customer_details/autocomplete //= require spree/backend/templates/orders/details_adjustment_row //= require spree/backend/templates/orders/line_item diff --git a/backend/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs b/backend/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs index b437abc124b..02a03dd0d45 100644 --- a/backend/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs +++ b/backend/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs @@ -4,11 +4,7 @@ {{else}} - {{#if image }} - - {{else}} - - {{/if}} + {{> _image image=image size="mini" }} {{ line_item.variant.name }}
diff --git a/backend/app/assets/javascripts/spree/backend/templates/stock_transfers/transfer_item.hbs b/backend/app/assets/javascripts/spree/backend/templates/stock_transfers/transfer_item.hbs index 622c72cf198..a87a593e969 100644 --- a/backend/app/assets/javascripts/spree/backend/templates/stock_transfers/transfer_item.hbs +++ b/backend/app/assets/javascripts/spree/backend/templates/stock_transfers/transfer_item.hbs @@ -2,11 +2,7 @@
- {{#if variantImageURL }} - {{variantName}} - {{ else }} - - {{/if}} + {{> _image image=variantImage size="small" alt=variantName }}
diff --git a/backend/app/assets/javascripts/spree/backend/templates/variants/autocomplete.hbs b/backend/app/assets/javascripts/spree/backend/templates/variants/autocomplete.hbs index 1413594ba2b..698b15f4d2c 100644 --- a/backend/app/assets/javascripts/spree/backend/templates/variants/autocomplete.hbs +++ b/backend/app/assets/javascripts/spree/backend/templates/variants/autocomplete.hbs @@ -1,10 +1,6 @@
- {{#if image }} - - {{ else }} - - {{/if}} + {{> _image image=image size="mini" }}
diff --git a/backend/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee b/backend/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee index 2d14fc01181..6a83e1dfe8f 100644 --- a/backend/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee +++ b/backend/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee @@ -3,7 +3,7 @@ variantTemplate = HandlebarsTemplates["variants/autocomplete"] formatVariantResult = (variant) -> - image = variant.images[0].mini_url if variant["images"][0] isnt undefined and variant["images"][0].mini_url isnt undefined + image = variant.images[0] variantTemplate( variant: variant image: image From 10508c125b31d1413037b5a0639c0b5bdb718e6f Mon Sep 17 00:00:00 2001 From: John Hawthorn Date: Thu, 9 Mar 2017 15:24:18 -0800 Subject: [PATCH 4/4] Find first image using handlebars When I first wrote this I didn't know how to index an array in handlebars. Now I do! This is better to have in handlebars because it's simpler and the JS doesn't need to care that an image is being displayed. --- .../javascripts/spree/backend/templates/orders/line_item.hbs | 2 +- .../spree/backend/templates/variants/autocomplete.hbs | 2 +- .../javascripts/spree/backend/variant_autocomplete.js.coffee | 2 -- .../javascripts/spree/backend/views/cart/line_item_row.js | 5 +---- 4 files changed, 3 insertions(+), 8 deletions(-) diff --git a/backend/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs b/backend/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs index 02a03dd0d45..24a570bbb99 100644 --- a/backend/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs +++ b/backend/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs @@ -4,7 +4,7 @@ {{else}}
- {{> _image image=image size="mini" }} + {{> _image image=line_item.variant.images.[0] size="mini" }} {{ line_item.variant.name }}
diff --git a/backend/app/assets/javascripts/spree/backend/templates/variants/autocomplete.hbs b/backend/app/assets/javascripts/spree/backend/templates/variants/autocomplete.hbs index 698b15f4d2c..5ebb38500ae 100644 --- a/backend/app/assets/javascripts/spree/backend/templates/variants/autocomplete.hbs +++ b/backend/app/assets/javascripts/spree/backend/templates/variants/autocomplete.hbs @@ -1,6 +1,6 @@
- {{> _image image=image size="mini" }} + {{> _image image=variant.images.[0] size="mini" }}
diff --git a/backend/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee b/backend/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee index 6a83e1dfe8f..65dadd1296d 100644 --- a/backend/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee +++ b/backend/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee @@ -3,10 +3,8 @@ variantTemplate = HandlebarsTemplates["variants/autocomplete"] formatVariantResult = (variant) -> - image = variant.images[0] variantTemplate( variant: variant - image: image ) $.fn.variantAutocomplete = (searchOptions = {}) -> diff --git a/backend/app/assets/javascripts/spree/backend/views/cart/line_item_row.js b/backend/app/assets/javascripts/spree/backend/views/cart/line_item_row.js index f0a1672c13b..b0877690041 100644 --- a/backend/app/assets/javascripts/spree/backend/views/cart/line_item_row.js +++ b/backend/app/assets/javascripts/spree/backend/views/cart/line_item_row.js @@ -76,11 +76,8 @@ Spree.Views.Cart.LineItemRow = Backbone.View.extend({ }, render: function() { - var line_item = this.model.attributes - var image = line_item.variant && line_item.variant.images[0] var html = HandlebarsTemplates['orders/line_item']({ - line_item: line_item, - image: image, + line_item: this.model.toJSON(), editing: this.editing, isNew: this.model.isNew(), noCancel: this.model.isNew() && this.model.collection.length == 1