mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			336 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			336 lines
		
	
	
		
			14 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 afterLoadNetworkJSP($leftmenuItem1) {    
 | |
|     var zoneObj = $leftmenuItem1.data("jsonObj");    
 | |
|     if(zoneObj == null) 
 | |
| 	    return;	  
 | |
|     
 | |
|     showMiddleMenu();
 | |
|     disableMultipleSelectionInMidMenu();     
 | |
|     
 | |
|     //switch between different tabs - Public Network page
 | |
|     var $publicNetworkPage = $("#public_network_page");
 | |
|     var tabArray = [$publicNetworkPage.find("#tab_details"), $publicNetworkPage.find("#tab_ipallocation"), $publicNetworkPage.find("#tab_firewall"), $publicNetworkPage.find("#tab_loadbalancer")];
 | |
|     var tabContentArray = [$publicNetworkPage.find("#tab_content_details"), $publicNetworkPage.find("#tab_content_ipallocation"), $publicNetworkPage.find("#tab_content_firewall"), $publicNetworkPage.find("#tab_content_loadbalancer")];
 | |
|     var afterSwitchFnArray = [publicNetworkJsonToDetailsTab, publicNetworkJsonToIpAllocationTab, publicNetworkJsonToFirewallTab, publicNetworkJsonToLoadBalancerTab];
 | |
|     switchBetweenDifferentTabs(tabArray, tabContentArray, afterSwitchFnArray);  
 | |
|     
 | |
|     //switch between different tabs - Direct Network page
 | |
|     var $directNetworkPage = $("#direct_network_page");
 | |
|     var tabArray = [$directNetworkPage.find("#tab_details"), $directNetworkPage.find("#tab_ipallocation")];
 | |
|     var tabContentArray = [$directNetworkPage.find("#tab_content_details"), $directNetworkPage.find("#tab_content_ipallocation")];
 | |
|     var afterSwitchFnArray = [directNetworkJsonToDetailsTab, directNetworkJsonToIpAllocationTab];
 | |
|     switchBetweenDifferentTabs(tabArray, tabContentArray, afterSwitchFnArray);    
 | |
|          
 | |
|     //populate items into middle menu  
 | |
|     var $midmenuContainer = $("#midmenu_container").empty();   
 | |
|     
 | |
|     //public network  
 | |
|     if(zoneObj.networktype == "Advanced") {
 | |
|         $.ajax({
 | |
|             data: createURL("command=listNetworks&isSystem=true&zoneId="+zoneObj.id),
 | |
|             dataType: "json",
 | |
|             async: false,
 | |
|             success: function(json) {       
 | |
|                 var items = json.listnetworksresponse.network;       
 | |
|                 if(items != null && items.length > 0) {
 | |
|                     var item = items[0];
 | |
|                     var $midmenuItem1 = $("#midmenu_item").clone();                      
 | |
|                     $midmenuItem1.data("toRightPanelFn", publicNetworkToRightPanel);                             
 | |
|                     publicNetworkToMidmenu(item, $midmenuItem1);    
 | |
|                     bindClickToMidMenu($midmenuItem1, publicNetworkToRightPanel, publicNetworkGetMidmenuId);   
 | |
|                     $midmenuContainer.append($midmenuItem1.show());    
 | |
|                     $midmenuItem1.click();  
 | |
|                 }
 | |
|             }
 | |
|         });   
 | |
|     }
 | |
|     
 | |
|     //direct network
 | |
|     $.ajax({
 | |
| 		data: createURL("command=listNetworks&type=Direct&zoneId="+zoneObj.id),
 | |
| 		dataType: "json",
 | |
| 		success: function(json) {		    
 | |
| 			var items = json.listnetworksresponse.network;		
 | |
| 			if (items != null && items.length > 0) {					    
 | |
| 				for (var i = 0; i < items.length; i++) {					
 | |
| 					var $midmenuItem1 = $("#midmenu_item").clone();                      
 | |
|                     $midmenuItem1.data("toRightPanelFn", directNetworkToRightPanel);                             
 | |
|                     directNetworkToMidmenu(items[i], $midmenuItem1);    
 | |
|                     bindClickToMidMenu($midmenuItem1, directNetworkToRightPanel, directNetworkGetMidmenuId);   
 | |
|                     $midmenuContainer.append($midmenuItem1.show());  
 | |
| 				}
 | |
| 			}	
 | |
| 		}
 | |
| 	});    
 | |
| }
 | |
| 
 | |
| //***** Public Network (begin) ******************************************************************************************************
 | |
