diff --git a/server/src/com/cloud/network/rules/RulesManagerImpl.java b/server/src/com/cloud/network/rules/RulesManagerImpl.java index a6af67a85d7..e2b1d33c3a7 100755 --- a/server/src/com/cloud/network/rules/RulesManagerImpl.java +++ b/server/src/com/cloud/network/rules/RulesManagerImpl.java @@ -378,10 +378,12 @@ public class RulesManagerImpl implements RulesManager, RulesService, Manager { } @Override + @ActionEvent(eventType = EventTypes.EVENT_ENABLE_STATIC_NAT, eventDescription = "enabling static nat") public boolean enableStaticNat(long ipId, long vmId, long networkId, boolean isSystemVm) throws NetworkRuleConflictException, ResourceUnavailableException { UserContext ctx = UserContext.current(); Account caller = ctx.getCaller(); + UserContext.current().setEventDetails("Ip Id: " + ipId); Object vmIdentity = null; // Verify input parameters @@ -1170,6 +1172,7 @@ public class RulesManagerImpl implements RulesManager, RulesService, Manager { } @Override + @ActionEvent(eventType = EventTypes.EVENT_DISABLE_STATIC_NAT, eventDescription = "disabling static nat", async=true) public boolean disableStaticNat(long ipId) throws ResourceUnavailableException, NetworkRuleConflictException, InsufficientAddressCapacityException { UserContext ctx = UserContext.current(); Account caller = ctx.getCaller(); diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css index c624df8e79e..fe0a5028d39 100644 --- a/ui/css/cloudstack3.css +++ b/ui/css/cloudstack3.css @@ -9473,17 +9473,22 @@ div.panel.ui-dialog div.list-view div.fixed-header { .vpc-chart li.tier .vm-count .loading-overlay { display: none; - width: 18px; - height: 18px; + width: 24px; + height: 24px; position: absolute; - left: 94px; - top: 9px; + left: 15px; + top: 7px; /*+border-radius:12px;*/ -moz-border-radius: 12px; -webkit-border-radius: 12px; -khtml-border-radius: 12px; border-radius: 12px; background-image: url(../images/ajax-loader-small.gif); + /*+opacity:100%;*/ + filter: alpha(opacity=100); + -ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100); + -moz-opacity: 1; + opacity: 1; } .vpc-chart li.tier.loading .vm-count .loading-overlay { diff --git a/ui/scripts/network.js b/ui/scripts/network.js index cb6342800ac..f82714ac6f1 100644 --- a/ui/scripts/network.js +++ b/ui/scripts/network.js @@ -160,6 +160,23 @@ sectionSelect: { preFilter: function(args) { var havingSecurityGroupNetwork = false; + var havingBasicZones = false; + + // Get basic zones + $.ajax({ + url: createURL('listZones'), + async: false, + success: function(json) { + var zones = json.listzonesresponse.zone ? + json.listzonesresponse.zone : []; + var basicZones = $.grep(zones, function(zone) { + return zone.networktype == 'Basic'; + }); + + havingBasicZones = basicZones.length ? true : false; + } + }); + $.ajax({ url: createURL('listNetworks', { ignoreProject: true }), data: { @@ -174,7 +191,12 @@ } }); - var sectionsToShow = ['networks', 'vpc', 'vpnCustomerGateway']; + var sectionsToShow = ['networks', 'vpnCustomerGateway']; + + if (!havingBasicZones) { + sectionsToShow.push('vpc'); + } + if(havingSecurityGroupNetwork == true) sectionsToShow.push('securityGroups');