From d3e639aa03a7d91fea1ec7ff63c5d83ec4da3e8a Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Thu, 4 Dec 2014 12:12:20 +1100 Subject: [PATCH] Index variant overrides by hub_id x variant_id --- .../services/variant_overrides.js.coffee | 4 +++- .../_products_variants.html.haml | 4 ++-- .../services/variant_overrides_spec.js.coffee | 24 +++++++++++++++++++ 3 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 spec/javascripts/unit/admin/services/variant_overrides_spec.js.coffee diff --git a/app/assets/javascripts/admin/services/variant_overrides.js.coffee b/app/assets/javascripts/admin/services/variant_overrides.js.coffee index 363fa4a8bc..56307bdbc8 100644 --- a/app/assets/javascripts/admin/services/variant_overrides.js.coffee +++ b/app/assets/javascripts/admin/services/variant_overrides.js.coffee @@ -3,4 +3,6 @@ angular.module("ofn.admin").factory "VariantOverrides", (variantOverrides, Index variantOverrides: {} constructor: -> - @variantOverrides = Indexer.index variantOverrides, 'variant_id' + for vo in variantOverrides + @variantOverrides[vo.hub_id] ||= {} + @variantOverrides[vo.hub_id][vo.variant_id] = vo diff --git a/app/views/spree/admin/products/override_variants/_products_variants.html.haml b/app/views/spree/admin/products/override_variants/_products_variants.html.haml index 75c1ad7cad..371f0db30e 100644 --- a/app/views/spree/admin/products/override_variants/_products_variants.html.haml +++ b/app/views/spree/admin/products/override_variants/_products_variants.html.haml @@ -2,7 +2,7 @@ %td %td {{ variant.options_text }} %td - %input{name: 'variant-overrides-{{ variant.id }}-price', type: 'text', ng: {model: 'variantOverrides[variant.id].price'}, placeholder: '{{ variant.price }}'} + %input{name: 'variant-overrides-{{ variant.id }}-price', type: 'text', ng: {model: 'variantOverrides[hub.id][variant.id].price'}, placeholder: '{{ variant.price }}'} %td - %input{name: 'variant-overrides-{{ variant.id }}-count-on-hand', type: 'text', ng: {model: 'variantOverrides[variant.id].count_on_hand'}, placeholder: '{{ variant.on_hand }}'} + %input{name: 'variant-overrides-{{ variant.id }}-count-on-hand', type: 'text', ng: {model: 'variantOverrides[hub.id][variant.id].count_on_hand'}, placeholder: '{{ variant.on_hand }}'} diff --git a/spec/javascripts/unit/admin/services/variant_overrides_spec.js.coffee b/spec/javascripts/unit/admin/services/variant_overrides_spec.js.coffee new file mode 100644 index 0000000000..01cf73aeda --- /dev/null +++ b/spec/javascripts/unit/admin/services/variant_overrides_spec.js.coffee @@ -0,0 +1,24 @@ +describe "VariantOverrides service", -> + VariantOverrides = null + variantOverrides = [ + {id: 1, hub_id: 10, variant_id: 100, price: 1, count_on_hand: 1} + {id: 2, hub_id: 10, variant_id: 200, price: 2, count_on_hand: 2} + {id: 3, hub_id: 20, variant_id: 300, price: 3, count_on_hand: 3} + ] + + beforeEach -> + module "ofn.admin" + module ($provide) -> + $provide.value "variantOverrides", variantOverrides + null + + beforeEach inject (_VariantOverrides_) -> + VariantOverrides = _VariantOverrides_ + + it "indexes variant overrides by hub_id -> variant_id", -> + expect(VariantOverrides.variantOverrides).toEqual + 10: + 100: {id: 1, hub_id: 10, variant_id: 100, price: 1, count_on_hand: 1} + 200: {id: 2, hub_id: 10, variant_id: 200, price: 2, count_on_hand: 2} + 20: + 300: {id: 3, hub_id: 20, variant_id: 300, price: 3, count_on_hand: 3}