| function publicNetworkGetMidmenuId(jsonObj) {    
 | |
|     return "midmenuItem_publicnetework_" + jsonObj.id;
 | |
| }
 | |
| 
 | |
| function publicNetworkToMidmenu(jsonObj, $midmenuItem1) {  
 | |
|     $midmenuItem1.attr("id", publicNetworkGetMidmenuId(jsonObj)); 
 | |
|     $midmenuItem1.data("jsonObj", jsonObj); 
 | |
|     
 | |
|     /*
 | |
|     var $iconContainer = $midmenuItem1.find("#icon_container").show();   
 | |
|     $iconContainer.find("#icon").attr("src", "images/midmenuicon_storage_snapshots.png");		
 | |
|     */
 | |
|          
 | |
|     $midmenuItem1.find("#first_row").text("Public Network"); 
 | |
|     $midmenuItem1.find("#second_row").text("Network ID: " + fromdb(jsonObj.id));   
 | |
| }
 | |
| 
 | |
| function publicNetworkToRightPanel($midmenuItem1) {      
 | |
|     copyActionInfoFromMidMenuToRightPanel($midmenuItem1);  
 | |
|     $("#right_panel_content").data("$midmenuItem1", $midmenuItem1);  
 | |
|             
 | |
|     $("#public_network_page").show();
 | |
|     $("#direct_network_page").hide();
 | |
|     
 | |
|     $("#public_network_page").find("#tab_details").click();     
 | |
| }
 | |
| 	
 | |
| function publicNetworkJsonToDetailsTab() {	 
 | |
|     var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
 | |
|     if($midmenuItem1 == null)
 | |
|         return;
 | |
|     
 | |
|     var jsonObj = $midmenuItem1.data("jsonObj");    
 | |
|     if(jsonObj == null) 
 | |
| 	    return;	  
 | |
| 	
 | |
| 	var $thisTab = $("#right_panel_content #public_network_page #tab_content_details");      
 | |
|     $thisTab.find("#tab_container").hide(); 
 | |
|     $thisTab.find("#tab_spinning_wheel").show();   
 | |
| 	
 | |
| 	$thisTab.find("#grid_header_title").text(fromdb(jsonObj.networkofferingdisplaytext));	
 | |
| 		
 | |
| 	$thisTab.find("#id").text(fromdb(jsonObj.id));		
 | |
| 	$thisTab.find("#state").text(fromdb(jsonObj.state));		
 | |
| 	$thisTab.find("#traffictype").text(fromdb(jsonObj.traffictype));	
 | |
| 	$thisTab.find("#broadcastdomaintype").text(fromdb(jsonObj.broadcastdomaintype));	
 | |
| 	setBooleanReadField(jsonObj.isshared, $thisTab.find("#isshared"));
 | |
| 	setBooleanReadField(jsonObj.issystem, $thisTab.find("#issystem"));
 | |
| 	$thisTab.find("#networkofferingname").text(fromdb(jsonObj.networkofferingname));	
 | |
| 	$thisTab.find("#networkofferingdisplaytext").text(fromdb(jsonObj.networkofferingdisplaytext));	
 | |
| 	$thisTab.find("#networkofferingid").text(fromdb(jsonObj.networkofferingid));	
 | |
| 	$thisTab.find("#related").text(fromdb(jsonObj.related));	
 | |
| 	$thisTab.find("#zoneid").text(fromdb(jsonObj.zoneid));	
 | |
| 	$thisTab.find("#dns1").text(fromdb(jsonObj.dns1));	
 | |
| 	$thisTab.find("#dns2").text(fromdb(jsonObj.dns2));	
 | |
| 	$thisTab.find("#domainid").text(fromdb(jsonObj.domainid));	
 | |
| 	$thisTab.find("#account").text(fromdb(jsonObj.account));	
 | |
| 			        
 | |
|     $thisTab.find("#tab_container").show(); 
 | |
|     $thisTab.find("#tab_spinning_wheel").hide();   
 | |
| }
 | |
| 
 | |
