From 3822be5a5cf21de2d7578997e3eb63db2562ab75 Mon Sep 17 00:00:00 2001 From: Wei Zhou Date: Fri, 15 Jan 2016 07:47:47 +0100 Subject: [PATCH] CLOUDSTACK-6181: Add 'root disk size' field in instance wizard for KVM templates This commit includes three changes: (1) Revert commit 13bf1ec5da9891eca98ef5dab61bf74b6db9530b to show the 'root disk size' field (2) Set the default value from '1' to empty. This also changes the default value of customized service offerings from '1' to empty. (3) show 'root disk size' field only when users choose a KVM template, as cloudstack supports deployvm with rootdisksize on KVM only. --- .../classes/resources/messages.properties | 2 +- ui/scripts/instanceWizard.js | 4 -- ui/scripts/ui-custom/instanceWizard.js | 55 ++++++++++++++++--- 3 files changed, 47 insertions(+), 14 deletions(-) diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties index 6cafdb01732..bbc85b68d04 100644 --- a/client/WEB-INF/classes/resources/messages.properties +++ b/client/WEB-INF/classes/resources/messages.properties @@ -38,7 +38,7 @@ label.smb.domain=SMB Domain label.hypervisors=Hypervisors label.home=Home label.sockets=CPU Sockets -label.root.disk.size=Root disk size +label.root.disk.size=Root disk size (GB) label.s3.nfs.server=S3 NFS Server label.s3.nfs.path=S3 NFS Path label.delete.events=Delete events diff --git a/ui/scripts/instanceWizard.js b/ui/scripts/instanceWizard.js index 98ac62bd073..958844e64fe 100644 --- a/ui/scripts/instanceWizard.js +++ b/ui/scripts/instanceWizard.js @@ -279,10 +279,6 @@ hypervisors: hypervisorObjs }, customHidden: function(args) { - //// - return true; // Disabled -- not supported in backend right now - //// - if (selectedTemplateOrIso == 'select-template') { return false; //show Root Disk Size field } else { //selectedTemplateOrIso == 'select-iso' diff --git a/ui/scripts/ui-custom/instanceWizard.js b/ui/scripts/ui-custom/instanceWizard.js index a7ce13965c8..78f781f6b8e 100644 --- a/ui/scripts/ui-custom/instanceWizard.js +++ b/ui/scripts/ui-custom/instanceWizard.js @@ -419,8 +419,6 @@ }); }); - originalValues(formData); - var custom = args.customHidden({ context: context, data: args.data @@ -428,13 +426,52 @@ $step.find('.custom-size-label').remove(); - if (!custom) { - $step.find('.section.custom-size').show(); - $step.addClass('custom-disk-size'); - } else { + if (custom) { $step.find('.section.custom-size').hide(); $step.removeClass('custom-disk-size'); } + + $step.find('input[type=radio]').bind('change', function() { + var $target = $(this); + var val = $target.val(); + var item = null; + if (item == null) { + item = $.grep(args.data.templates.featuredtemplates, function(elem) { + return elem.id == val; + })[0]; + } + if (item == null) { + item = $.grep(args.data.templates.communitytemplates, function(elem) { + return elem.id == val; + })[0]; + } + if (item == null) { + item = $.grep(args.data.templates.mytemplates, function(elem) { + return elem.id == val; + })[0]; + } + if (item == null) { + item = $.grep(args.data.templates.sharedtemplates, function(elem) { + return elem.id == val; + })[0]; + } + + if (!item) return true; + + var hypervisor = item['hypervisor']; + if (hypervisor == 'KVM') { + $step.find('.section.custom-size').show(); + $step.addClass('custom-disk-size'); + } else { + $step.find('.section.custom-size').hide(); + $step.removeClass('custom-disk-size'); + } + + return true; + }); + + originalValues(formData); + } } }; @@ -1271,9 +1308,9 @@ args.maxDiskOfferingSize() : 100; // Setup tabs and slider - $wizard.find('.section.custom-size .size.min span').html(minCustomDiskSize); - $wizard.find('.section.custom-size input[type=text]').val(minCustomDiskSize); - $wizard.find('.section.custom-size .size.max span').html(maxCustomDiskSize); + $wizard.find('.section.custom-size.custom-disk-size .size.min span').html(minCustomDiskSize); + $wizard.find('.section.custom-size.custom-disk-size input[type=text]').val(minCustomDiskSize); + $wizard.find('.section.custom-size.custom-disk-size .size.max span').html(maxCustomDiskSize); $wizard.find('.tab-view').tabs(); $wizard.find('.slider').each(function() { var $slider = $(this);