From fc95e088dfe90e7c897f1e7838cfbd42b99ed6ab Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Wed, 30 Jul 2014 14:59:16 +1000 Subject: [PATCH] Show collapsed price breakdown --- .../darkswarm/directives/price_percentage.js.coffee | 10 ++++++++++ .../javascripts/darkswarm/services/variants.js.coffee | 2 +- .../javascripts/templates/price_breakdown.html.haml | 2 +- .../javascripts/templates/price_percentage.html.haml | 4 ++++ app/serializers/api/variant_serializer.rb | 2 +- .../unit/darkswarm/services/variants_spec.js.coffee | 4 ++-- 6 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 app/assets/javascripts/darkswarm/directives/price_percentage.js.coffee create mode 100644 app/assets/javascripts/templates/price_percentage.html.haml diff --git a/app/assets/javascripts/darkswarm/directives/price_percentage.js.coffee b/app/assets/javascripts/darkswarm/directives/price_percentage.js.coffee new file mode 100644 index 0000000000..35140598c4 --- /dev/null +++ b/app/assets/javascripts/darkswarm/directives/price_percentage.js.coffee @@ -0,0 +1,10 @@ +Darkswarm.directive "pricePercentage", -> + restrict: 'E' + replace: true + templateUrl: 'price_percentage.html' + scope: + percentage: '=' + + link: (scope, elem, attrs) -> + elem.find(".meter").css + width: "#{scope.percentage}%" diff --git a/app/assets/javascripts/darkswarm/services/variants.js.coffee b/app/assets/javascripts/darkswarm/services/variants.js.coffee index e95a870aa8..0f231ac030 100644 --- a/app/assets/javascripts/darkswarm/services/variants.js.coffee +++ b/app/assets/javascripts/darkswarm/services/variants.js.coffee @@ -7,5 +7,5 @@ Darkswarm.factory 'Variants', -> extend: (variant)-> variant.getPrice = -> variant.price * variant.line_item.quantity - variant.basePricePercentage = variant.base_price / variant.price * 100 + variant.basePricePercentage = Math.round(variant.base_price / variant.price * 100) variant diff --git a/app/assets/javascripts/templates/price_breakdown.html.haml b/app/assets/javascripts/templates/price_breakdown.html.haml index 5e7c82e0cf..33554b93fe 100644 --- a/app/assets/javascripts/templates/price_breakdown.html.haml +++ b/app/assets/javascripts/templates/price_breakdown.html.haml @@ -1,4 +1,4 @@ .joyride-tip-guide{"ng-class" => "{ in: tt_isOpen, fade: tt_animation }"} %span.joyride-nub.bottom .joyride-content-wrapper - {{ variant.id }} + %price-percentage{percentage: 'variant.basePricePercentage'} diff --git a/app/assets/javascripts/templates/price_percentage.html.haml b/app/assets/javascripts/templates/price_percentage.html.haml new file mode 100644 index 0000000000..ee1e8964a5 --- /dev/null +++ b/app/assets/javascripts/templates/price_percentage.html.haml @@ -0,0 +1,4 @@ +.progress + .meter + Cost + Fees diff --git a/app/serializers/api/variant_serializer.rb b/app/serializers/api/variant_serializer.rb index e9234285bb..74bc19e65c 100644 --- a/app/serializers/api/variant_serializer.rb +++ b/app/serializers/api/variant_serializer.rb @@ -1,6 +1,6 @@ class Api::VariantSerializer < ActiveModel::Serializer attributes :id, :is_master, :count_on_hand, :name_to_display, :unit_to_display, - :on_demand, :price, :fees + :on_demand, :price, :fees, :base_price def price object.price_with_fees(options[:current_distributor], options[:current_order_cycle]) diff --git a/spec/javascripts/unit/darkswarm/services/variants_spec.js.coffee b/spec/javascripts/unit/darkswarm/services/variants_spec.js.coffee index 98dd57b5a7..ac9865a142 100644 --- a/spec/javascripts/unit/darkswarm/services/variants_spec.js.coffee +++ b/spec/javascripts/unit/darkswarm/services/variants_spec.js.coffee @@ -5,7 +5,7 @@ describe 'Variants service', -> beforeEach -> variant = id: 1 - base_price: 80 + base_price: 80.5 price: 100 module 'Darkswarm' inject ($injector)-> @@ -22,4 +22,4 @@ describe 'Variants service', -> expect(Variants.register(variant)).toBe variant it "initialises base price percentage", -> - expect(Variants.register(variant).basePricePercentage).toEqual 80 + expect(Variants.register(variant).basePricePercentage).toEqual 81