| function publicNetworkJsonToIpAllocationTab() {  
 | |
|     var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
 | |
|     if($midmenuItem1 == null)
 | |
|         return;
 | |
|     
 | |
|     var jsonObj = $midmenuItem1.data("jsonObj");    
 | |
|     if(jsonObj == null) 
 | |
| 	    return;	  
 | |
| 	    
 | |
| 	var $thisTab = $("#right_panel_content #public_network_page #tab_content_ipallocation");      
 | |
|     $thisTab.find("#tab_container").hide(); 
 | |
|     $thisTab.find("#tab_spinning_wheel").show();   
 | |
|          
 | |
|     $.ajax({
 | |
| 		data: createURL("command=listVlanIpRanges&zoneid="+ jsonObj.zoneid), //don't need networkid because one zone has only one public network
 | |
| 		dataType: "json",		
 | |
| 		success: function(json) {		    
 | |
| 		    var items = json.listvlaniprangesresponse.vlaniprange;		    
 | |
| 		    var $container = $thisTab.find("#tab_container").empty();
 | |
| 		    var $template = $("#directnetwork_iprange_template");
 | |
| 		    if(items != null && items.length > 0) {		        
 | |
| 		        for(var i=0; i<items.length; i++) {
 | |
| 		            var $newTemplate = $template.clone();
 | |
| 		            publicNetworkIprangeJsonToTemplate(items[i], $newTemplate);
 | |
| 		            $container.append($newTemplate.show());
 | |
| 		        }
 | |
| 		    }		    
 | |
| 		    $thisTab.find("#tab_container").show(); 
 | |
|             $thisTab.find("#tab_spinning_wheel").hide();    
 | |
| 		}
 | |
|     });  
 | |
| }
 | |
| 
 | |
| function publicNetworkIprangeJsonToTemplate(jsonObj, $template) {    
 | |
|     $template.attr("id", "publicNetworkIprange_" + jsonObj.id);
 | |
|     
 | |
|     var ipRange = getIpRange(fromdb(jsonObj.startip), fromdb(jsonObj.endip));
 | |
|     $template.find("#grid_header_title").text(ipRange);
 | |
|     
 | |
|     $template.find("#vlan").text(jsonObj.vlan)
 | |
|     $template.find("#startip").text(fromdb(jsonObj.startip));
 | |
|     $template.find("#endip").text(fromdb(jsonObj.endip));
 | |
| }
 | |
| 
 | |
| function publicNetworkJsonToFirewallTab() {  
 | |
|     var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
 | |
|     if($midmenuItem1 == null)
 | |
|         return;
 | |
|     
 | |
|     var jsonObj = $midmenuItem1.data("jsonObj");    
 | |
|     if(jsonObj == null) 
 | |
| 	    return;	  
 | |
| 	    
 | |
| 	var $thisTab = $("#right_panel_content #public_network_page #tab_content_firewall");      
 | |
|     $thisTab.find("#tab_container").hide(); 
 | |
|     $thisTab.find("#tab_spinning_wheel").show();   
 | |
|     
 | |
|          
 | |
|      
 | |
|     $thisTab.find("#tab_container").show(); 
 | |
|     $thisTab.find("#tab_spinning_wheel").hide();   
 | |
| }
 | |
| 
 | |
| function publicNetworkJsonToLoadBalancerTab() {  
 | |
|     var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
 | |
|     if($midmenuItem1 == null)
 | |
|         return;
 | |
|     
 | |
|     var jsonObj = $midmenuItem1.data("jsonObj");    
 | |
|     if(jsonObj == null) 
 | |
| 	    return;	  
 | |
| 	    
 | |
| 	var $thisTab = $("#right_panel_content #public_network_page #tab_content_loadbalancer");      
 | |
|     $thisTab.find("#tab_container").hide(); 
 | |
|     $thisTab.find("#tab_spinning_wheel").show();   
 | |
|     
 | |
|          
 | |
|      
 | |
|     $thisTab.find("#tab_container").show(); 
 | |
|     $thisTab.find("#tab_spinning_wheel").hide();   
 | |
| }
 | |
| //***** Public Network (end) ******************************************************************************************************
 | |
| 
 | |
| 
 | |
| //***** Direct Network (begin) ******************************************************************************************************
 | |
| function directNetworkGetMidmenuId(jsonObj) {
 | |
|     return "midmenuItem_directnetework_" + jsonObj.id;
 | |
| }
 | |
| 
 | |
| function directNetworkToMidmenu(jsonObj, $midmenuItem1) {  
 | |
|     $midmenuItem1.attr("id", directNetworkGetMidmenuId(jsonObj)); 
 | |
|     $midmenuItem1.data("jsonObj", jsonObj); 
 | |
|     
 | |
|     /*
 | |
|     var $iconContainer = $midmenuItem1.find("#icon_container").show();   
 | |
|     $iconContainer.find("#icon").attr("src", "images/midmenuicon_storage_snapshots.png");		
 | |
|     */
 | |
|          
 | |
|     $midmenuItem1.find("#first_row").text(fromdb(jsonObj.name).substring(0,25)); 
 | |
|     $midmenuItem1.find("#second_row").text("VLAN ID: " + fromdb(jsonObj.vlan));   
 | |
| }
 | |
