mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	Clear right panel when deploying VM fails
This commit is contained in:
		
							parent
							
								
									7e3432ac52
								
							
						
					
					
						commit
						51362d8479
					
				| @ -12,13 +12,13 @@ | ||||
| %> | ||||
| 
 | ||||
| <!-- VM detail panel (begin) --> | ||||
| <div class="main_title" id="right_panel_header" style="display: none"> | ||||
| <div class="main_title" id="right_panel_header"> | ||||
|     <div class="main_titleicon"> | ||||
|         <img src="images/instancetitle_icons.gif" alt="Instance" /></div> | ||||
|     <h1 id="vm_name"> | ||||
|     </h1> | ||||
| </div> | ||||
| <div class="contentbox" id="right_panel_content" style="display: none"> | ||||
| <div class="contentbox" id="right_panel_content"> | ||||
|     <div class="info_detailbox errorbox" id="after_action_info_container" style="display:none"> | ||||
|         <p id="after_action_info"></p> | ||||
|     </div> | ||||
| @ -51,7 +51,7 @@ | ||||
|             </div> | ||||
|             <div class="grid_row_cell" style="width: 79%;"> | ||||
|                 <div class="row_celltitles" id="zoneName"> | ||||
|                     (zone name)</div> | ||||
|                     </div> | ||||
|             </div> | ||||
|         </div> | ||||
|         <div class="grid_rows odd"> | ||||
| @ -81,7 +81,7 @@ | ||||
|             </div> | ||||
|             <div class="grid_row_cell" style="width: 79%;"> | ||||
|                 <div class="row_celltitles"> | ||||
|                     <div class="cross_icon" id="ha"> | ||||
|                     <div class="cross_icon" id="ha" style="display:none"> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
| @ -133,7 +133,7 @@ | ||||
|             </div> | ||||
|             <div class="grid_row_cell" style="width: 79%;"> | ||||
|                 <div class="row_celltitles"> | ||||
|                     <div class="cross_icon" id="iso"> | ||||
|                     <div class="cross_icon" id="iso" style="display:none"> | ||||
|                     </div> | ||||
|                 </div> | ||||
|             </div> | ||||
|  | ||||
| @ -1,5 +1,6 @@ | ||||
| function clickInstanceGroupHeader($arrowIcon) {    | ||||
|     //***** VM Detail (begin) ******************************************************************************
 | ||||
|     var $vmPopup | ||||
|     var $rightPanelHeader;   | ||||
|     var $rightPanelContent;    | ||||
|     var $instanceGroupContainer = $("#leftmenu_instance_group_container");   | ||||
| @ -20,14 +21,12 @@ function clickInstanceGroupHeader($arrowIcon) { | ||||
|         stopVirtualMachine: { | ||||
|             label: "Stop",      | ||||
|             isAsyncJob: true, | ||||
|             asyncJobResponse: "stopvirtualmachineresponse", | ||||
|             afterSuccessFn: updateVirtualMachineState | ||||
|             asyncJobResponse: "stopvirtualmachineresponse" | ||||
|         }, | ||||
|         startVirtualMachine: { | ||||
|             label: "Start",      | ||||
|             isAsyncJob: true, | ||||
|             asyncJobResponse: "startvirtualmachineresponse", | ||||
|             afterSuccessFn: updateVirtualMachineState | ||||
|             asyncJobResponse: "startvirtualmachineresponse" | ||||
|         }         | ||||
|     }             | ||||
|     | ||||
| @ -39,6 +38,7 @@ function clickInstanceGroupHeader($arrowIcon) { | ||||
|         else  //Destroyed, Creating, ~                                  
 | ||||
|             $rightPanelContent.find("#state").text(state).removeClass("green red").addClass("gray");            			        | ||||
|     } | ||||
|      | ||||
|     function updateVirtualMachineStateInMidMenu(state, midmenuItem) {          | ||||
|         if(state == "Running") | ||||
|             midmenuItem.find("#status_icon").attr("src", "images/status_green.png"); | ||||
| @ -47,40 +47,56 @@ function clickInstanceGroupHeader($arrowIcon) { | ||||
|         else  //Destroyed, Creating, ~                                  
 | ||||
|             midmenuItem.find("#status_icon").attr("src", "images/status_gray.png"); | ||||
|     } | ||||
|     function updateVirtualMachineState(state, midmenuItem) { | ||||
|         updateVirtualMachineStateInRightPanel(state); | ||||
|         updateVirtualMachineStateInMidMenu(state, midmenuItem);   | ||||
|     } | ||||
|          | ||||
| 
 | ||||
|        | ||||
|     function setMidmenuItemVm(instance, $midmenuItemVm1) {   | ||||
|         $midmenuItemVm1.attr("id", ("midmenuItemVm_"+instance.id));                              | ||||
|         $midmenuItemVm1.data("id", instance.id); | ||||
|          | ||||
|         var vmName = getVmName(instance.name, instance.displayname); | ||||
|          | ||||
|         $midmenuItemVm1.data("jsonObj", instance); | ||||
|         /* | ||||
|          | ||||
|         $midmenuItemVm1.data("vmName", vmName); | ||||
|         $midmenuItemVm1.data("ipAddress", sanitizeXSS(instance.ipaddress)); | ||||
|         $midmenuItemVm1.data("zoneName", sanitizeXSS(instance.zonename)); | ||||
|         $midmenuItemVm1.data("templateName", sanitizeXSS(instance.templatename)); | ||||
|         $midmenuItemVm1.data("serviceOfferingName", sanitizeXSS(instance.serviceofferingname)); | ||||
|         $midmenuItemVm1.data("haEnable", instance.haenable); | ||||
|         $midmenuItemVm1.data("created", instance.created); | ||||
|         $midmenuItemVm1.data("account", sanitizeXSS(instance.account)); | ||||
|         $midmenuItemVm1.data("domain", sanitizeXSS(instance.domain)); | ||||
|         $midmenuItemVm1.data("hostName", sanitizeXSS(instance.hostname)); | ||||
|         $midmenuItemVm1.data("group", sanitizeXSS(instance.group)); | ||||
|         $midmenuItemVm1.data("state", instance.state); | ||||
|         $midmenuItemVm1.data("isoId", instance.isoid); | ||||
|         */ | ||||
|             | ||||
|         $midmenuItemVm1.attr("id", ("midmenuItemVm_"+instance.id));                              | ||||
|         $midmenuItemVm1.data("id", instance.id);         | ||||
|         var vmName = getVmName(instance.name, instance.displayname); | ||||
|         $midmenuItemVm1.find("#vm_name").text(vmName); | ||||
|         $midmenuItemVm1.find("#ip_address").text(instance.ipaddress);   | ||||
|                                                                                                                    | ||||
|         updateVirtualMachineStateInMidMenu(instance.state, $midmenuItemVm1); | ||||
|         $midmenuItemVm1.find("#ip_address").text(instance.ipaddress);                                             | ||||
|         updateVirtualMachineStateInMidMenu(instance.state, $midmenuItemVm1);         | ||||
|         $midmenuItemVm1.bind("click", function(event) {   | ||||
|             var $t = $(this);                                        | ||||
|             var id = $t.data("id");                                      | ||||
|              | ||||
|             $t.find("#content").addClass("selected");    | ||||
|             if(!(id in selectedItemIds)) | ||||
|                 selectedItemIds[id] = null;                                                                                                                              | ||||
|                                   | ||||
|             if($t.find("#info_icon").css("display") != "none") {                 | ||||
|                 $rightPanelContent.find("#after_action_info").text($t.data("afterActionInfo")); | ||||
|                 if($t.find("#info_icon").hasClass("error")) | ||||
|                     $rightPanelContent.find("#after_action_info_container").addClass("errorbox"); | ||||
|                  else | ||||
|                     $rightPanelContent.find("#after_action_info_container").removeClass("errorbox");                                         | ||||
|                 $rightPanelContent.find("#after_action_info_container").show();                                          | ||||
|             }  | ||||
|             else { | ||||
|                 $rightPanelContent.find("#after_action_info").text(""); | ||||
|                 $rightPanelContent.find("#after_action_info_container").hide();                 | ||||
|             } | ||||
|             var jsonObj = $t.data("jsonObj");  | ||||
|             vmJsonToRightPanel(jsonObj);	        		                             | ||||
|                 | ||||
|             return false; | ||||
|         });  | ||||
|     } | ||||
|      | ||||
|     function vmClearRightPanel(jsonObj) {        | ||||
|         $rightPanelHeader.find("#vm_name").text("");	 | ||||
|         updateVirtualMachineStateInRightPanel("");	 | ||||
|         $rightPanelContent.find("#ipAddress").text(""); | ||||
|         $rightPanelContent.find("#zoneName").text(""); | ||||
|         $rightPanelContent.find("#templateName").text(""); | ||||
|         $rightPanelContent.find("#serviceOfferingName").text("");		 | ||||
|         $rightPanelContent.find("#ha").hide();   | ||||
|         $rightPanelContent.find("#created").text(""); | ||||
|         $rightPanelContent.find("#account").text(""); | ||||
|         $rightPanelContent.find("#domain").text(""); | ||||
|         $rightPanelContent.find("#hostName").text(""); | ||||
|         $rightPanelContent.find("#group").text("");	 | ||||
|         $rightPanelContent.find("#iso").hide(); | ||||
|     } | ||||
|      | ||||
|     function vmJsonToRightPanel(jsonObj) { | ||||
| @ -92,18 +108,18 @@ function clickInstanceGroupHeader($arrowIcon) { | ||||
|         $rightPanelContent.find("#templateName").text(jsonObj.templatename); | ||||
|         $rightPanelContent.find("#serviceOfferingName").text(jsonObj.serviceofferingname);		                                			                                 | ||||
|         if(jsonObj.haenable == "true") | ||||
|             $rightPanelContent.find("#ha").removeClass("cross_icon").addClass("tick_icon"); | ||||
|             $rightPanelContent.find("#ha").removeClass("cross_icon").addClass("tick_icon").show(); | ||||
|         else | ||||
|             $rightPanelContent.find("#ha").removeClass("tick_icon").addClass("cross_icon");		                                 | ||||
|             $rightPanelContent.find("#ha").removeClass("tick_icon").addClass("cross_icon").show();		                                 | ||||
|         $rightPanelContent.find("#created").text(jsonObj.created); | ||||
|         $rightPanelContent.find("#account").text(jsonObj.account); | ||||
|         $rightPanelContent.find("#domain").text(jsonObj.domain); | ||||
|         $rightPanelContent.find("#hostName").text(jsonObj.hostname); | ||||
|         $rightPanelContent.find("#group").text(jsonObj.group);	 | ||||
|         if(jsonObj.isoid != null && jsonObj.isoid.length > 0) | ||||
|             $rightPanelContent.find("#iso").removeClass("cross_icon").addClass("tick_icon"); | ||||
|             $rightPanelContent.find("#iso").removeClass("cross_icon").addClass("tick_icon").show(); | ||||
|         else | ||||
|             $rightPanelContent.find("#iso").removeClass("tick_icon").addClass("cross_icon");     | ||||
|             $rightPanelContent.find("#iso").removeClass("tick_icon").addClass("cross_icon").show();            | ||||
|     } | ||||
|      | ||||
|      | ||||
| @ -143,64 +159,21 @@ function clickInstanceGroupHeader($arrowIcon) { | ||||
|                             $("#midmenu_container").empty(); | ||||
|                             var groupName = $(this).find("#group_name").text(); | ||||
|                                                          | ||||
|                             var instances = instanceGroupMap[groupName];                                | ||||
|                             for(var i=0; i<instances.length;i++) {                 | ||||
|                                 var instance = instances[i]; | ||||
|                                 var $midmenuItemVm1 = $midmenuItemVm.clone();                                                                                                                                | ||||
|                                 setMidmenuItemVm(instance, $midmenuItemVm1);    | ||||
|                                 | ||||
|                                 //begin of $midmenuItemVm1.bind("click")    
 | ||||
|                                 $midmenuItemVm1.bind("click", function(event) {   | ||||
|                                     var $t = $(this);                                        | ||||
|                                     var id = $t.data("id");                                      | ||||
|                                      | ||||
|                                     /*   | ||||
|                                     var vmName = $t.data("vmName"); | ||||
|                                     var ipAddress = $t.data("ipAddress"); | ||||
|                                     var zoneName = $t.data("zoneName"); | ||||
|                                     var templateName = $t.data("templateName"); | ||||
|                                     var serviceOfferingName = $t.data("serviceOfferingName"); | ||||
|                                     var haEnable = $t.data("haEnable"); | ||||
|                                     var created = $t.data("created"); | ||||
|                                     var account = $t.data("account"); | ||||
|                                     var domain = $t.data("domain"); | ||||
|                                     var hostName = $t.data("hostName"); | ||||
|                                     var group = $t.data("group"); | ||||
|                                     var state = $t.data("state"); | ||||
|                                     var isoId = $t.data("isoId"); | ||||
|                                     */ | ||||
|                                      | ||||
|                                     $t.find("#content").addClass("selected");    | ||||
|                                     if(!(id in selectedItemIds)) | ||||
|                                         selectedItemIds[id] = null; | ||||
|                                      | ||||
|                                     //populate right panel (begin)                                     
 | ||||
|                                     if($t.find("#info_icon").css("display") != "none") { | ||||
|                                         $rightPanelContent.find("#after_action_info").text($t.data("afterActionInfo")); | ||||
|                                         if($t.find("#info_icon").hasClass("error")) | ||||
|                                             $rightPanelContent.find("#after_action_info_container").addClass("errorbox"); | ||||
|                                          else | ||||
|                                             $rightPanelContent.find("#after_action_info_container").removeClass("errorbox");                                         | ||||
|                                         $rightPanelContent.find("#after_action_info_container").show();                                          | ||||
|                                     }  | ||||
|                                     else { | ||||
|                                         $rightPanelContent.find("#after_action_info").text(""); | ||||
|                                         $rightPanelContent.find("#after_action_info_container").hide();                 | ||||
|                                     } | ||||
|                                        | ||||
| 	                                var jsonObj = $t.data("jsonObj");  | ||||
| 	                                vmJsonToRightPanel(jsonObj);	                                 | ||||
| 	                                	                                     | ||||
| 	                                $rightPanelHeader.show();	 | ||||
| 	                                $rightPanelContent.show();		                                     | ||||
| 	                                //populate right panel (end)   
 | ||||
| 		                                | ||||
|                                     return false; | ||||
|                                 }); | ||||
|                                 //end of $midmenuItemVm1.bind("click") 
 | ||||
|                                  | ||||
|                                 $("#midmenu_container").append($midmenuItemVm1.show()); | ||||
|                             }  | ||||
|                             $.ajax({ | ||||
| 	                            cache: false, | ||||
| 	                            data: createURL("command=listVirtualMachines&response=json"), | ||||
| 	                            dataType: "json", | ||||
| 	                            success: function(json) {		                                                              | ||||
| 	                                var instances = json.listvirtualmachinesresponse.virtualmachine;                                | ||||
|                                     for(var i=0; i<instances.length;i++) {                 | ||||
|                                         var instance = instances[i]; | ||||
|                                         var $midmenuItemVm1 = $midmenuItemVm.clone();                                                                                                                                | ||||
|                                         setMidmenuItemVm(instance, $midmenuItemVm1);   | ||||
|                                         $("#midmenu_container").append($midmenuItemVm1.show()); | ||||
|                                     }     | ||||
| 	                            } | ||||
| 	                        }); | ||||
|                              | ||||
|                             return false; | ||||
|                         });			                 | ||||
| 		                 | ||||
| @ -218,16 +191,14 @@ function clickInstanceGroupHeader($arrowIcon) { | ||||
| 		            $link.data("api", api);			 | ||||
| 		            $link.data("label", apiInfo.label);	        | ||||
| 		            $link.data("isAsyncJob", apiInfo.isAsyncJob); | ||||
| 		            $link.data("asyncJobResponse", apiInfo.asyncJobResponse); | ||||
| 		            $link.data("afterSuccessFn", apiInfo.afterSuccessFn); | ||||
| 		            $link.data("asyncJobResponse", apiInfo.asyncJobResponse);		             | ||||
| 		            $link.bind("click", function(event) {	 | ||||
| 		                $actionMenu.hide();  	 | ||||
| 		                var $t = $(this); | ||||
| 		                var api = $t.data("api"); | ||||
| 		                var label = $t.data("label");			            | ||||
| 		                var isAsyncJob = $t.data("isAsyncJob"); | ||||
| 		                var asyncJobResponse = $t.data("asyncJobResponse"); | ||||
| 		                var afterSuccessFn = $t.data("afterSuccessFn");		                	               	                 | ||||
| 		                var asyncJobResponse = $t.data("asyncJobResponse");		                           	               	                 | ||||
| 		                var jobIdMap = {}; | ||||
| 		                for(var id in selectedItemIds) {		                                   | ||||
| 		                    $("#midmenuItemVm_"+id).find("#spinning_wheel").show();	 | ||||
| @ -260,11 +231,11 @@ function clickInstanceGroupHeader($arrowIcon) { | ||||
| 										                    if (result.jobstatus == 1) { // Succeeded  
 | ||||
| 										                        $item.find("#info_icon").removeClass("error").show(); | ||||
| 										                        $item.data("afterActionInfo", (label + " action succeeded."));  | ||||
| 										                        if("virtualmachine" in result)											                                  													           													 | ||||
|             													    afterSuccessFn(result.virtualmachine[0].state, $item, true);                 													 | ||||
| 										                        if("virtualmachine" in result)	 | ||||
| 										                            updateVirtualMachineStateInMidMenu(result.virtualmachine[0].state, $item);	 | ||||
| 										                    } else if (result.jobstatus == 2) { // Failed	
 | ||||
| 										                        $item.find("#info_icon").addClass("error").show(); | ||||
| 										                        $item.data("afterActionInfo", (label + " action failed. Reason: " + sanitizeXSS(result.jobresult)));             													 | ||||
| 										                        $item.data("afterActionInfo", (label + " action failed. Reason: " + sanitizeXSS(result.jobresult)));     | ||||
| 										                    }											                     | ||||
| 									                    } | ||||
| 								                    }, | ||||
| @ -301,12 +272,12 @@ function clickInstanceGroupHeader($arrowIcon) { | ||||
|         $instanceGroupContainer.empty();    | ||||
|     }	      | ||||
|     //***** VM Detail (end) ********************************************************************************    
 | ||||
|     $("#right_panel").load("jsp/tab_instance.jsp", function() {			 | ||||
| 		$rightPanelHeader = $("#right_panel_header");			                                		                                 | ||||
| 		$rightPanelContent = $("#right_panel_content");	 | ||||
| 		 | ||||
|     $("#right_panel").load("jsp/tab_instance.jsp", function() {	 | ||||
|         $rightPanelHeader = $("#right_panel_header");			                                		                                 | ||||
| 	    $rightPanelContent = $("#right_panel_content");	      | ||||
|          | ||||
|         //***** VM Wizard (begin) ******************************************************************************
 | ||||
|         var $vmPopup = $("#vm_popup"); | ||||
|         $vmPopup = $("#vm_popup"); | ||||
|         var $serviceOfferingTemplate = $("#vm_popup_service_offering_template"); | ||||
|         var $diskOfferingTemplate = $("#vm_popup_disk_offering_template"); | ||||
| 	    var currentPageInTemplateGridInVmPopup =1; | ||||
| @ -864,11 +835,11 @@ function clickInstanceGroupHeader($arrowIcon) { | ||||
| 										    $("body").stopTime(timerKey); | ||||
| 										    $t.find("#spinning_wheel").hide();		 | ||||
| 										    if (result.jobstatus == 1) { | ||||
| 											    // Succeeded						    
 | ||||
| 											    setMidmenuItemVm(result.virtualmachine[0], $t);	 | ||||
| 											    $t.find("#ip_address_container #label").show(); | ||||
| 											    $t.find("#info_icon").show();											    | ||||
|     			 | ||||
| 											    // Succeeded	
 | ||||
| 											    $t.find("#info_icon").removeClass("error").show(); | ||||
| 						                        $t.data("afterActionInfo", ("Adding succeeded."));  | ||||
| 						                        if("virtualmachine" in result)	 | ||||
| 						                            setMidmenuItemVm(result.virtualmachine[0], $t);		 | ||||
| 											    /* | ||||
| 											    vmJSONToTemplate(result.virtualmachine[0], vmInstance); | ||||
| 											    if (result.virtualmachine[0].passwordenabled == 'true') { | ||||
| @ -885,8 +856,17 @@ function clickInstanceGroupHeader($arrowIcon) { | ||||
| 											     | ||||
| 										    } else if (result.jobstatus == 2) { | ||||
| 											    // Failed
 | ||||
| 											    $t.find("#info_icon").addClass("error").show(); | ||||
| 											    $t.find("#vm_name").text("Adding failed"); | ||||
| 											    $t.find("#info_icon").addClass("error").show(); | ||||
| 						                        $t.data("afterActionInfo", ("Adding failed. Reason: " + sanitizeXSS(result.jobresult)));   	 | ||||
| 						                        $t.bind("click", function(event) {   | ||||
|                                                     $rightPanelContent.find("#after_action_info").text($(this).data("afterActionInfo")); | ||||
|                                                     $rightPanelContent.find("#after_action_info_container").addClass("errorbox"); | ||||
|                                                     $rightPanelContent.find("#after_action_info_container").show();    | ||||
|                                                     vmClearRightPanel(); | ||||
|                                                     return false; | ||||
|                                                 });			 | ||||
| 						                         | ||||
| 											    /* | ||||
| 											    vmInstance.find(".loadingmessage_container .loadingmessage_top p").text("Unable to create your new instance due to the error: " + result.jobresult); | ||||
| 											    vmInstance.find(".loadingmessage_container").fadeIn("slow"); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user