From 134202bedd0d08a38aff067f76ab7bf58b4d8429 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bellet Date: Thu, 12 May 2022 16:49:36 +0200 Subject: [PATCH] Initialize value for `variant_unit_with_scale` --- .../admin/products/controllers/units_controller.js.coffee | 2 ++ .../admin/products/services/variant_unit_manager.js.coffee | 5 ++++- app/views/spree/admin/products/new.html.haml | 6 +++--- 3 files changed, 9 insertions(+), 4 deletions(-) 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 89a7027e07..8da7471d21 100644 --- a/app/assets/javascripts/admin/products/controllers/units_controller.js.coffee +++ b/app/assets/javascripts/admin/products/controllers/units_controller.js.coffee @@ -21,6 +21,8 @@ angular.module("admin.products") else $scope.product.variant_unit = $scope.product.variant_unit_with_scale $scope.product.variant_unit_scale = null + else if $scope.product.variant_unit && $scope.product.variant_unit_scale + $scope.product.variant_unit_with_scale = VariantUnitManager.getUnitWithScale($scope.product.variant_unit, parseFloat($scope.product.variant_unit_scale)) else $scope.product.variant_unit = $scope.product.variant_unit_scale = null 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 edcc93145f..a514cc2424 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 @@ -33,10 +33,13 @@ angular.module("admin.products").factory "VariantUnitManager", (availableUnits) options = for unit_type, _ of @units for scale in @unitScales(unit_type, available) name = @getUnitName(scale, unit_type) - ["#{I18n.t(unit_type)} (#{name})", "#{unit_type}_#{scale}"] + ["#{I18n.t(unit_type)} (#{name})", @getUnitWithScale(unit_type, scale)] options.push [[I18n.t('items'), 'items']] options = [].concat options... + @getUnitWithScale: (unit_type, scale) -> + "#{unit_type}_#{scale}" + @getUnitName: (scale, unitType) -> if @units[unitType][scale] @units[unitType][scale]['name'] diff --git a/app/views/spree/admin/products/new.html.haml b/app/views/spree/admin/products/new.html.haml index 868dc40bf1..5a90a889c3 100644 --- a/app/views/spree/admin/products/new.html.haml +++ b/app/views/spree/admin/products/new.html.haml @@ -25,10 +25,10 @@ = f.field_container :units do = f.label :variant_unit_with_scale, t(".units") %span.required * - %select.select2.fullwidth{ id: 'product_variant_unit_with_scale', 'ng-model' => 'product.variant_unit_with_scale', 'ng-options' => 'unit[1] as unit[0] for unit in variant_unit_options' } + %select{id: 'product_variant_unit_with_scale', 'ng-model' => 'product.variant_unit_with_scale', 'ng-options' => 'unit[1] as unit[0] for unit in variant_unit_options',"data-controller": "tom-select", class: "primary"} %option{'value' => '', 'ng-hide' => "hasUnit(product)"} - %input{ type: 'hidden', 'ng-value' => 'product.variant_unit', name: 'product[variant_unit]' } - %input{ type: 'hidden', 'ng-value' => 'product.variant_unit_scale', name: 'product[variant_unit_scale]' } + %input{ type: 'hidden', 'ng-value': 'product.variant_unit', "ng-init": "product.variant_unit='#{@product.variant_unit}'", name: 'product[variant_unit]' } + %input{ type: 'hidden', 'ng-value': 'product.variant_unit_scale', "ng-init": "product.variant_unit_scale='#{@product.variant_unit_scale}'", name: 'product[variant_unit_scale]' } .two.columns = f.field_container :unit_value do = f.label :unit_value_with_description, t(".value"), 'ng-disabled' => "!hasUnit(product)"