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() {