diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties index d8a226e6fb1..75da7e8ece4 100644 --- a/client/WEB-INF/classes/resources/messages.properties +++ b/client/WEB-INF/classes/resources/messages.properties @@ -1,4 +1,7 @@ #New - Add all new parameters here. +label.action.destroy.systemvm=Destroy System VM +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) diff --git a/ui/jsp/systemvm.jsp b/ui/jsp/systemvm.jsp index 1376b5e6ac7..d71de926173 100644 --- a/ui/jsp/systemvm.jsp +++ b/ui/jsp/systemvm.jsp @@ -15,7 +15,10 @@ dictionary = { 'message.action.stop.systemvm' : '', 'label.action.reboot.systemvm' : '', 'label.action.reboot.systemvm.processing' : '', - 'message.action.reboot.systemvm' : '' + 'message.action.reboot.systemvm' : '', + 'label.action.destroy.systemvm': '', + 'label.action.destroy.systemvm.processing': '', + 'message.action.destroy.systemvm': '' }; diff --git a/ui/scripts/cloud.core.instance.js b/ui/scripts/cloud.core.instance.js index 9ae2215ace9..ff0ab0da102 100644 --- a/ui/scripts/cloud.core.instance.js +++ b/ui/scripts/cloud.core.instance.js @@ -1753,6 +1753,10 @@ function vmJsonToDetailsTab(){ buildActionLinkForTab("label.action.change.service", vmActionMap, $actionMenu, $midmenuItem1, $thisTab); noAvailableActions = false; } + else if (jsonObj.state == 'Error') { + buildActionLinkForTab("label.action.destroy.instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab); + noAvailableActions = false; + } // no available actions if(noAvailableActions == true) { diff --git a/ui/scripts/cloud.core.systemvm.js b/ui/scripts/cloud.core.systemvm.js index 061eae25e26..9d14eae6500 100644 --- a/ui/scripts/cloud.core.systemvm.js +++ b/ui/scripts/cloud.core.systemvm.js @@ -122,14 +122,28 @@ function systemvmJsonToDetailsTab() { }); var $actionMenu = $actionLink.find("#action_menu"); $actionMenu.find("#action_list").empty(); + var noAvailableActions = true; - if (jsonObj.state == 'Running') { //Show "Stop System VM", "Reboot System VM" + if (jsonObj.state == 'Running') { buildActionLinkForTab("label.action.stop.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab); - buildActionLinkForTab("label.action.reboot.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab); + buildActionLinkForTab("label.action.reboot.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab); + buildActionLinkForTab("label.action.destroy.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab); + noAvailableActions = false; } - else if (jsonObj.state == 'Stopped') { //show "Start System VM" + else if (jsonObj.state == 'Stopped') { buildActionLinkForTab("label.action.start.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab); - } + buildActionLinkForTab("label.action.destroy.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab); + noAvailableActions = false; + } + else if (jsonObj.state == 'Error') { + buildActionLinkForTab("label.action.destroy.systemvm", systemVmActionMap, $actionMenu, $midmenuItem1, $thisTab); + noAvailableActions = false; + } + + // no available actions + if(noAvailableActions == true) { + $actionMenu.find("#action_list").append($("#no_available_actions").clone().show()); + } $thisTab.find("#tab_spinning_wheel").hide(); $thisTab.find("#tab_container").show(); @@ -197,6 +211,17 @@ var systemVmActionMap = { var jsonObj = json.queryasyncjobresultresponse.jobresult.systemvm; systemvmToMidmenu(jsonObj, $midmenuItem1); } + }, + "label.action.destroy.systemvm": { + isAsyncJob: true, + asyncJobResponse: "destroysystemvmresponse", + dialogBeforeActionFn : doDestroySystemVM, + inProcessText: "label.action.destroy.systemvm.processing", + afterActionSeccessFn: function(json, $midmenuItem1, id) { + $midmenuItem1.slideUp("slow", function() { + + }); + } } } @@ -257,3 +282,20 @@ function doRebootSystemVM($actionLink, $detailsTab, $midmenuItem1) { }).dialog("open"); } +function doDestroySystemVM($actionLink, $detailsTab, $midmenuItem1) { + var jsonObj = $midmenuItem1.data("jsonObj"); + var id = jsonObj.id; + + $("#dialog_confirmation") + .text(dictionary["message.action.destroy.systemvm"]) + .dialog('option', 'buttons', { + "Confirm": function() { + $(this).dialog("close"); + var apiCommand = "command=destroySystemVm&id="+id; + doActionToTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab); + }, + "Cancel": function() { + $(this).dialog("close"); + } + }).dialog("open"); +}