diff --git a/ui/jsp/cluster.jsp b/ui/jsp/cluster.jsp
index baed33f2f43..e3aa0232597 100644
--- a/ui/jsp/cluster.jsp
+++ b/ui/jsp/cluster.jsp
@@ -15,7 +15,13 @@ dictionary = {
'message.action.enable.cluster' : '',
'label.action.disable.cluster' : '',
'label.action.disable.cluster.processing' : '',
- 'message.action.disable.cluster' : ''
+ 'message.action.disable.cluster' : '',
+ 'label.action.manage.cluster' : '',
+ 'message.action.manage.cluster' : '',
+ 'label.action.manage.cluster.processing' : '',
+ 'label.action.unmanage.cluster' : '',
+ 'message.action.unmanage.cluster' : '',
+ 'label.action.unmanage.cluster.processing' : ''
};
diff --git a/ui/scripts/cloud.core.cluster.js b/ui/scripts/cloud.core.cluster.js
index 3a76cd4d42f..277a261597b 100644
--- a/ui/scripts/cloud.core.cluster.js
+++ b/ui/scripts/cloud.core.cluster.js
@@ -94,6 +94,11 @@ function clusterBuildActionMenu(jsonObj) {
else if(jsonObj.allocationstate == "Enabled")
buildActionLinkForTab("label.action.disable.cluster", clusterActionMap, $actionMenu, $midmenuItem1, $thisTab);
+ if(jsonObj.managedstate == "Managed")
+ buildActionLinkForTab("label.action.unmanage.cluster", clusterActionMap, $actionMenu, $midmenuItem1, $thisTab);
+ else //PrepareUnmanaged , PrepareUnmanagedError, Unmanaged
+ buildActionLinkForTab("label.action.manage.cluster", clusterActionMap, $actionMenu, $midmenuItem1, $thisTab);
+
buildActionLinkForTab("label.action.delete.cluster", clusterActionMap, $actionMenu, $midmenuItem1, $thisTab);
}
@@ -137,6 +142,28 @@ var clusterActionMap = {
clusterBuildActionMenu(jsonObj);
}
}
+ ,
+ "label.action.manage.cluster": {
+ isAsyncJob: false,
+ dialogBeforeActionFn : doUnmanageCluster,
+ inProcessText: "label.action.manage.cluster.processing",
+ afterActionSeccessFn: function(json, $midmenuItem1, id) {
+ var jsonObj = json.updateclusterresponse.cluster;
+ $("#right_panel_content").find("#tab_content_details").find("#managedstate").text(fromdb(jsonObj.managedstate));
+ clusterBuildActionMenu(jsonObj);
+ }
+ }
+ ,
+ "label.action.unmanage.cluster": {
+ isAsyncJob: false,
+ dialogBeforeActionFn : doUnmanageCluster,
+ inProcessText: "label.action.unmanage.cluster.processing",
+ afterActionSeccessFn: function(json, $midmenuItem1, id) {
+ var jsonObj = json.updateclusterresponse.cluster;
+ $("#right_panel_content").find("#tab_content_details").find("#managedstate").text(fromdb(jsonObj.managedstate));
+ clusterBuildActionMenu(jsonObj);
+ }
+ }
,
"label.action.delete.cluster": {
api: "deleteCluster",
@@ -191,6 +218,42 @@ function doDisableCluster($actionLink, $detailsTab, $midmenuItem1) {
}).dialog("open");
}
+function doManageCluster($actionLink, $detailsTab, $midmenuItem1) {
+ var jsonObj = $midmenuItem1.data("jsonObj");
+ var id = jsonObj.id;
+
+ $("#dialog_confirmation")
+ .text(dictionary["message.action.manage.cluster"])
+ .dialog('option', 'buttons', {
+ "Confirm": function() {
+ $(this).dialog("close");
+ var apiCommand = "command=updateCluster&id="+id+"&managedstate=Managed";
+ doActionToTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
+ },
+ "Cancel": function() {
+ $(this).dialog("close");
+ }
+ }).dialog("open");
+}
+
+function doUnmanageCluster($actionLink, $detailsTab, $midmenuItem1) {
+ var jsonObj = $midmenuItem1.data("jsonObj");
+ var id = jsonObj.id;
+
+ $("#dialog_confirmation")
+ .text(dictionary["message.action.unmanage.cluster"])
+ .dialog('option', 'buttons', {
+ "Confirm": function() {
+ $(this).dialog("close");
+ var apiCommand = "command=updateCluster&id="+id+"&managedstate=Unmanaged";
+ doActionToTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);
+ },
+ "Cancel": function() {
+ $(this).dialog("close");
+ }
+ }).dialog("open");
+}
+
function doDeleteCluster($actionLink, $detailsTab, $midmenuItem1) {
var jsonObj = $midmenuItem1.data("jsonObj");
var id = jsonObj.id;