diff --git a/ui/scripts/instanceWizard.js b/ui/scripts/instanceWizard.js index d9260b0b2de..75d45aad9c4 100644 --- a/ui/scripts/instanceWizard.js +++ b/ui/scripts/instanceWizard.js @@ -33,11 +33,10 @@ // Called in networks list, when VPC drop-down is changed // -- if vpcID given, return true if in network specified by vpcID - // -- if vpcID == -1, return true if network is not associated with a VPC + // -- if vpcID == -1, always show all networks vpcFilter: function(data, vpcID) { - return vpcID != -1? - data.vpcid == vpcID : - !data.vpcid; + return vpcID != -1 ? + data.vpcid == vpcID : true; }, // Runs when advanced SG-enabled zone is run, before @@ -401,7 +400,12 @@ includingSecurityGroup = true; break; } - } + } + + if (networkObj.vpcid) { + networkObj._singleSelect = true; + } + //for Advanced SG-enabled zone, list only SG network offerings if(selectedZoneObj.networktype == 'Advanced' && selectedZoneObj.securitygroupsenabled == true) { if(includingSecurityGroup == false) diff --git a/ui/scripts/ui-custom/instanceWizard.js b/ui/scripts/ui-custom/instanceWizard.js index 8e4ed7e010a..b55df79e7be 100644 --- a/ui/scripts/ui-custom/instanceWizard.js +++ b/ui/scripts/ui-custom/instanceWizard.js @@ -91,7 +91,8 @@ options = options ? options : {}; $(data).each(function() { - var id = this[fields.id]; + var item = this; + var id = item[fields.id]; var $select = $('
') .addClass('select') @@ -107,17 +108,22 @@ .val(id) .click(function() { var $select = $(this).closest('.select'); + var isSingleSelect = $select.hasClass('single-select'); var $radio = $select.find('input[type=radio]'); var $newNetwork = $(this).closest('.content').find('.select.new-network'); var $otherSelects = $select.siblings().filter(':visible'); var isCheckbox = $(this).attr('type') == 'checkbox'; - var isSingleSelect = $(this).closest('.select-container').hasClass('single-select'); if (isCheckbox) { - if ((isSingleSelect || !$otherSelects.size()) && - $newNetwork.find('input[type=checkbox]').is(':unchecked')) { - $otherSelects.find('input[type=checkbox]').attr('checked', false); + if (isSingleSelect) { + $select.siblings('.single-select:visible').find('input[type=checkbox]') + .attr('checked', false); + + $(this).closest('.select').find('input[type=radio]').click(); + } + if ((!$otherSelects.size()) && + $newNetwork.find('input[type=checkbox]').is(':unchecked')) { // Set as default $(this).closest('.select').find('input[type=radio]').click(); } @@ -144,6 +150,10 @@ $selects.append($select); + if (item._singleSelect) { + $select.addClass('single-select'); + } + if (options.secondary) { var $secondary = $('
').addClass('secondary-input').append( $('') @@ -164,6 +174,11 @@ $(this).closest('.select').siblings().find('input[type=checkbox]') .attr('checked', false); } + + if ($select.hasClass('single-select')) { + $select.siblings('.single-select:visible').find('input[type=checkbox]') + .attr('checked', false); + } }) .after( $('
').addClass('name').html(options.secondary.desc) @@ -614,7 +629,7 @@ }); // 'No VPC' option - $('