From eafdf85c284f3dccab06c59dee0422e849b5d56b Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Fri, 18 Jul 2014 10:45:45 +1000 Subject: [PATCH] Extract class methods to new class VariantUnitManager --- .../admin/bulk_order_management.js.coffee | 10 ++++---- .../admin/bulk_product_update.js.coffee | 6 ++--- .../admin/products/units_controller.js.coffee | 4 ++-- .../services/option_value_namer.js.coffee | 23 ------------------- .../services/variant_unit_manager.js.coffee | 23 +++++++++++++++++++ 5 files changed, 33 insertions(+), 33 deletions(-) create mode 100644 app/assets/javascripts/admin/services/variant_unit_manager.js.coffee diff --git a/app/assets/javascripts/admin/bulk_order_management.js.coffee b/app/assets/javascripts/admin/bulk_order_management.js.coffee index dbff7f5b4f..a051310d36 100644 --- a/app/assets/javascripts/admin/bulk_order_management.js.coffee +++ b/app/assets/javascripts/admin/bulk_order_management.js.coffee @@ -1,6 +1,6 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [ - "$scope", "$http", "dataFetcher", "blankOption", "pendingChanges", "OptionValueNamer", - ($scope, $http, dataFetcher, blankOption, pendingChanges, OptionValueNamer) -> + "$scope", "$http", "dataFetcher", "blankOption", "pendingChanges", "VariantUnitManager", "OptionValueNamer", + ($scope, $http, dataFetcher, blankOption, pendingChanges, VariantUnitManager, OptionValueNamer) -> $scope.initialiseVariables = -> start = daysFromToday -7 @@ -137,7 +137,7 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [ $scope.getScale = (value, unitType) -> scaledValue = null validScales = [] - unitScales = OptionValueNamer.unitScales(unitType) + unitScales = VariantUnitManager.unitScales(unitType) validScales.unshift scale for scale in unitScales when value/scale >= 1 if validScales.length > 0 @@ -146,13 +146,13 @@ angular.module("ofn.admin").controller "AdminOrderMgmtCtrl", [ unitScales[0] $scope.getUnitName = (scale, unitType) -> - OptionValueNamer.getUnitName(scale, unitType) + VariantUnitManager.getUnitName(scale, unitType) $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 = $scope.getScale(value, unitsProduct.variant_unit) - Math.round(value/scale * 1000)/1000 + " " + $scope.getUnitName(scale,unitsProduct.variant_unit) + Math.round(value/scale * 1000)/1000 + " " + $scope.getUnitName(scale, unitsProduct.variant_unit) else '' diff --git a/app/assets/javascripts/admin/bulk_product_update.js.coffee b/app/assets/javascripts/admin/bulk_product_update.js.coffee index dd9bfab4a7..2b327c0bc5 100644 --- a/app/assets/javascripts/admin/bulk_product_update.js.coffee +++ b/app/assets/javascripts/admin/bulk_product_update.js.coffee @@ -1,6 +1,6 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", [ - "$scope", "$timeout", "$http", "dataFetcher", "DirtyProducts", "OptionValueNamer", - ($scope, $timeout, $http, dataFetcher, DirtyProducts, OptionValueNamer) -> + "$scope", "$timeout", "$http", "dataFetcher", "DirtyProducts", "VariantUnitManager", + ($scope, $timeout, $http, dataFetcher, DirtyProducts, VariantUnitManager) -> $scope.updateStatusMessage = text: "" style: {} @@ -14,7 +14,7 @@ angular.module("ofn.admin").controller "AdminProductEditCtrl", [ taxons: {name: "Taxons", visible: false} available_on: {name: "Available On", visible: false} - $scope.variant_unit_options = OptionValueNamer.variant_unit_options + $scope.variant_unit_options = VariantUnitManager.variant_unit_options $scope.filterableColumns = [ { name: "Supplier", db_column: "supplier_name" }, diff --git a/app/assets/javascripts/admin/products/units_controller.js.coffee b/app/assets/javascripts/admin/products/units_controller.js.coffee index 2e84ea0380..3f66a2ad6c 100644 --- a/app/assets/javascripts/admin/products/units_controller.js.coffee +++ b/app/assets/javascripts/admin/products/units_controller.js.coffee @@ -1,5 +1,5 @@ angular.module("admin.products") - .controller "unitsCtrl", ($scope, OptionValueNamer) -> + .controller "unitsCtrl", ($scope, VariantUnitManager, OptionValueNamer) -> $scope.product = { master: {} } $scope.product.master.product = $scope.product $scope.placeholder_text = "" @@ -26,7 +26,7 @@ angular.module("admin.products") $scope.placeholder_text = new OptionValueNamer($scope.product.master).name() - $scope.variant_unit_options = OptionValueNamer.variant_unit_options + $scope.variant_unit_options = VariantUnitManager.variant_unit_options $scope.hasVariants = (product) -> Object.keys(product.variants).length > 0 diff --git a/app/assets/javascripts/admin/services/option_value_namer.js.coffee b/app/assets/javascripts/admin/services/option_value_namer.js.coffee index d0d917c774..ea723d8b57 100644 --- a/app/assets/javascripts/admin/services/option_value_namer.js.coffee +++ b/app/assets/javascripts/admin/services/option_value_namer.js.coffee @@ -1,28 +1,5 @@ angular.module("admin.products").factory "OptionValueNamer", -> class OptionValueNamer - @getUnitName: (scale, unitType) -> - unitNames = - 'weight': {1.0: 'g', 1000.0: 'kg', 1000000.0: 'T'} - 'volume': {0.001: 'mL', 1.0: 'L', 1000.0: 'kL'} - unitNames[unitType][scale] - - @unitScales: (unitType) -> - unitScales = - 'weight': [1.0, 1000.0, 1000000.0] - 'volume': [0.001, 1.0, 1000.0] - unitScales[unitType] - - @variant_unit_options: [ - ["Weight (g)", "weight_1"], - ["Weight (kg)", "weight_1000"], - ["Weight (T)", "weight_1000000"], - ["Volume (mL)", "volume_0.001"], - ["Volume (L)", "volume_1"], - ["Volume (kL)", "volume_1000"], - ["Items", "items"] - ] - - constructor: (@variant) -> name: -> diff --git a/app/assets/javascripts/admin/services/variant_unit_manager.js.coffee b/app/assets/javascripts/admin/services/variant_unit_manager.js.coffee new file mode 100644 index 0000000000..18ac280937 --- /dev/null +++ b/app/assets/javascripts/admin/services/variant_unit_manager.js.coffee @@ -0,0 +1,23 @@ +angular.module("admin.products").factory "VariantUnitManager", -> + class VariantUnitManager + @getUnitName: (scale, unitType) -> + unitNames = + 'weight': {1.0: 'g', 1000.0: 'kg', 1000000.0: 'T'} + 'volume': {0.001: 'mL', 1.0: 'L', 1000.0: 'kL'} + unitNames[unitType][scale] + + @unitScales: (unitType) -> + unitScales = + 'weight': [1.0, 1000.0, 1000000.0] + 'volume': [0.001, 1.0, 1000.0] + unitScales[unitType] + + @variant_unit_options: [ + ["Weight (g)", "weight_1"], + ["Weight (kg)", "weight_1000"], + ["Weight (T)", "weight_1000000"], + ["Volume (mL)", "volume_0.001"], + ["Volume (L)", "volume_1"], + ["Volume (kL)", "volume_1000"], + ["Items", "items"] + ]