diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties index 75da7e8ece4..c9e7d8cc38f 100644 --- a/client/WEB-INF/classes/resources/messages.properties +++ b/client/WEB-INF/classes/resources/messages.properties @@ -4,6 +4,8 @@ label.action.destroy.systemvm.processing=Destroying System VM.... message.action.destroy.systemvm=Please confirm you want to destroy System VM label.numretries = Number of Retries label.timeout.in.second = Timeout(seconds) +message.action.delete.external.firewall=Please confirm that you would like to remove this external firewall. Warning: If you are planning to add back the same external firewall, you must reset usage data on the device. +message.action.delete.external.load.balancer=Please confirm that you would like to remove this external load balancer. Warning: If you are planning to add back the same external load balancer, you must reset usage data on the device. #Labels label.account.id=Account ID diff --git a/ui/jsp/network.jsp b/ui/jsp/network.jsp index 8d9ff31805d..7451b3480e6 100644 --- a/ui/jsp/network.jsp +++ b/ui/jsp/network.jsp @@ -15,7 +15,9 @@ dictionary = { 'label.action.delete.load.balancer.processing' : '', 'label.action.delete.network' : '', 'label.action.delete.network.processing' : '', - 'message.action.delete.network' : '' + 'message.action.delete.network' : '', + 'message.action.delete.external.firewall': '', + 'message.action.delete.external.load.balancer': '' }; diff --git a/ui/scripts/cloud.core.network.js b/ui/scripts/cloud.core.network.js index 961359e19fb..9189b1035f1 100644 --- a/ui/scripts/cloud.core.network.js +++ b/ui/scripts/cloud.core.network.js @@ -364,9 +364,9 @@ function publicNetworkFirewallJsonToTemplate(jsonObj, $template) { } var publicNetworkFirewallActionMap = { - "label.action.delete.firewall": { - api: "deleteExternalFirewall", - isAsyncJob: false, + "label.action.delete.firewall": { + isAsyncJob: false, + dialogBeforeActionFn : doDeleteExternalFirewall, inProcessText: "label.action.delete.firewall.processing", afterActionSeccessFn: function(json, id, $subgridItem) { $subgridItem.slideUp("slow", function() { @@ -376,6 +376,23 @@ var publicNetworkFirewallActionMap = { } } +function doDeleteExternalFirewall($actionLink, $subgridItem) { + var jsonObj = $subgridItem.data("jsonObj"); + var id = jsonObj.id; + + $("#dialog_confirmation") + .text(dictionary["message.action.delete.external.firewall"]) + .dialog('option', 'buttons', { + "Confirm": function() { + $(this).dialog("close"); + var apiCommand = "command=deleteExternalFirewall&id="+id; + doActionToSubgridItem(id, $actionLink, apiCommand, $subgridItem); + }, + "Cancel": function() { + $(this).dialog("close"); + } + }).dialog("open"); +} function publicNetworkJsonToLoadBalancerTab() { var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1"); @@ -442,9 +459,9 @@ function publicNetworkLoadBalancerJsonToTemplate(jsonObj, $template) { } var publicNetworkLoadBalancerActionMap = { - "label.action.delete.load.balancer": { - api: "deleteExternalLoadBalancer", - isAsyncJob: false, + "label.action.delete.load.balancer": { + isAsyncJob: false, + dialogBeforeActionFn: doDeleteExternalLoadBalancer, inProcessText: "label.action.delete.load.balancer.processing", afterActionSeccessFn: function(json, id, $subgridItem) { $subgridItem.slideUp("slow", function() { @@ -454,6 +471,24 @@ var publicNetworkLoadBalancerActionMap = { } } +function doDeleteExternalLoadBalancer($actionLink, $subgridItem) { + var jsonObj = $subgridItem.data("jsonObj"); + var id = jsonObj.id; + + $("#dialog_confirmation") + .text(dictionary["message.action.delete.external.load.balancer"]) + .dialog('option', 'buttons', { + "Confirm": function() { + $(this).dialog("close"); + var apiCommand = "command=deleteExternalLoadBalancer&id="+id; + doActionToSubgridItem(id, $actionLink, apiCommand, $subgridItem); + }, + "Cancel": function() { + $(this).dialog("close"); + } + }).dialog("open"); +} + function bindAddIpRangeToPublicNetworkButton($button, $midmenuItem1) { var jsonObj = $midmenuItem1.data("jsonObj");