mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	bug 11261: cloudStack - host page - Edit Host action - (1) make hosttags editable. (2) consolidate update OS category from dialog box to main screen.
This commit is contained in:
		
							parent
							
								
									a11b7de9fe
								
							
						
					
					
						commit
						2b5e673b0a
					
				| @ -4,6 +4,8 @@ | ||||
| 
 | ||||
| 
 | ||||
| #Labels | ||||
| label.action.edit.host=Edit Host | ||||
| 
 | ||||
| network.rate=Network Rate | ||||
| 
 | ||||
| ICMP.type=ICMP Type | ||||
|  | ||||
| @ -4,6 +4,8 @@ | ||||
| 
 | ||||
| 
 | ||||
| #Labels | ||||
| label.action.edit.host=edición Anfitrión | ||||
| 
 | ||||
| network.rate=Tasa de red | ||||
| 
 | ||||
| ICMP.type=Tipo ICMP | ||||
|  | ||||
| @ -4,6 +4,8 @@ | ||||
| 
 | ||||
| 
 | ||||
| #Labels | ||||
| label.action.edit.host=ホストを編集する | ||||
| 
 | ||||
| network.rate=ネットワーク速度 | ||||
| 
 | ||||
| ICMP.type=ICMPタイプ | ||||
|  | ||||
| @ -4,6 +4,8 @@ | ||||
| 
 | ||||
| 
 | ||||
| #Labels | ||||
| label.action.edit.host=编辑主机 | ||||
| 
 | ||||
| network.rate=网络速率 | ||||
| 
 | ||||
| ICMP.type=ICMP类型 | ||||
|  | ||||
| @ -7,6 +7,7 @@ | ||||
| 
 | ||||
