|
16 | 16 | // under the License. |
17 | 17 |
|
18 | 18 | (function($, cloudStack) { |
19 | | - var zoneObjs, hypervisorObjs, featuredTemplateObjs, communityTemplateObjs, myTemplateObjs, featuredIsoObjs, community; |
| 19 | + var zoneObjs, hypervisorObjs, featuredTemplateObjs, communityTemplateObjs, myTemplateObjs, featuredIsoObjs, community, networkObjs; |
20 | 20 | var selectedZoneObj, selectedTemplateObj, selectedHypervisor, selectedDiskOfferingObj; |
21 | 21 | var step5ContainerType = 'nothing-to-select'; //'nothing-to-select', 'select-network', 'select-security-group' |
22 | 22 |
|
|
40 | 40 | !data.vpcid; |
41 | 41 | }, |
42 | 42 |
|
| 43 | + // Runs when advanced SG-enabled zone is run, before |
| 44 | + // the security group step |
| 45 | + // |
| 46 | + // -- if it returns false, then 'Select Security Group' is skipped. |
| 47 | + // |
| 48 | + advSGFilter: function(args) { |
| 49 | + var selectedNetworks; |
| 50 | + |
| 51 | + if ($.isArray(args.data['my-networks'])) { |
| 52 | + selectedNetworks = $(args.data['my-networks']).map(function(index, myNetwork) { |
| 53 | + return $.grep(networkObjs, function(networkObj) { |
| 54 | + return networkObj.id == myNetwork; |
| 55 | + }); |
| 56 | + }); |
| 57 | + } else { |
| 58 | + selectedNetworks = $.grep(networkObjs, function(networkObj) { |
| 59 | + return networkObj.id == args.data['my-networks']; |
| 60 | + }); |
| 61 | + } |
| 62 | + |
| 63 | + return $.grep(selectedNetworks, function(network) { |
| 64 | + return $.grep(network.service, function(service) { |
| 65 | + return service.name == 'SecurityGroup'; |
| 66 | + }).length; |
| 67 | + }).length; |
| 68 | + }, |
| 69 | + |
43 | 70 | // Data providers for each wizard step |
44 | 71 | steps: [ |
45 | 72 |
|
|
347 | 374 | networkData.account = g_account; |
348 | 375 | } |
349 | 376 |
|
350 | | - var networkObjs, vpcObjs; |
| 377 | + var vpcObjs; |
351 | 378 |
|
352 | 379 | //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. |
353 | 380 | //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 | 392 | async: false, |
366 | 393 | success: function(json) { |
367 | 394 | networkObjs = json.listnetworksresponse.network ? json.listnetworksresponse.network : []; |
368 | | - |
| 395 | + |
369 | 396 | if(networkObjs.length > 0) { |
370 | 397 | for(var i = 0; i < networkObjs.length; i++) { |
371 | 398 | var networkObj = networkObjs[i]; |
|
0 commit comments