bug 7014: fixed JS error when attempting to view a non-selected vm instance

status 7014: resolved fixed
This commit is contained in:
will 2010-11-18 18:11:12 -08:00
parent fd79fb12ca
commit 6df0d87dc2
2 changed files with 171 additions and 171 deletions

View File

@ -277,7 +277,7 @@
</div>
<div class="dbrow_cell" style="width: 16%; border: none;">
<div class="db_totaltitle" id="percentused">
K%
0%
</div>
</div>
</div>

View File

@ -1280,196 +1280,196 @@ function vmToRightPanel($midmenuItem1) {
function vmJsonToDetailsTab(){
var $thisTab = $("#right_panel_content #tab_content_details");
$thisTab.find("#tab_container").hide();
$thisTab.find("#tab_spinning_wheel").show();
var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
var id = $midmenuItem1.data("jsonObj").id;
var jsonObj;
$.ajax({
data: createURL("command=listVirtualMachines&id="+id),
dataType: "json",
async: false,
success: function(json) {
var items = json.listvirtualmachinesresponse.virtualmachine;
if(items != null && items.length > 0)
jsonObj = items[0];
}
});
$thisTab.data("jsonObj", jsonObj);
$midmenuItem1.data("jsonObj", jsonObj);
resetViewConsoleAction(jsonObj, $thisTab);
setVmStateInRightPanel(jsonObj.state, $thisTab.find("#state"));
$thisTab.find("#ipAddress").text(noNull(jsonObj.ipaddress));
$thisTab.find("#id").text(noNull(jsonObj.id));
$thisTab.find("#zoneName").text(fromdb(jsonObj.zonename));
var vmName = getVmName(jsonObj.name, jsonObj.displayname);
$thisTab.find("#title").text(vmName);
$thisTab.find("#vmname").text(vmName);
$thisTab.find("#vmname_edit").val(fromdb(jsonObj.displayname));
$thisTab.find("#ipaddress").text(fromdb(jsonObj.ipaddress));
$thisTab.find("#templateName").text(fromdb(jsonObj.templatename));
$thisTab.find("#serviceOfferingName").text(fromdb(jsonObj.serviceofferingname));
$thisTab.find("#account").text(fromdb(jsonObj.account));
$thisTab.find("#domain").text(fromdb(jsonObj.domain));
$thisTab.find("#hostName").text(fromdb(jsonObj.hostname));
$thisTab.find("#group").text(fromdb(jsonObj.group));
$thisTab.find("#group_edit").val(fromdb(jsonObj.group));
setDateField(jsonObj.created, $thisTab.find("#created"));
setBooleanReadField(jsonObj.haenable, $thisTab.find("#haenable"));
setBooleanEditField(jsonObj.haenable, $thisTab.find("#haenable_edit"));
setBooleanReadField((jsonObj.isoid != null), $thisTab.find("#iso"));
//actions ***
var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
$actionMenu.find("#action_list").empty();
buildActionLinkForTab("Edit Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
// Show State of the VM
if (jsonObj.state == 'Destroyed') {
buildActionLinkForTab("Restore Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
//to hide view console in details tab....(to-do)
//to hide volume tab....(to-do)
}
else if (jsonObj.state == 'Running') {
//instanceTemplate.find("#vm_action_start, #vm_action_reset_password, #vm_action_change_service").removeClass().addClass("vmaction_links_off");
buildActionLinkForTab("Stop Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Reboot Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Destroy Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
if ($midmenuItem1 != null) {
$thisTab.find("#tab_container").hide();
$thisTab.find("#tab_spinning_wheel").show();
var id = $midmenuItem1.data("jsonObj").id;
if (jsonObj.isoid == null)
buildActionLinkForTab("Attach ISO", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
else
buildActionLinkForTab("Detach ISO", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Reset Password", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
}
else {
if (jsonObj.state == 'Stopped') {
//instanceTemplate.find("#vm_action_stop, #vm_action_reboot").removeClass().addClass("vmaction_links_off");
buildActionLinkForTab("Start Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Destroy Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
if (jsonObj.isoid == null)
buildActionLinkForTab("Attach ISO", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
else
buildActionLinkForTab("Detach ISO", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Reset Password", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Change Service", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
var jsonObj;
$.ajax({
data: createURL("command=listVirtualMachines&id="+id),
dataType: "json",
async: false,
success: function(json) {
var items = json.listvirtualmachinesresponse.virtualmachine;
if(items != null && items.length > 0)
jsonObj = items[0];
}
});
$thisTab.data("jsonObj", jsonObj);
$midmenuItem1.data("jsonObj", jsonObj);
resetViewConsoleAction(jsonObj, $thisTab);
setVmStateInRightPanel(jsonObj.state, $thisTab.find("#state"));
$thisTab.find("#ipAddress").text(noNull(jsonObj.ipaddress));
$thisTab.find("#id").text(noNull(jsonObj.id));
$thisTab.find("#zoneName").text(fromdb(jsonObj.zonename));
var vmName = getVmName(jsonObj.name, jsonObj.displayname);
$thisTab.find("#title").text(vmName);
$thisTab.find("#vmname").text(vmName);
$thisTab.find("#vmname_edit").val(fromdb(jsonObj.displayname));
$thisTab.find("#ipaddress").text(fromdb(jsonObj.ipaddress));
$thisTab.find("#templateName").text(fromdb(jsonObj.templatename));
$thisTab.find("#serviceOfferingName").text(fromdb(jsonObj.serviceofferingname));
$thisTab.find("#account").text(fromdb(jsonObj.account));
$thisTab.find("#domain").text(fromdb(jsonObj.domain));
$thisTab.find("#hostName").text(fromdb(jsonObj.hostname));
$thisTab.find("#group").text(fromdb(jsonObj.group));
$thisTab.find("#group_edit").val(fromdb(jsonObj.group));
setDateField(jsonObj.created, $thisTab.find("#created"));
setBooleanReadField(jsonObj.haenable, $thisTab.find("#haenable"));
setBooleanEditField(jsonObj.haenable, $thisTab.find("#haenable_edit"));
setBooleanReadField((jsonObj.isoid != null), $thisTab.find("#iso"));
//actions ***
var $actionMenu = $("#right_panel_content #tab_content_details #action_link #action_menu");
$actionMenu.find("#action_list").empty();
buildActionLinkForTab("Edit Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
// Show State of the VM
if (jsonObj.state == 'Destroyed') {
buildActionLinkForTab("Restore Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
//to hide view console in details tab....(to-do)
//to hide volume tab....(to-do)
}
else { //jsonObj.state == "Starting", "Creating", ~~~
if(jsonObj.state != 'Creating')
buildActionLinkForTab("Destroy Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
//instanceTemplate.find("#vm_action_start, #vm_action_stop, #vm_action_reboot, #vm_action_attach_iso, #vm_action_detach_iso, #vm_action_reset_password, #vm_action_change_service").removeClass().addClass("vmaction_links_off");
}
//to hide view console in details tab....(to-do)
}
$thisTab.find("#tab_spinning_wheel").hide();
$thisTab.find("#tab_container").show();
else if (jsonObj.state == 'Running') {
//instanceTemplate.find("#vm_action_start, #vm_action_reset_password, #vm_action_change_service").removeClass().addClass("vmaction_links_off");
buildActionLinkForTab("Stop Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Reboot Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Destroy Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
if (jsonObj.isoid == null)
buildActionLinkForTab("Attach ISO", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
else
buildActionLinkForTab("Detach ISO", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Reset Password", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
}
else {
if (jsonObj.state == 'Stopped') {
//instanceTemplate.find("#vm_action_stop, #vm_action_reboot").removeClass().addClass("vmaction_links_off");
buildActionLinkForTab("Start Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Destroy Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
if (jsonObj.isoid == null)
buildActionLinkForTab("Attach ISO", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
else
buildActionLinkForTab("Detach ISO", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Reset Password", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
buildActionLinkForTab("Change Service", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
}
else { //jsonObj.state == "Starting", "Creating", ~~~
if(jsonObj.state != 'Creating')
buildActionLinkForTab("Destroy Instance", vmActionMap, $actionMenu, $midmenuItem1, $thisTab);
//instanceTemplate.find("#vm_action_start, #vm_action_stop, #vm_action_reboot, #vm_action_attach_iso, #vm_action_detach_iso, #vm_action_reset_password, #vm_action_change_service").removeClass().addClass("vmaction_links_off");
}
//to hide view console in details tab....(to-do)
}
$thisTab.find("#tab_spinning_wheel").hide();
$thisTab.find("#tab_container").show();
}
}
function vmJsonToVolumeTab() {
var $thisTab = $("#right_panel_content #tab_content_volume");
$thisTab.find("#tab_container").hide();
$thisTab.find("#tab_spinning_wheel").show();
var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
var jsonObj = $midmenuItem1.data("jsonObj");
if ($midmenuItem1 != null) {
$thisTab.find("#tab_container").hide();
$thisTab.find("#tab_spinning_wheel").show();
var jsonObj = $midmenuItem1.data("jsonObj");
$.ajax({
cache: false,
data: createURL("command=listVolumes&virtualMachineId="+jsonObj.id+maxPageSize),
dataType: "json",
success: function(json) {
var items = json.listvolumesresponse.volume;
if (items != null && items.length > 0) {
var $container = $thisTab.find("#tab_container").empty();
var template = $("#volume_tab_template");
for (var i = 0; i < items.length; i++) {
var newTemplate = template.clone(true);
vmVolumeJSONToTemplate(items[i], newTemplate);
$container.append(newTemplate.show());
}
}
$thisTab.find("#tab_spinning_wheel").hide();
$thisTab.find("#tab_container").show();
}
});
$.ajax({
cache: false,
data: createURL("command=listVolumes&virtualMachineId="+jsonObj.id+maxPageSize),
dataType: "json",
success: function(json) {
var items = json.listvolumesresponse.volume;
if (items != null && items.length > 0) {
var $container = $thisTab.find("#tab_container").empty();
var template = $("#volume_tab_template");
for (var i = 0; i < items.length; i++) {
var newTemplate = template.clone(true);
vmVolumeJSONToTemplate(items[i], newTemplate);
$container.append(newTemplate.show());
}
}
$thisTab.find("#tab_spinning_wheel").hide();
$thisTab.find("#tab_container").show();
}
});
}
}
function vmJsonToStatisticsTab() {
var $thisTab = $("#right_panel_content #tab_content_statistics");
$thisTab.find("#tab_container").hide();
$thisTab.find("#tab_spinning_wheel").show();
var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
var jsonObj = $midmenuItem1.data("jsonObj");
var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
if ($midmenuItem1 != null) {
var jsonObj = $midmenuItem1.data("jsonObj");
var $barChartContainer = $thisTab.find("#cpu_barchart");
var cpuNumber = ((jsonObj.cpunumber==null)? "":jsonObj.cpunumber.toString());
$barChartContainer.find("#cpunumber").text(cpuNumber);
var cpuSpeed = ((jsonObj.cpuspeed==null)? "":convertHz(jsonObj.cpuspeed)) ;
$barChartContainer.find("#cpuspeed").text(cpuSpeed);
$barChartContainer.find("#bar_chart").removeClass().addClass("db_barbox").css("width", "0%");
$barChartContainer.find("#percentused").text("");
if(jsonObj.cpuused!=null)
drawBarChart($barChartContainer, jsonObj.cpuused);
var networkKbsRead = ((jsonObj.networkkbsread==null)? "":convertBytes(jsonObj.networkkbsread * 1024));
$thisTab.find("#networkkbsread").text(networkKbsRead);
var networkKbsWrite = ((jsonObj.networkkbswrite==null)? "":convertBytes(jsonObj.networkkbswrite * 1024));
$thisTab.find("#networkkbswrite").text(networkKbsWrite);
$thisTab.find("#tab_spinning_wheel").hide();
$thisTab.find("#tab_container").show();
var $barChartContainer = $thisTab.find("#cpu_barchart");
var cpuNumber = ((jsonObj.cpunumber==null)? "":jsonObj.cpunumber.toString());
$barChartContainer.find("#cpunumber").text(cpuNumber);
var cpuSpeed = ((jsonObj.cpuspeed==null)? "":convertHz(jsonObj.cpuspeed)) ;
$barChartContainer.find("#cpuspeed").text(cpuSpeed);
$barChartContainer.find("#bar_chart").removeClass().addClass("db_barbox").css("width", "0%");
$barChartContainer.find("#percentused").text("");
if(jsonObj.cpuused!=null)
drawBarChart($barChartContainer, jsonObj.cpuused);
var networkKbsRead = ((jsonObj.networkkbsread==null)? "":convertBytes(jsonObj.networkkbsread * 1024));
$thisTab.find("#networkkbsread").text(networkKbsRead);
var networkKbsWrite = ((jsonObj.networkkbswrite==null)? "":convertBytes(jsonObj.networkkbswrite * 1024));
$thisTab.find("#networkkbswrite").text(networkKbsWrite);
}
}
function vmJsonToRouterTab() {
var $thisTab = $("#right_panel_content #tab_content_router");
$thisTab.find("#tab_container").hide();
$thisTab.find("#tab_spinning_wheel").show();
var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
if ($midmenuItem1 != null) {
$thisTab.find("#tab_container").hide();
$thisTab.find("#tab_spinning_wheel").show();
var vmObj = $midmenuItem1.data("jsonObj");
var $midmenuItem1 = $("#right_panel_content").data("$midmenuItem1");
var vmObj = $midmenuItem1.data("jsonObj");
$.ajax({
cache: false,
data: createURL("command=listRouters&domainid="+vmObj.domainid+"&account="+vmObj.account+maxPageSize),
dataType: "json",
success: function(json) {
var items = json.listroutersresponse.router;
if (items != null && items.length > 0) {
var $container = $thisTab.find("#tab_container").empty();
var template = $("#router_tab_template");
for (var i = 0; i < items.length; i++) {
var newTemplate = template.clone(true);
vmRouterJSONToTemplate(items[i], newTemplate);
$container.append(newTemplate.show());
$.ajax({
cache: false,
data: createURL("command=listRouters&domainid="+vmObj.domainid+"&account="+vmObj.account+maxPageSize),
dataType: "json",
success: function(json) {
var items = json.listroutersresponse.router;
if (items != null && items.length > 0) {
var $container = $thisTab.find("#tab_container").empty();
var template = $("#router_tab_template");
for (var i = 0; i < items.length; i++) {
var newTemplate = template.clone(true);
vmRouterJSONToTemplate(items[i], newTemplate);
$container.append(newTemplate.show());
}
}
$thisTab.find("#tab_spinning_wheel").hide();
$thisTab.find("#tab_container").show();
}
$thisTab.find("#tab_spinning_wheel").hide();
$thisTab.find("#tab_container").show();
}
});
});
}
}
function vmClearRightPanel(jsonObj) {