From da9c0f4b8c1d26bf6e2eea772f033206f2634d2d Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Mon, 10 Jan 2022 11:23:30 +0100 Subject: [PATCH] Refactor: create two internal methods: getScale and getFormattedValueWithUnitName Then, the old formattedValueWithUnitName calls those two private methods --- .../line_items_controller.js.coffee | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee index d8ba5860b3..a496e7018d 100644 --- a/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee +++ b/app/assets/javascripts/admin/line_items/controllers/line_items_controller.js.coffee @@ -152,15 +152,23 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout, return false if !lineItem.hasOwnProperty('final_weight_volume') || !(lineItem.final_weight_volume > 0) true - # How is this different to OptionValueNamer#name? - # Should it be extracted to that class or VariantUnitManager? - $scope.formattedValueWithUnitName = (value, unitsProduct, unitsVariant) -> - # A Units Variant is an API object which holds unit properies of a variant - if unitsProduct.hasOwnProperty("variant_unit") && (unitsProduct.variant_unit == "weight" || unitsProduct.variant_unit == "volume") && value > 0 - scale = VariantUnitManager.getScale(value, unitsProduct.variant_unit) - unit_name = VariantUnitManager.getUnitName(unitsVariant.unit_value, unitsProduct.variant_unit) - $scope.roundToThreeDecimals(value/scale) + " " + unit_name + $scope.getScale = (unitsProduct, unitsVariant) -> + if unitsProduct.hasOwnProperty("variant_unit") && (unitsProduct.variant_unit == "weight" || unitsProduct.variant_unit == "volume") + VariantUnitManager.getScale(unitsVariant.unit_value, unitsProduct.variant_unit) else + null + + $scope.getFormattedValueWithUnitName = (value, unitsProduct, unitsVariant, scale) -> + unit_name = VariantUnitManager.getUnitName(scale, unitsProduct.variant_unit) + $scope.roundToThreeDecimals(value) + " " + unit_name + else + '' + + $scope.formattedValueWithUnitName = (value, unitsProduct, unitsVariant) -> + scale = $scope.getScale(unitsProduct, unitsVariant) + if scale + $scope.getFormattedValueWithUnitName(value, unitsProduct, unitsVariant, scale) + else '' $scope.fulfilled = (sumOfUnitValues) ->