mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			207 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			207 lines
		
	
	
		
			7.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  /**
 | |
|  *  Copyright (C) 2010 Cloud.com, Inc.  All rights reserved.
 | |
|  * 
 | |
|  * This software is licensed under the GNU General Public License v3 or later.
 | |
|  * 
 | |
|  * It is free software: you can redistribute it and/or modify
 | |
|  * it under the terms of the GNU General Public License as published by
 | |
|  * the Free Software Foundation, either version 3 of the License, or any later version.
 | |
|  * This program is distributed in the hope that it will be useful,
 | |
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | |
|  * GNU General Public License for more details.
 | |
|  * 
 | |
|  * You should have received a copy of the GNU General Public License
 | |
|  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
|  * 
 | |
|  */
 | |
|   
 | |
| function afterLoadClusterJSP($midmenuItem1) {
 | |
|     hideMiddleMenu();  
 | |
|     initDialog("dialog_add_host", 400);
 | |
|     
 | |
|     //add pool dialog
 | |
|     initDialog("dialog_add_pool", 400);   
 | |
|     bindEventHandlerToDialogAddPool($("#dialog_add_pool"));	 
 | |
| }
 | |
| 
 | |
| 
 | |
| function clusterToRightPanel($midmenuItem1) {  
 | |
|     $("#right_panel_content").data("$midmenuItem1", $midmenuItem1);        
 | |
|     clusterJsonToDetailsTab(); 
 | |
| }
 | |
| 
 | |
| function clusterClearRightPanel() {
 | |
|     clusterClearDetailsTab();
 | |
| }
 | |
| 
 | |
| function clusterJsonToDetailsTab() {	   
 | |
|     var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
 | |
|     if($midmenuItem1 == null) {
 | |
|         clusterClearDetailsTab();
 | |
|         return;
 | |
|     }
 | |
|     
 | |
|     var jsonObj = $midmenuItem1.data("jsonObj");    
 | |
|     if(jsonObj == null) {
 | |
|         clusterClearDetailsTab();
 | |
| 	    return;	
 | |
| 	}
 | |
|     
 | |
|     bindAddHostButton($midmenuItem1); 
 | |
|     bindAddPrimaryStorageButton($midmenuItem1);  
 | |
|         
 | |
|     $.ajax({
 | |
|         data: createURL("command=listClusters&id="+jsonObj.id),
 | |
|         dataType: "json",
 | |
|         async: false,
 | |
|         success: function(json) {            
 | |
|             var items = json.listclustersresponse.cluster;	           
 | |
| 			if(items != null && items.length > 0) {
 | |
|                 jsonObj = items[0];
 | |
|                 $midmenuItem1.data("jsonObj", jsonObj);                  
 | |
|             }
 | |
|         }
 | |
|     });     
 | |
|      
 | |
|     var $thisTab = $("#right_panel_content").find("#tab_content_details");   
 | |
|     $thisTab.find("#grid_header_title").text(fromdb(jsonObj.name));
 | |
|     $thisTab.find("#id").text(fromdb(jsonObj.id));
 | |
|     $thisTab.find("#name").text(fromdb(jsonObj.name));
 | |
|     $thisTab.find("#zonename").text(fromdb(jsonObj.zonename));        
 | |
|     $thisTab.find("#podname").text(fromdb(jsonObj.podname));    
 | |
|     $thisTab.find("#hypervisortype").text(fromdb(jsonObj.hypervisortype));
 | |
|     $thisTab.find("#clustertype").text(fromdb(jsonObj.clustertype));
 | |
|     $thisTab.find("#allocationstate").text(fromdb(jsonObj.allocationstate));
 | |
|     
 | |
|     //actions ***   
 | |
|     clusterBuildActionMenu(jsonObj);        
 | |
| }
 | |
| 
 | |
| function clusterBuildActionMenu(jsonObj) { 
 | |
| 	var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
 | |
| 	var $thisTab = $("#right_panel_content").find("#tab_content_details");   
 | |
| 	
 | |
|     var $actionLink = $thisTab.find("#action_link"); 
 | |
|     bindActionLink($actionLink);
 | |
|        
 | |
|     var $actionMenu = $actionLink.find("#action_menu");
 | |
|     $actionMenu.find("#action_list").empty();       
 | |
|     
 | |
|     if(jsonObj.allocationstate == "Disabled")
 | |
|         buildActionLinkForTab("label.action.enable.cluster", clusterActionMap, $actionMenu, $midmenuItem1, $thisTab); 
 | |
|     else if(jsonObj.allocationstate == "Enabled")  
 | |
|         buildActionLinkForTab("label.action.disable.cluster", clusterActionMap, $actionMenu, $midmenuItem1, $thisTab); 
 | |
|     
 | |
|     buildActionLinkForTab("label.action.delete.cluster", clusterActionMap, $actionMenu, $midmenuItem1, $thisTab);  	
 | |
| }
 | |
| 
 | |
