Host page - automatically refresh host status every 2 seconds until status doesn't change any more.

This commit is contained in:
Jessica Wang 2011-02-16 17:51:43 -08:00
parent c6efb2b09d
commit e2f6e9b677
1 changed files with 55 additions and 6 deletions

View File

@ -104,7 +104,8 @@ function hostJsonToDetailsTab() {
var items = json.listhostsresponse.host;
if(items != null && items.length > 0) {
jsonObj = items[0];
$midmenuItem1.data("jsonObj", jsonObj);
$midmenuItem1.data("jsonObj", jsonObj);
updateHostStateInMidMenu(jsonObj, $midmenuItem1);
}
}
});
@ -119,6 +120,42 @@ function hostJsonToDetailsTab() {
setHostStateInRightPanel(fromdb(jsonObj.state), $thisTab.find("#state"));
//refresh status every 2 seconds until status is not changable any more
var timerKey = "refreshHostStatus";
$("body").stopTime(timerKey); //stop timer used by another middle menu item (i.e. stop timer when clicking on a different middle menu item)
if($midmenuItem1.find("#spinning_wheel").css("display") == "none") {
if(jsonObj.state in hostChangableStatus) {
$("body").everyTime(
2000,
timerKey,
function() {
$.ajax({
data: createURL("command=listHosts&id="+jsonObj.id),
dataType: "json",
async: false,
success: function(json) {
var items = json.listhostsresponse.host;
if(items != null && items.length > 0) {
jsonObj = items[0]; //override jsonObj declared above
$midmenuItem1.data("jsonObj", jsonObj);
if(!(jsonObj.state in hostChangableStatus)) {
$("body").stopTime(timerKey);
updateHostStateInMidMenu(jsonObj, $midmenuItem1);
if(jsonObj.id.toString() == $("#right_panel_content").find("#tab_content_details").find("#id").text()) {
setHostStateInRightPanel(jsonObj.state, $thisTab.find("#state"));
hostBuildActionMenu(jsonObj, $thisTab, $midmenuItem1);
}
}
}
}
});
}
);
}
}
$thisTab.find("#type").text(fromdb(jsonObj.type));
$thisTab.find("#zonename").text(fromdb(jsonObj.zonename));
$thisTab.find("#podname").text(fromdb(jsonObj.podname));
@ -130,7 +167,22 @@ function hostJsonToDetailsTab() {
populateForUpdateOSDialog(jsonObj.oscategoryid);
//actions ***
// actions
hostBuildActionMenu(jsonObj, $thisTab, $midmenuItem1);
$thisTab.find("#tab_spinning_wheel").hide();
$thisTab.find("#tab_container").show();
}
var hostChangableStatus = {
"PrepareForMaintenance": 1,
"Updating": 1,
"Disconnected": 1,
"Alert": 1,
"Connecting": 1
}
function hostBuildActionMenu(jsonObj, $thisTab, $midmenuItem1) {
var $actionLink = $thisTab.find("#action_link");
bindActionLink($actionLink);
@ -186,10 +238,7 @@ function hostJsonToDetailsTab() {
if(noAvailableActions == true) {
$actionMenu.find("#action_list").append($("#no_available_actions").clone().show());
}
$thisTab.find("#tab_spinning_wheel").hide();
$thisTab.find("#tab_container").show();
}
}
function hostJsonToInstanceTab() {
var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");