| <script language="javascript"> | ||||
| dictionary = { 	 | ||||
| 	'label.action.edit.host' : '<fmt:message key="label.action.edit.host"/>', | ||||
| 	'label.action.enable.maintenance.mode' : '<fmt:message key="label.action.enable.maintenance.mode"/>', | ||||
| 	'label.action.enable.maintenance.mode.processing' : '<fmt:message key="label.action.enable.maintenance.mode.processing"/>', | ||||
| 	'message.action.host.enable.maintenance.mode' : '<fmt:message key="message.action.host.enable.maintenance.mode"/>', | ||||
| @ -120,6 +121,8 @@ dictionary = { | ||||
| 	                <div class="grid_row_cell" style="width: 79%;"> | ||||
| 	                    <div class="row_celltitles" id="hosttags"> | ||||
| 	                    </div> | ||||
| 	                    <input class="text" id="hosttags_edit" style="width: 200px; display: none;" type="text" /> | ||||
| 	                    <div id="hosttags_edit_errormsg" style="display:none"></div>	                     | ||||
| 	                </div> | ||||
| 	            </div> | ||||
| 	            <div class="grid_rows odd"> | ||||
| @ -190,6 +193,8 @@ dictionary = { | ||||
| 	                <div class="grid_row_cell" style="width: 79%;"> | ||||
| 	                    <div class="row_celltitles" id="oscategoryname"> | ||||
| 	                    </div>	                     | ||||
| 	                    <select class="select" id="os_dropdown" style="width: 202px; display: none;">                     | ||||
|                 	    </select> | ||||
| 	                </div> | ||||
| 	            </div> | ||||
| 	            <div class="grid_rows even"> | ||||
| @ -202,7 +207,14 @@ dictionary = { | ||||
| 	                    </div> | ||||
| 	                </div> | ||||
| 	            </div> | ||||
| 	             | ||||
| 	        </div> | ||||
| 	         | ||||
| 	        <div class="grid_botactionpanel"> | ||||
| 	        	<div class="gridbot_buttons" id="save_button" style="display:none;"><fmt:message key="label.save"/></div> | ||||
| 	            <div class="gridbot_buttons" id="cancel_button" style="display:none;"><fmt:message key="label.cancel"/></div> | ||||
| 	        </div>  | ||||
| 	         | ||||
| 	    </div>         | ||||
|     </div> | ||||
|     <!-- Details tab (end)--> | ||||
|  | ||||
| @ -62,6 +62,24 @@ function afterLoadHostJSP() { | ||||
|     var afterSwitchFnArray = [hostJsonToDetailsTab, hostJsonToInstanceTab, hostJsonToRouterTab, hostJsonToSystemvmTab, hostJsonToStatisticsTab]; | ||||
|     switchBetweenDifferentTabs(tabArray, tabContentArray, afterSwitchFnArray);   | ||||
|    | ||||
|     $readonlyFields  = $("#tab_content_details").find("#hosttags,#oscategoryname"); | ||||
|     $editFields = $("#tab_content_details").find("#hosttags_edit,#os_dropdown");  | ||||
|      | ||||
|     $.ajax({ | ||||
| 	    data: createURL("command=listOsCategories"), | ||||
| 		dataType: "json", | ||||
| 		success: function(json) { | ||||
| 			var categories = json.listoscategoriesresponse.oscategory; | ||||
| 			var $dropdown = $("#tab_content_details").find("#os_dropdown").empty();	 | ||||
| 			$dropdown.append("<option value=''>None</option>"); 						 | ||||
| 			if (categories != null && categories.length > 0) { | ||||
| 				for (var i = 0; i < categories.length; i++) {				    | ||||
| 					 $dropdown.append("<option value='" + categories[i].id + "'>" + fromdb(categories[i].name) + "</option>"); 						 | ||||
| 		        }			     | ||||
| 			} | ||||
| 		} | ||||
| 	}); | ||||
|      | ||||
|     hostRefreshDataBinding();   | ||||
| } | ||||
| 
 | ||||
| @ -204,42 +222,44 @@ function hostBuildActionMenu(jsonObj, $thisTab, $midmenuItem1) { | ||||
|     var noAvailableActions = true; | ||||
|      | ||||
|     if (jsonObj.state == 'Up' || jsonObj.state == "Connecting") { | ||||
|     	buildActionLinkForTab("label.action.edit.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);    | ||||
| 		buildActionLinkForTab("label.action.enable.maintenance.mode", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);   | ||||
| 	    buildActionLinkForTab("label.action.force.reconnect", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);   	     | ||||
| 	    buildActionLinkForTab("label.action.update.OS.preference", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);    | ||||
| 	    buildActionLinkForTab("label.action.update.OS.preference", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);   //temp
 | ||||
| 	    noAvailableActions = false; | ||||
| 	}  | ||||
| 	else if(jsonObj.state == 'Down') { | ||||
| 		buildActionLinkForTab("label.action.edit.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);   | ||||
| 	    buildActionLinkForTab("label.action.enable.maintenance.mode", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  	    	     | ||||
| 	    buildActionLinkForTab("label.action.update.OS.preference", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  	     | ||||
|         buildActionLinkForTab("label.action.remove.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);   | ||||
|         noAvailableActions = false; | ||||
|     }	 | ||||
| 	else if(jsonObj.state == "Alert") { | ||||
| 	    buildActionLinkForTab("label.action.update.OS.preference", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  | ||||
| 	    buildActionLinkForTab("label.action.edit.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  | ||||
| 	    buildActionLinkForTab("label.action.remove.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);   	 | ||||
| 	    noAvailableActions = false;    | ||||
|       | ||||
| 	}	 | ||||
| 	else if (jsonObj.state == "ErrorInMaintenance") { | ||||
| 		buildActionLinkForTab("label.action.edit.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  	  | ||||
| 	    buildActionLinkForTab("label.action.enable.maintenance.mode", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);   | ||||
|         buildActionLinkForTab("label.action.cancel.maintenance.mode", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);   | ||||
|         buildActionLinkForTab("label.action.update.OS.preference", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  	  | ||||
|          | ||||
|         noAvailableActions = false;    | ||||
|     } | ||||
| 	else if (jsonObj.state == "PrepareForMaintenance") { | ||||
| 		buildActionLinkForTab("label.action.edit.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  	 | ||||
| 	    buildActionLinkForTab("label.action.cancel.maintenance.mode", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);           | ||||
|         buildActionLinkForTab("label.action.update.OS.preference", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  	 | ||||
|         noAvailableActions = false;     | ||||
|     } | ||||
| 	else if (jsonObj.state == "Maintenance") { | ||||
| 		 buildActionLinkForTab("label.action.edit.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  	 | ||||
| 	    buildActionLinkForTab("label.action.cancel.maintenance.mode", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);              | ||||
|         buildActionLinkForTab("label.action.update.OS.preference", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  	     | ||||
|         buildActionLinkForTab("label.action.remove.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);   | ||||
|         noAvailableActions = false; | ||||
|     } | ||||
| 	else if (jsonObj.state == "Disconnected"){ | ||||
| 	    buildActionLinkForTab("label.action.update.OS.preference", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  	     | ||||
| 	    buildActionLinkForTab("label.action.edit.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);  	     | ||||
|         buildActionLinkForTab("label.action.remove.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);   | ||||
|         noAvailableActions = false; | ||||
|     } | ||||
| @ -548,6 +568,9 @@ function populateForUpdateOSDialog(oscategoryid) { | ||||
| 
 | ||||
| 
 | ||||
| var hostActionMap = {   | ||||
|     "label.action.edit.host": { | ||||
|         dialogBeforeActionFn: doEditHost   | ||||
|     }, | ||||
|     "label.action.enable.maintenance.mode": {               | ||||
|         isAsyncJob: true, | ||||
|         asyncJobResponse: "preparehostformaintenanceresponse", | ||||
| @ -604,6 +627,59 @@ var hostActionMap = { | ||||
|     }           | ||||
| }  | ||||
| 
 | ||||
| function doEditHost($actionLink, $detailsTab, $midmenuItem1) {   | ||||
|     var jsonObj = $midmenuItem1.data("jsonObj");  | ||||
|     $detailsTab.find("#os_dropdown").val(jsonObj.oscategoryid); | ||||
|      | ||||
|     $readonlyFields.hide(); | ||||
|     $editFields.show();   | ||||
|     $detailsTab.find("#cancel_button, #save_button").show(); | ||||
|      | ||||
|     $detailsTab.find("#cancel_button").unbind("click").bind("click", function(event){     | ||||
|         cancelEditMode($detailsTab);     | ||||
|         return false; | ||||
|     }); | ||||
|     $detailsTab.find("#save_button").unbind("click").bind("click", function(event){         | ||||
|         doEditHost2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields);    | ||||
|         return false; | ||||
|     });    | ||||
| } | ||||
| 
 | ||||
| function doEditHost2($actionLink, $detailsTab, $midmenuItem1, $readonlyFields, $editFields) {    | ||||
|     var isValid = true;					 | ||||
|     isValid &= validateString("Host Tags", $detailsTab.find("#hosttags_edit"), $detailsTab.find("#hosttags_edit_errormsg"), true); //optional    		
 | ||||
|     if (!isValid)  | ||||
|         return; | ||||
|         | ||||
|     var jsonObj = $midmenuItem1.data("jsonObj");  | ||||
| 	var id = jsonObj.id; | ||||
| 	 | ||||
| 	var array1 = []; | ||||
| 	array1.push("&id="+id); | ||||
| 							 | ||||
| 	var hosttags = $detailsTab.find("#hosttags_edit").val(); | ||||
| 	array1.push("&hosttags="+todb(hosttags)); | ||||
| 		 | ||||
| 	var osCategoryId = $detailsTab.find("#os_dropdown").val(); | ||||
|     if (osCategoryId != null && osCategoryId.length > 0) | ||||
| 	    array1.push("&osCategoryId="+osCategoryId); | ||||
| 
 | ||||
| 	$.ajax({ | ||||
| 	    data: createURL("command=updateHost"+array1.join("")), | ||||
| 		dataType: "json", | ||||
| 		async: false, | ||||
| 		success: function(json) {			 | ||||
| 		    var jsonObj = json.updatehostresponse.host;		 | ||||
|             hostToMidmenu(jsonObj, $midmenuItem1); | ||||
|             hostToRightPanel($midmenuItem1);	 | ||||
| 		     | ||||
| 		    $editFields.hide();       | ||||
|             $readonlyFields.show();        | ||||
|             $("#save_button, #cancel_button").hide(); 		    		 | ||||
| 		} | ||||
| 	}); | ||||
| } | ||||
| 
 | ||||
| function doEnableMaintenanceMode($actionLink, $detailsTab, $midmenuItem1){  | ||||
|     var jsonObj = $midmenuItem1.data("jsonObj"); | ||||
|         | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user