| function clusterClearDetailsTab() {	   
 | |
|     var $thisTab = $("#right_panel_content").find("#tab_content_details");   
 | |
|     $thisTab.find("#grid_header_title").text("");
 | |
|     $thisTab.find("#id").text("");
 | |
|     $thisTab.find("#name").text("");
 | |
|     $thisTab.find("#zonename").text("");        
 | |
|     $thisTab.find("#podname").text("");     
 | |
|     $thisTab.find("#hypervisortype").text("");
 | |
|     $thisTab.find("#clustertype").text("");
 | |
|     
 | |
|     //actions ***   
 | |
|     var $actionMenu = $thisTab.find("#action_link #action_menu");
 | |
|     $actionMenu.find("#action_list").empty();   
 | |
| 	$actionMenu.find("#action_list").append($("#no_available_actions").clone().show());	       
 | |
| }
 | |
| 
 | |
| var clusterActionMap = {   		
 | |
| 	"label.action.enable.cluster": {  	              
 | |
| 	    isAsyncJob: false,      
 | |
| 	    dialogBeforeActionFn : doEnableCluster,   
 | |
| 	    inProcessText: "label.action.enable.cluster.processing",
 | |
| 	    afterActionSeccessFn: function(json, $midmenuItem1, id) {  	        
 | |
| 			var jsonObj = json.updateclusterresponse.cluster;
 | |
| 			$("#right_panel_content").find("#tab_content_details").find("#allocationstate").text(fromdb(jsonObj.allocationstate));
 | |
| 			clusterBuildActionMenu(jsonObj);			
 | |
| 	    }
 | |
| 	}	
 | |
| 	,
 | |
| 	"label.action.disable.cluster": {  	              
 | |
| 	    isAsyncJob: false,      
 | |
| 	    dialogBeforeActionFn : doDisableCluster,   
 | |
| 	    inProcessText: "label.action.disable.cluster.processing",
 | |
| 	    afterActionSeccessFn: function(json, $midmenuItem1, id) {  
 | |
| 			var jsonObj = json.updateclusterresponse.cluster;
 | |
| 			$("#right_panel_content").find("#tab_content_details").find("#allocationstate").text(fromdb(jsonObj.allocationstate));
 | |
| 			clusterBuildActionMenu(jsonObj);				
 | |
| 	    }
 | |
| 	}	
 | |
| 	,		
 | |
| 	"label.action.delete.cluster": {  
 | |
|         api: "deleteCluster",            
 | |
|         isAsyncJob: false,      
 | |
|         dialogBeforeActionFn : doDeleteCluster,   
 | |
|         inProcessText: "label.action.delete.cluster.processing",
 | |
|         afterActionSeccessFn: function(json, $midmenuItem1, id) {     
 | |
|             $midmenuItem1.slideUp("slow", function() {
 | |
|                 $(this).remove();                
 | |
|                 if(id.toString() == $("#right_panel_content").find("#tab_content_details").find("#id").text()) {
 | |
|                     clearRightPanel();
 | |
|                     clusterClearRightPanel();
 | |
|                 }                
 | |
|             });            
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 | |
| function doEnableCluster($actionLink, $detailsTab, $midmenuItem1) {       
 | |
|     var jsonObj = $midmenuItem1.data("jsonObj");
 | |
| 	var id = jsonObj.id;
 | |
| 		
 | |
| 	$("#dialog_confirmation")
 | |
| 	.text(dictionary["message.action.enable.cluster"])
 | |
| 	.dialog('option', 'buttons', { 					
 | |
| 		"Confirm": function() { 			
 | |
| 			$(this).dialog("close");			
 | |
| 			var apiCommand = "command=updateCluster&id="+id+"&allocationstate=Enabled";
 | |
|             doActionToTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);	
 | |
| 		}, 
 | |
| 		"Cancel": function() { 
 | |
| 			$(this).dialog("close"); 
 | |
| 		}
 | |
| 	}).dialog("open");
 | |
| }
 | |
| 
 | |
| function doDisableCluster($actionLink, $detailsTab, $midmenuItem1) {       
 | |
|     var jsonObj = $midmenuItem1.data("jsonObj");
 | |
| 	var id = jsonObj.id;
 | |
| 		
 | |
| 	$("#dialog_confirmation")
 | |
| 	.text(dictionary["message.action.disable.cluster"])
 | |
| 	.dialog('option', 'buttons', { 					
 | |
| 		"Confirm": function() { 			
 | |
| 			$(this).dialog("close");			
 | |
| 			var apiCommand = "command=updateCluster&id="+id+"&allocationstate=Disabled";
 | |
|             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;
 | |
| 		
 | |
| 	$("#dialog_confirmation")
 | |
| 	.text(dictionary["message.action.delete.cluster"])
 | |
| 	.dialog('option', 'buttons', { 					
 | |
| 		"Confirm": function() { 			
 | |
| 			$(this).dialog("close");			
 | |
| 			var apiCommand = "command=deleteCluster&id="+id;
 | |
|             doActionToTab(id, $actionLink, apiCommand, $midmenuItem1, $detailsTab);	
 | |
| 		}, 
 | |
| 		"Cancel": function() { 
 | |
| 			$(this).dialog("close"); 
 | |
| 		}
 | |
| 	}).dialog("open");
 | |
| } |