| 
 | |
| function directNetworkToRightPanel($midmenuItem1) {    
 | |
|     copyActionInfoFromMidMenuToRightPanel($midmenuItem1);  
 | |
|     $("#right_panel_content").data("$midmenuItem1", $midmenuItem1);  
 | |
|             
 | |
|     $("#direct_network_page").show();
 | |
|     $("#public_network_page").hide();
 | |
|     
 | |
|     $("#direct_network_page").find("#tab_details").click();     
 | |
| }
 | |
| 	
 | |
| function directNetworkJsonToDetailsTab() {	    
 | |
|     var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
 | |
|     if($midmenuItem1 == null)
 | |
|         return;
 | |
|     
 | |
|     var jsonObj = $midmenuItem1.data("jsonObj");    
 | |
|     if(jsonObj == null) 
 | |
| 	    return;	  
 | |
| 	
 | |
| 	var $thisTab = $("#right_panel_content #direct_network_page #tab_content_details");      
 | |
|     $thisTab.find("#tab_container").hide(); 
 | |
|     $thisTab.find("#tab_spinning_wheel").show();   
 | |
| 		
 | |
| 	$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("#displaytext").text(fromdb(jsonObj.displaytext));
 | |
| 	  	
 | |
|     $thisTab.find("#vlan").text(fromdb(jsonObj.vlan));
 | |
|     $thisTab.find("#gateway").text(fromdb(jsonObj.gateway));
 | |
|     $thisTab.find("#netmask").text(fromdb(jsonObj.netmask));
 | |
|     var ipRange = getIpRange(fromdb(jsonObj.startip), fromdb(jsonObj.endip));
 | |
|     $thisTab.find("#iprange").text(ipRange);        
 | |
|     
 | |
|     $thisTab.find("#domain").text(fromdb(jsonObj.domain));      //might be null
 | |
|     $thisTab.find("#account").text(fromdb(jsonObj.account));    //might be null
 | |
|         
 | |
|     $thisTab.find("#tab_container").show(); 
 | |
|     $thisTab.find("#tab_spinning_wheel").hide();   
 | |
| }
 | |
| 
 | |
| function directNetworkJsonToIpAllocationTab() {	    
 | |
|     var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
 | |
|     if($midmenuItem1 == null)
 | |
|         return;
 | |
|     
 | |
|     var jsonObj = $midmenuItem1.data("jsonObj");    
 | |
|     if(jsonObj == null) 
 | |
| 	    return;	  
 | |
| 	    
 | |
| 	var $thisTab = $("#right_panel_content #direct_network_page #tab_content_ipallocation");      
 | |
|     $thisTab.find("#tab_container").hide(); 
 | |
|     $thisTab.find("#tab_spinning_wheel").show();   
 | |
|          
 | |
|     $.ajax({
 | |
| 		data: createURL("command=listVlanIpRanges&zoneid="+ jsonObj.zoneid + "&networkid="+jsonObj.id),
 | |
| 		dataType: "json",		
 | |
| 		success: function(json) {
 | |
| 		    var items = json.listvlaniprangesresponse.vlaniprange;		    
 | |
| 		    var $container = $thisTab.find("#tab_container").empty();
 | |
| 		    var $template = $("#directnetwork_iprange_template");
 | |
| 		    if(items != null && items.length > 0) {		        
 | |
| 		        for(var i=0; i<items.length; i++) {
 | |
| 		            var $newTemplate = $template.clone();
 | |
| 		            directNetworkIprangeJsonToTemplate(items[i], $newTemplate);
 | |
| 		            $container.append($newTemplate.show());
 | |
| 		        }
 | |
| 		    }		    
 | |
| 		    $thisTab.find("#tab_container").show(); 
 | |
|             $thisTab.find("#tab_spinning_wheel").hide();    
 | |
| 		}
 | |
|     });  
 | |
| }
 | |
| 
 | |
| function directNetworkIprangeJsonToTemplate(jsonObj, $template) {    
 | |
|     $template.attr("id", "directNetworkIprange_" + jsonObj.id);
 | |
|     
 | |
|     var ipRange = getIpRange(fromdb(jsonObj.startip), fromdb(jsonObj.endip));
 | |
|     $template.find("#grid_header_title").text(ipRange);
 | |
|     
 | |
|     $template.find("#vlan").text(jsonObj.vlan)
 | |
|     $template.find("#startip").text(fromdb(jsonObj.startip));
 | |
|     $template.find("#endip").text(fromdb(jsonObj.endip));
 | |
| }
 | |
| //***** Direct Network (end) ******************************************************************************************************
 | |
| 
 |