From 0277a66382cdb7954ef205aae41199e2d1dddec9 Mon Sep 17 00:00:00 2001 From: Sergio Betanzos Date: Fri, 24 Jul 2020 15:55:32 +0200 Subject: [PATCH] M #~: Fix memory input in vm form instantiate (#115) (cherry picked from commit f28db525c9820c529c4acbc0bd6dcc465bce5ecd) --- .../templates-tab/form-panels/instantiate.js | 18 +++++++++++++----- src/sunstone/public/app/utils/user-inputs.js | 4 ++-- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/sunstone/public/app/tabs/templates-tab/form-panels/instantiate.js b/src/sunstone/public/app/tabs/templates-tab/form-panels/instantiate.js index 224b6e45c8..9038389329 100644 --- a/src/sunstone/public/app/tabs/templates-tab/form-panels/instantiate.js +++ b/src/sunstone/public/app/tabs/templates-tab/form-panels/instantiate.js @@ -606,11 +606,19 @@ define(function(require) { CapacityInputs.setup(capacityContext); CapacityInputs.fill(capacityContext, template_json.VMTEMPLATE); - if (template_json.VMTEMPLATE.TEMPLATE.HYPERVISOR == "vcenter"){ - $(".memory_input .mb_input input", context).attr("pattern", "^([048]|\\d*[13579][26]|\\d*[24680][048])$"); - } else { - $(".memory_input .mb_input input", context).removeAttr("pattern"); - } + var mb_input_unit = $(".memory_input .mb_input_unit", context); + mb_input_unit.off("change"); + mb_input_unit.on("change", function() { + var isMB = $(this).val() === "MB"; + var isVCenter = template_json.VMTEMPLATE.TEMPLATE.HYPERVISOR == "vcenter"; + + if (isMB && isVCenter) { + $(".memory_input .mb_input input", context).attr("pattern", "^([048]|\\d*[13579][26]|\\d*[24680][048])$"); + } else { + $(".memory_input .mb_input input", context).removeAttr("pattern"); + } + }); + mb_input_unit.trigger("change"); var cpuCost = template_json.VMTEMPLATE.TEMPLATE.CPU_COST; var memoryCost = template_json.VMTEMPLATE.TEMPLATE.MEMORY_COST; diff --git a/src/sunstone/public/app/utils/user-inputs.js b/src/sunstone/public/app/utils/user-inputs.js index aa848accfe..ed65241d25 100644 --- a/src/sunstone/public/app/utils/user-inputs.js +++ b/src/sunstone/public/app/utils/user-inputs.js @@ -747,7 +747,7 @@ define(function(require) { var min = parseInt(element.attr("min"),10); var max = parseInt(element.attr("max"),10); if (value == ""){ - $(".mb_input_unit", context).val("MB").change(); + $(".mb_input_unit", context).val("MB").trigger("change"); }else{ // If you are going to put a new unit you must put it up in the html, here and down in the change if(value / (base**2) >= 1){ @@ -767,7 +767,7 @@ define(function(require) { } $("input.visor", contextElement).val(valueInUnit); var contextUnit = contextElement.siblings(".input-group-button"); - $(".mb_input_unit", contextUnit).val(unit).change(); + $(".mb_input_unit", contextUnit).val(unit).trigger("change"); } $("div.mb_input", context).on("change", "input.visor, select", function(e){