From 8591934c19dcf7b40ea377dc9996c08e16584542 Mon Sep 17 00:00:00 2001 From: Andy Brett Date: Fri, 16 Oct 2020 19:17:20 -0700 Subject: [PATCH] extract availableUnits to separate method --- .../services/variant_unit_manager.js.coffee | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee b/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee index 98e86ec555..fdddd6efdb 100644 --- a/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee +++ b/app/assets/javascripts/admin/products/services/variant_unit_manager.js.coffee @@ -29,17 +29,12 @@ angular.module("admin.products").factory "VariantUnitManager", (availableUnits) system: 'metric' @variantUnitOptions: -> - availableUnits = availableUnits.split(",") options = for unit_type, _ of @units - for scale in @unitScales(unit_type) + for scale in @availableUnitScales(unit_type) name = @getUnitName(scale, unit_type) - if availableUnits.includes(name) - ["#{I18n.t(unit_type)} (#{name})", "#{unit_type}_#{scale}"] - else - null + ["#{I18n.t(unit_type)} (#{name})", "#{unit_type}_#{scale}"] options.push [[I18n.t('items'), 'items']] options = [].concat options... - (option for option in options when option != null) @getScale: (value, unitType) -> scaledValue = null @@ -62,6 +57,14 @@ angular.module("admin.products").factory "VariantUnitManager", (availableUnits) (parseFloat(scale) for scale in Object.keys(@units[unitType])).sort (a, b) -> a - b + @availableUnitScales: (unitType) -> + available = availableUnits.split(",") + units = @units + scales = Object.keys(@units[unitType]).filter (scale) -> + available.includes(units[unitType][scale]['name']) + (parseFloat(scale) for scale in scales).sort (a, b) -> + a - b + @compatibleUnitScales: (scale, unitType) -> scaleSystem = @units[unitType][scale]['system'] (parseFloat(scale) for scale, scaleInfo of @units[unitType] when scaleInfo['system'] == scaleSystem).sort (a, b) ->