From 0611c92cad6edd357e0eb2bfde7eea724bd4b004 Mon Sep 17 00:00:00 2001 From: Jessica Wang Date: Mon, 13 Jun 2011 16:54:27 -0700 Subject: [PATCH] cloudStack UI - Instance page - Stop Instance - show "Force Stop Instance" option for root-admin. --- .../classes/resources/messages.properties | 3 ++- ui/jsp/instance.jsp | 22 +++++++++++++++ ui/scripts/cloud.core.instance.js | 27 ++++++++++++------- 3 files changed, 41 insertions(+), 11 deletions(-) diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties index 23997e77524..631bd67673c 100644 --- a/client/WEB-INF/classes/resources/messages.properties +++ b/client/WEB-INF/classes/resources/messages.properties @@ -1,5 +1,6 @@ #New - Add all new parameters here. - +force.stop.instance=Force Stop Instance +force.stop.instance.warning=Force Stop Instance might cause data lost #Labels label.PreSetup=PreSetup diff --git a/ui/jsp/instance.jsp b/ui/jsp/instance.jsp index 74b58f73f82..e39ca32f7cd 100644 --- a/ui/jsp/instance.jsp +++ b/ui/jsp/instance.jsp @@ -1452,6 +1452,28 @@ dictionary = { + + + + +
diff --git a/ui/scripts/cloud.core.instance.js b/ui/scripts/cloud.core.instance.js index 265cb00b292..5cc8944b558 100644 --- a/ui/scripts/cloud.core.instance.js +++ b/ui/scripts/cloud.core.instance.js @@ -143,7 +143,13 @@ function afterLoadInstanceJSP() { initDialog("dialog_change_service_offering", 600); initDialog("dialog_create_template", 400); initDialog("dialog_migrate_instance", 600); - + initDialog("dialog_confirmation_stop_vm"); + + var $dialogStopVm = $("#dialog_confirmation_stop_vm"); + if(isAdmin()) { + $dialogStopVm.find("#force_stop_instance_container").show(); + } + $.ajax({ data: createURL("command=listOsTypes"), dataType: "json", @@ -221,9 +227,8 @@ function bindStopVMButton() { $("#dialog_info_please_select_one_item_in_middle_menu").dialog("open"); return false; } - - $("#dialog_confirmation") - .text(dictionary["message.action.stop.instance"]) + + $("#dialog_confirmation_stop_vm") .dialog('option', 'buttons', { "Confirm": function() { $(this).dialog("close"); @@ -240,9 +245,11 @@ function bindStopVMButton() { vmToRightPanel($midmenuItem1); } } - + + var isForced = $("#dialog_confirmation_stop_vm").find("#force_stop_instance").attr("checked").toString(); + for(var id in selectedItemsInMidMenu) { - var apiCommand = "command=stopVirtualMachine&id="+id; + var apiCommand = "command=stopVirtualMachine&id="+id+"&forced="+isForced; doActionToMidMenu(id, apiInfo, apiCommand); } @@ -1412,15 +1419,15 @@ function doStartVM($actionLink, $detailsTab, $midmenuItem1) { } function doStopVM($actionLink, $detailsTab, $midmenuItem1) { - $("#dialog_confirmation") - .text(dictionary["message.action.stop.instance"]) + $("#dialog_confirmation_stop_vm") .dialog('option', 'buttons', { "Confirm": function() { $(this).dialog("close"); var jsonObj = $midmenuItem1.data("jsonObj"); - var id = jsonObj.id; - var apiCommand = "command=stopVirtualMachine&id="+id; + var id = jsonObj.id; + var isForced = $("#dialog_confirmation_stop_vm").find("#force_stop_instance").attr("checked").toString(); + var apiCommand = "command=stopVirtualMachine&id="+id+"&forced="+isForced; doActionToTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab); }, "Cancel": function() {