diff --git a/app/assets/javascripts/admin/products/controllers/units_controller.js.coffee b/app/assets/javascripts/admin/products/controllers/units_controller.js.coffee index 01c59a1b73..a92f4aeada 100644 --- a/app/assets/javascripts/admin/products/controllers/units_controller.js.coffee +++ b/app/assets/javascripts/admin/products/controllers/units_controller.js.coffee @@ -1,3 +1,4 @@ +# Controller for "New Products" form (spree/admin/products/new) angular.module("admin.products") .controller "unitsCtrl", ($scope, VariantUnitManager, OptionValueNamer, UnitPrices, PriceParser) -> $scope.product = { master: {} } @@ -12,13 +13,15 @@ angular.module("admin.products") $scope.variant_unit_options = VariantUnitManager.variantUnitOptions() + # Extract variant_unit and variant_unit_scale from dropdown variant_unit_with_scale, + # and update hidden product fields $scope.processVariantUnitWithScale = -> if $scope.product.variant_unit_with_scale - match = $scope.product.variant_unit_with_scale.match(/^([^_]+)_([\d\.]+)$/) + match = $scope.product.variant_unit_with_scale.match(/^([^_]+)_([\d\.]+)$/) # matches string like "weight_1000" if match $scope.product.variant_unit = match[1] $scope.product.variant_unit_scale = parseFloat(match[2]) - else + else # "items" $scope.product.variant_unit = $scope.product.variant_unit_with_scale $scope.product.variant_unit_scale = null else if $scope.product.variant_unit @@ -32,6 +35,8 @@ angular.module("admin.products") else $scope.product.variant_unit = $scope.product.variant_unit_scale = null + # Extract unit_value and unit_description from text field unit_value_with_description, + # and update hidden variant fields $scope.processUnitValueWithDescription = -> if $scope.product.master.hasOwnProperty("unit_value_with_description") match = $scope.product.master.unit_value_with_description.match(/^([\d\.,]+(?= *|$)|)( *)(.*)$/) @@ -45,6 +50,7 @@ angular.module("admin.products") value = window.bigDecimal.divide(value, $scope.product.variant_unit_scale, 2) if $scope.product.master.unit_value && $scope.product.variant_unit_scale $scope.product.master.unit_value_with_description = value + " " + $scope.product.master.unit_description + # Calculate unit price based on product price and variant_unit_scale $scope.processUnitPrice = -> price = $scope.product.price scale = $scope.product.variant_unit_scale diff --git a/app/assets/javascripts/admin/products/services/option_value_namer.js.coffee b/app/assets/javascripts/admin/products/services/option_value_namer.js.coffee index 9d6d46a494..0e7c94331d 100644 --- a/app/assets/javascripts/admin/products/services/option_value_namer.js.coffee +++ b/app/assets/javascripts/admin/products/services/option_value_namer.js.coffee @@ -1,4 +1,5 @@ angular.module("admin.products").factory "OptionValueNamer", (VariantUnitManager) -> + # Javascript clone of VariantUnits::OptionValueNamer, for bulk product editing. class OptionValueNamer constructor: (@variant) ->