mirror of https://github.com/apache/cloudstack.git
Conditionally show select SG step
Only show select security group step if at least one guest network with SecurityGroup service is selected.
This commit is contained in:
parent
6f90a86b13
commit
a2b2d45e40
|
|
@ -16,7 +16,7 @@
|
|||
// under the License.
|
||||
|
||||
(function($, cloudStack) {
|
||||
var zoneObjs, hypervisorObjs, featuredTemplateObjs, communityTemplateObjs, myTemplateObjs, featuredIsoObjs, community;
|
||||
var zoneObjs, hypervisorObjs, featuredTemplateObjs, communityTemplateObjs, myTemplateObjs, featuredIsoObjs, community, networkObjs;
|
||||
var selectedZoneObj, selectedTemplateObj, selectedHypervisor, selectedDiskOfferingObj;
|
||||
var step5ContainerType = 'nothing-to-select'; //'nothing-to-select', 'select-network', 'select-security-group'
|
||||
|
||||
|
|
@ -40,6 +40,33 @@
|
|||
!data.vpcid;
|
||||
},
|
||||
|
||||
// Runs when advanced SG-enabled zone is run, before
|
||||
// the security group step
|
||||
//
|
||||
// -- if it returns false, then 'Select Security Group' is skipped.
|
||||
//
|
||||
advSGFilter: function(args) {
|
||||
var selectedNetworks;
|
||||
|
||||
if ($.isArray(args.data['my-networks'])) {
|
||||
selectedNetworks = $(args.data['my-networks']).map(function(index, myNetwork) {
|
||||
return $.grep(networkObjs, function(networkObj) {
|
||||
return networkObj.id == myNetwork;
|
||||
});
|
||||
});
|
||||
} else {
|
||||
selectedNetworks = $.grep(networkObjs, function(networkObj) {
|
||||
return networkObj.id == args.data['my-networks'];
|
||||
});
|
||||
}
|
||||
|
||||
return $.grep(selectedNetworks, function(network) {
|
||||
return $.grep(network.service, function(service) {
|
||||
return service.name == 'SecurityGroup';
|
||||
}).length;
|
||||
}).length;
|
||||
},
|
||||
|
||||
// Data providers for each wizard step
|
||||
steps: [
|
||||
|
||||
|
|
@ -347,7 +374,7 @@
|
|||
networkData.account = g_account;
|
||||
}
|
||||
|
||||
var networkObjs, vpcObjs;
|
||||
var vpcObjs;
|
||||
|
||||
//listVPCs without account/domainid/listAll parameter will return only VPCs belonging to the current login. That's what should happen in Instances page's VM Wizard.
|
||||
//i.e. If the current login is root-admin, do not show VPCs belonging to regular-user/domain-admin in Instances page's VM Wizard.
|
||||
|
|
@ -365,7 +392,7 @@
|
|||
async: false,
|
||||
success: function(json) {
|
||||
networkObjs = json.listnetworksresponse.network ? json.listnetworksresponse.network : [];
|
||||
|
||||
|
||||
if(networkObjs.length > 0) {
|
||||
for(var i = 0; i < networkObjs.length; i++) {
|
||||
var networkObj = networkObjs[i];
|
||||
|
|
|
|||
|
|
@ -821,6 +821,16 @@
|
|||
cloudStack.dialog.notice({ message: 'message.step.4.continue' });
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($activeStep.hasClass('next-use-security-groups')) {
|
||||
var advSGFilter = args.advSGFilter({
|
||||
data: cloudStack.serializeForm($form)
|
||||
});
|
||||
|
||||
if (!advSGFilter) {
|
||||
showStep(6);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//step 6 - review (spcifiy displyname, group as well)
|
||||
|
|
|
|||
Loading…
Reference in New Issue