mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			284 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			284 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/>.
 | |
|  * 
 | |
|  */
 | |
| 
 | |
| // Version: @VERSION@
 | |
| 
 | |
| function showEventsTab(showEvents) {
 | |
|     var currentSubMenu = $("#submenu_events");
 | |
|     
 | |
|     var initializeEventTab = function(isAdmin) {   
 | |
|         initResizable("event_initiated_by_header", "event_initiated_by_row");	    
 | |
| 	    initResizable("event_account_header", "event_account_row");	  
 | |
| 	    initResizable("event_type_header", "event_type_row");	   
 | |
| 	    initResizable("event_level_header", "event_level_row");	  
 | |
|         initResizable("event_description_header", "event_description_row");       
 | |
| 	    initResizable("event_state_header", "event_state_row");	    
 | |
| 	    initResizable("event_date_header", "event_date_row");	 
 | |
|     
 | |
|         var eIndex = 0;		        
 | |
|         function eventJSONToTemplate(json, template) {           
 | |
|             if (eIndex++ % 2 == 0) {
 | |
| 			    template.addClass("smallrow_odd");
 | |
| 		    } else {
 | |
| 			    template.addClass("smallrow_even");
 | |
| 		    }	  
 | |
| 		    template.find("#event_username").text(json.username);
 | |
| 		    template.find("#event_account").text(json.account);
 | |
| 		    template.find("#event_type").text(json.type);
 | |
| 		    template.find("#event_level").text(json.level);
 | |
| 		    template.find("#event_desc").text(json.description);  
 | |
| 		    template.find("#event_state").text(json.state);  
 | |
| 		    
 | |
| 		    setDateField(json.created, template.find("#event_date"));		   			    
 | |
|         }
 | |
|                
 | |
| 	    $("#submenu_content_events .grid_container .grid_header .grid_genheader_cell").bind("click", function(event) {  	
 | |
| 	        var headerColumn = $(this);  
 | |
| 	        var sortingIcon = headerColumn.find(".gridsorting_arrow");
 | |
|            
 | |
| 			if (sortingIcon.hasClass("up") == false) {  //If it's not in ascending order, sort it ascending. 				   
 | |
| 			    $("#submenu_content_events .grid_container .grid_header .grid_genheader_cell .gridsorting_arrow").removeClass("down up"); //remove arrow from all header columns first     
 | |
|                 sortingIcon.addClass("up");  //add up arrow to this specific header column  
 | |
|                 sortingOrder = "asc";                
 | |
|             }
 | |
|             else if (sortingIcon.hasClass("up") == true) { //If it's in ascending order, sort it descending.               
 | |
| 			    $("#submenu_content_events .grid_container .grid_header .grid_genheader_cell .gridsorting_arrow").removeClass("down up"); //remove arrow from all header columns first	    
 | |
|                 sortingIcon.addClass("down");  //add down arrow to this specific header column    
 | |
|                 sortingOrder = "desc";                
 | |
|             }           
 | |
| 	        	        
 | |
|             switch(headerColumn[0].id) {
 | |
|                 case "event_initiated_by_header":  
 | |
|                     sortBy = "username";               
 | |
|                     items.sort(sortArrayAlphabetically);         
 | |
|                     break; 
 | |
|                 case "event_account_header":  
 | |
|                     sortBy = "account";               
 | |
|                     items.sort(sortArrayAlphabetically);         
 | |
|                     break; 
 | |
|                 case "event_type_header":  
 | |
|                     sortBy = "type";               
 | |
|                     items.sort(sortArrayAlphabetically);         
 | |
|                     break;  
 | |
|                 case "event_level_header":  
 | |
|                     sortBy = "level";               
 | |
|                     items.sort(sortArrayAlphabetically);         
 | |
|                     break;  
 | |
|                 case "event_description_header":  
 | |
|                     sortBy = "description";               
 | |
|                     items.sort(sortArrayAlphabetically);         
 | |
|                     break; 
 | |
|                 case "event_state_header":  
 | |
|                     sortBy = "state";               
 | |
|                     items.sort(sortArrayAlphabetically);         
 | |
|                     break; 
 | |
|                 case "event_date_header":  
 | |
|                     sortBy = "created";               
 | |
|                     items.sort(sortArrayByDate);         
 | |
|                     break;  
 | |
|             }
 | |
|            
 | |
|             drawGrid(items, $("#submenu_content_events"), $("#event_template"), eventJSONToTemplate);       
 | |
|             return false;
 | |
|         });             
 | |
|       
 | |
|         function listEvents() {      
 | |
|             var submenuContent = $("#submenu_content_events");  
 | |
|             
 | |
|             var commandString;            
 | |
| 			var advanced = submenuContent.find("#search_button").data("advanced");                    
 | |
| 			if (advanced != null && advanced) {		
 | |
| 			    var type = submenuContent.find("#advanced_search #adv_search_type").val();	
 | |
| 			    var level = submenuContent.find("#advanced_search #adv_search_level").val();
 | |
| 			    var domainId = submenuContent.find("#advanced_search #adv_search_domain").val();	
 | |
| 			    var account = submenuContent.find("#advanced_search #adv_search_account").val();
 | |
| 			    var startdate = submenuContent.find("#advanced_search #adv_search_startdate").val();	
 | |
| 			    var enddate = submenuContent.find("#advanced_search #adv_search_enddate").val();	
 | |
| 			    var moreCriteria = [];								
 | |
| 				if (type!=null && trim(type).length > 0) 
 | |
| 					moreCriteria.push("&type="+encodeURIComponent(trim(type)));		
 | |
| 			    if (level!=null && level.length > 0) 
 | |
| 					moreCriteria.push("&level="+encodeURIComponent(trim(level)));	
 | |
| 				if (domainId!=null && domainId.length > 0) 
 | |
| 					moreCriteria.push("&domainid="+domainId);					
 | |
| 				if (account!=null && account.length > 0) 
 | |
| 					moreCriteria.push("&account="+account);					
 | |
| 				if (startdate!=null && startdate.length > 0) 
 | |
| 					moreCriteria.push("&startdate="+encodeURIComponent(startdate));		
 | |
| 				if (enddate!=null && enddate.length > 0) 
 | |
| 					moreCriteria.push("&enddate="+encodeURIComponent(enddate));		
 | |
| 				commandString = "command=listEvents&page="+currentPage+moreCriteria.join("")+"&response=json";   
 | |
| 			} else {          	 
 | |
|                 var searchInput = submenuContent.find("#search_input").val();            
 | |
|                 if (searchInput != null && searchInput.length > 0) 
 | |
|                     commandString = "command=listEvents&page="+currentPage+"&keyword="+searchInput+"&response=json"
 | |
|                 else
 | |
|                     commandString = "command=listEvents&page="+currentPage+"&response=json";	
 | |
|             } 
 | |
|             
 | |
|             //listItems(submenuContent, commandString, jsonResponse1, jsonResponse2, template, fnJSONToTemplate);         
 | |
|             listItems(submenuContent, commandString, "listeventsresponse", "event", $("#event_template"), eventJSONToTemplate);    
 | |
| 		}	
 | |
| 	    
 | |
| 	    submenuContentEventBinder($("#submenu_content_events"), listEvents);
 | |
| 	    	    
 | |
| 	    if(isAdmin) {	        
 | |
| 	        $("#submenu_events").bind("click", function(event) {
 | |
| 	            event.preventDefault();
 | |
| 	            
 | |
| 				$(this).removeClass().addClass("submenu_links_on");
 | |
| 				currentSubMenu.removeClass().toggleClass("submenu_links_off");
 | |
| 			    currentSubMenu = $(this);
 | |
| 			    
 | |
| 				var submenuContent = $("#submenu_content_events").show();
 | |
| 				$("#submenu_content_alerts").hide();				
 | |
| 				
 | |
| 				submenuContent.find("#adv_search_domain_li, #adv_search_account_li").show();  
 | |
| 					
 | |
| 				currentPage = 1;			
 | |
| 				listEvents();    
 | |
| 	        });	   
 | |
| 	         
 | |
| 	        $(".submenu_links, #submenu_content_alerts, #alert_template").show(); 
 | |
| 	        $("#event_account_header, #event_account_container").show();	 	
 | |
| 	                    
 | |
| 	        if (showEvents == null || showEvents) {
 | |
| 				currentSubMenu = $("#submenu_alerts");
 | |
| 				$("#submenu_events").click();  //Default tab is Events when login as admin	  
 | |
| 			} else {
 | |
| 				currentSubMenu = $("#submenu_events");
 | |
| 				$("#submenu_alerts").click();
 | |
| 			}
 | |
| 	    }
 | |
| 	    else {
 | |
| 	        $(".submenu_links, #submenu_content_alerts, #alert_template").hide();
 | |
| 	        $("#event_account_header, #event_account_container").hide();	 
 | |
| 			$("#submenu_content_events").show();
 | |
| 	        listEvents();    
 | |
| 	    }   
 | |
|     }
 | |
|     
 | |
| 
 | |
| 	// Manage Events 
 | |
| 	var advancedSearch = $("#advanced_search");
 | |
| 	advancedSearch.find("#adv_search_startdate, #adv_search_enddate").datepicker({dateFormat: 'yy-mm-dd'});
 | |
| 		
 | |
|     if (isAdmin()) {				
 | |
| 		// *** Alerts (begin) ***
 | |
| 		var alertIndex = 0;
 | |
| 		function alertJSONToTemplate(json, template) {           
 | |
|             if (alertIndex++ % 2 == 0) {
 | |
| 		        template.addClass("smallrow_odd");
 | |
| 	        } else {
 | |
| 		        template.addClass("smallrow_even");
 | |
| 	        }		    
 | |
| 		   		    
 | |
| 	        template.find("#alert_type").text((toAlertType(json.type)));
 | |
| 		    template.find("#alert_desc").text(json.description);
 | |
| 			
 | |
| 			setDateField(json.sent, template.find("#alert_sent"));			    					    
 | |
|         }
 | |
| 					
 | |
| 		$("#submenu_content_alerts .grid_container .grid_header .grid_genheader_cell").bind("click", function(event) {  	
 | |
|             var headerColumn = $(this);  
 | |
|             var sortingIcon = headerColumn.find(".gridsorting_arrow");
 | |
|            
 | |
| 		    if (sortingIcon.hasClass("up") == false) {  //If it's not in ascending order, sort it ascending. 				   
 | |
| 		        $("#submenu_content_alerts .grid_container .grid_header .grid_genheader_cell .gridsorting_arrow").removeClass("down up"); //remove arrow from all header columns first     
 | |
|                 sortingIcon.addClass("up");  //add up arrow to this specific header column  
 | |
|                 sortingOrder = "asc";                
 | |
|             }
 | |
|             else if (sortingIcon.hasClass("up") == true) { //If it's in ascending order, sort it descending.               
 | |
| 		        $("#submenu_content_alerts .grid_container .grid_header .grid_genheader_cell .gridsorting_arrow").removeClass("down up"); //remove arrow from all header columns first	    
 | |
|                 sortingIcon.addClass("down");  //add down arrow to this specific header column    
 | |
|                 sortingOrder = "desc";                
 | |
|             }           
 | |
| 	        	        
 | |
|             switch(headerColumn[0].id) {               
 | |
|                 case "alert_type_header":  
 | |
|                     sortBy = "type";          
 | |
|                     parseFunction = toAlertType;   
 | |
|                     items.sort(sortArrayAlphabeticallyParse);         
 | |
|                     break;  
 | |
|                 case "alert_description_header":  
 | |
|                     sortBy = "description";               
 | |
|                     items.sort(sortArrayAlphabetically);         
 | |
|                     break; 
 | |
|                 case "alert_date_header":  
 | |
|                     sortBy = "sent";               
 | |
|                     items.sort(sortArrayAlphabetically);         
 | |
|                     break;                 
 | |
|             }
 | |
|            
 | |
|             drawGrid(items, $("#submenu_content_alerts"), $("#alert_template"), alertJSONToTemplate);       
 | |
|             return false;
 | |
|         });    			
 | |
| 		
 | |
| 		function listAlerts() {		
 | |
| 		    var submenuContent = $("#submenu_content_alerts");
 | |
|         	   
 | |
|         	var commandString;            
 | |
| 		    var advanced = submenuContent.find("#search_button").data("advanced");                    
 | |
| 		    if (advanced != null && advanced) {		
 | |
| 		        var type = submenuContent.find("#advanced_search #adv_search_type").val();				       
 | |
| 		        var moreCriteria = [];								
 | |
| 			    if (type!=null && trim(type).length > 0) 
 | |
| 				    moreCriteria.push("&type="+encodeURIComponent(trim(type)));			   
 | |
| 			    commandString = "command=listAlerts&page="+currentPage+moreCriteria.join("")+"&response=json";     
 | |
| 		    } else {            
 | |
|         	    var searchInput = submenuContent.find("#search_input").val();            
 | |
|                 if (searchInput != null && searchInput.length > 0) 
 | |
|                     commandString = "command=listAlerts&page="+currentPage+"&keyword="+searchInput+"&response=json"
 | |
|                 else
 | |
|                     commandString = "command=listAlerts&page="+currentPage+"&response=json";    
 | |
|             }
 | |
|         	
 | |
|         	//listItems(submenuContent, commandString, jsonResponse1, jsonResponse2, template, fnJSONToTemplate);         
 | |
|             listItems(submenuContent, commandString, "listalertsresponse", "alert", $("#alert_template"), alertJSONToTemplate);              	
 | |
| 		}			
 | |
| 		
 | |
| 		submenuContentEventBinder($("#submenu_content_alerts"), listAlerts);
 | |
| 			
 | |
| 		$("#submenu_alerts").bind("click", function(event) {
 | |
| 		    event.preventDefault();         			   			
 | |
| 			
 | |
| 			$(this).removeClass().addClass("submenu_links_on");
 | |
| 			currentSubMenu.removeClass().toggleClass("submenu_links_off");
 | |
| 			currentSubMenu = $(this);
 | |
| 			
 | |
| 			var submenuContent = $("#submenu_content_alerts").show();
 | |
| 			$("#submenu_content_events").hide();
 | |
| 			
 | |
| 			currentPage = 1;
 | |
| 			listAlerts();
 | |
| 		});					
 | |
| 		// *** Alerts (end) ***
 | |
| 		
 | |
| 		// *** Events (begin) ***
 | |
| 		initializeEventTab(true);	
 | |
| 		// *** Events (end) ***
 | |
| 		
 | |
| 	
 | |
|     } else {
 | |
| 	   
 | |
|         // *** Events (begin) ***	    
 | |
|         initializeEventTab(false);	
 | |
|         // *** Events (end) ***	    
 | |
| 	    
 | |
|     }    
 | |
| } |