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">
|
||||
@ -189,7 +192,9 @@ dictionary = {
|
||||
</div>
|
||||
<div class="grid_row_cell" style="width: 79%;">
|
||||
<div class="row_celltitles" id="oscategoryname">
|
||||
</div>
|
||||
</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)-->
|
||||
|
||||
@ -61,7 +61,25 @@ function afterLoadHostJSP() {
|
||||
var tabContentArray = [$("#tab_content_details"), $("#tab_content_instance"), $("#tab_content_router"), $("#tab_content_systemvm"), $("#tab_content_statistics")];
|
||||
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();
|
||||
}
|
||||
|
||||
@ -203,43 +221,45 @@ function hostBuildActionMenu(jsonObj, $thisTab, $midmenuItem1) {
|
||||
$actionMenu.find("#action_list").empty();
|
||||
var noAvailableActions = true;
|
||||
|
||||
if (jsonObj.state == 'Up' || jsonObj.state == "Connecting") {
|
||||
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.force.reconnect", 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.enable.maintenance.mode", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
buildActionLinkForTab("label.action.update.OS.preference", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
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.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") {
|
||||
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.cancel.maintenance.mode", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
buildActionLinkForTab("label.action.update.OS.preference", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
else if (jsonObj.state == "PrepareForMaintenance") {
|
||||
buildActionLinkForTab("label.action.edit.host", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
buildActionLinkForTab("label.action.cancel.maintenance.mode", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
noAvailableActions = false;
|
||||
}
|
||||
else if (jsonObj.state == "Maintenance") {
|
||||
buildActionLinkForTab("label.action.cancel.maintenance.mode", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
buildActionLinkForTab("label.action.update.OS.preference", hostActionMap, $actionMenu, $midmenuItem1, $thisTab);
|
||||
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.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