80279acbb0
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@126 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
130 lines
4.2 KiB
JavaScript
130 lines
4.2 KiB
JavaScript
var GroupNodeTableUpdater = {};
|
|
|
|
/**
|
|
* Hides/shows the nodes in a node group table.
|
|
*/
|
|
GroupNodeTableUpdater.toggleSection = function(nodeGroupName) {
|
|
var tableId = "div_" + nodeGroupName;
|
|
var imageId = tableId + '-im';
|
|
var expandSpanId = "img_gr_" + nodeGroupName;
|
|
|
|
var tableObj = $(tableId);
|
|
|
|
if(null == tableObj) {
|
|
alert('Error: section ' + tableId + ' not found.');
|
|
return false;
|
|
}
|
|
|
|
var imageTag = $(imageId);
|
|
var expandSpanObj = $(expandSpanId);
|
|
|
|
if(!tableObj.style.display || tableObj.style.display == 'inline') {
|
|
// the inner table is currently visible
|
|
tableObj.style.display = 'none';
|
|
imageTag.src = "../images/plus-sign.gif";
|
|
expandSpanObj.title = "Click to expand section";
|
|
} else {
|
|
// the inner table is currently invisible
|
|
tableObj.style.display = 'inline';
|
|
imageTag.src = "../images/minus-sign.gif";
|
|
expandSpanObj.title = "Click to collapse section";
|
|
}
|
|
|
|
return true;
|
|
};
|
|
|
|
GroupNodeTableUpdater.getFailureSpanHTML = function(nodeGroupName) {
|
|
var spanId = "nodegroup_" + nodeGroupName + "_failure";
|
|
var html = '<span id="' + spanId + '">There was a problem loading the node for the group ' + nodeGroupName + '</span>';
|
|
return html;
|
|
}
|
|
|
|
GroupNodeTableUpdater.getLoadingSpanHTML = function(nodeGroupName) {
|
|
var spanId = "nodegroup_" + nodeGroupName + "_loading";
|
|
var html = '<span id="' + spanId + '" style="padding-left: 0.5em; display: none;"><img alt="Loading ..." src="../images/ajax-loader.gif" /></span>';
|
|
return html;
|
|
}
|
|
|
|
/**
|
|
* This is the onCreate callback for the AJAX request made in GroupNodeTableUpdater.updateNodeList.
|
|
* It updates the interface to show that the request is loading.
|
|
* See http://www.prototypejs.org/api/ajax/options
|
|
*/
|
|
GroupNodeTableUpdater.updateNodeListLoading = function(nodeGroupName) {
|
|
|
|
var spanId = 'img_gr_' + nodeGroupName;
|
|
new Insertion.Bottom(spanId, GroupNodeTableUpdater.getLoadingSpanHTML(nodeGroupName));
|
|
|
|
var loadingSpanId = "nodegroup_" + nodeGroupName + "_loading";
|
|
new Effect.Appear(loadingSpanId);
|
|
}
|
|
|
|
/**
|
|
* This is the onFailure callback for the AJAX request made in GroupNodeTableUpdater.updateNodeList.
|
|
* It updates the interface to show that the request failed.
|
|
* See http://www.prototypejs.org/api/ajax/options
|
|
*/
|
|
GroupNodeTableUpdater.updateNodeListFailure = function(nodeGroupName) {
|
|
var spanId = 'img_gr_' + nodeGroupName;
|
|
new Insertion.Bottom(spanId, GroupNodeTableUpdater.getFailureSpanHTML(nodeGroupName));
|
|
|
|
var failureSpanId = "nodegroup_" + nodeGroupName + "_failure";
|
|
new Effect.Shake(failureSpanId);
|
|
}
|
|
|
|
/**
|
|
* Add table rows representing nodes to the table that represents the node group
|
|
* identified by the given name.
|
|
*/
|
|
GroupNodeTableUpdater.updateNodeList = function(nodeGroupName) {
|
|
|
|
var tableId = "div_" + nodeGroupName;
|
|
var imageId = tableId + '-im';
|
|
var expandSpanId = "img_gr_" + nodeGroupName;
|
|
|
|
var tableObj = $(tableId);
|
|
|
|
if(null == tableObj) {
|
|
alert('Error: section ' + tableId + ' not found.');
|
|
return false;
|
|
}
|
|
|
|
var imageTag = $(imageId);
|
|
var expandSpanObj = $(expandSpanId);
|
|
|
|
if(!tableObj.style.display || tableObj.style.display == 'inline') {// currently visible
|
|
|
|
tableObj.style.display = 'none';
|
|
imageTag.src = "../images/plus-sign.gif";
|
|
expandSpanObj.title = "Click to expand section";
|
|
|
|
} else { //currently invisible
|
|
imageTag.src = "../images/minus-sign.gif";
|
|
expandSpanObj.title = "Click to collapse section";
|
|
|
|
var target = "div_" + nodeGroupName;
|
|
var pars = 'nodeGroupName=' + nodeGroupName;
|
|
var URL = 'nodes_by_group.php';
|
|
|
|
// Check whether the table already exists and has already been updated?
|
|
|
|
//alert('About to call Ajax.Updater');
|
|
new Ajax.Updater(target, URL, {
|
|
method: 'post', parameters: pars,
|
|
onCreate: function() { GroupNodeTableUpdater.updateNodeListLoading(nodeGroupName) }, // Needs Prototype 1.5.1
|
|
onFailure: function() {GroupNodeTableUpdater.updateNodeListFailure(nodeGroupName) },
|
|
onComplete: function() {new Effect.Fade("nodegroup_" + nodeGroupName + "_loading")}
|
|
});
|
|
|
|
// the inner table is currently invisible
|
|
tableObj.style.display = 'inline';
|
|
//alert('Back from Ajax.Updater');
|
|
|
|
}
|
|
|
|
//return true;
|
|
|
|
|
|
|
|
//GroupNodeTableUpdater.toggleSection(nodeGroupName);
|
|
} |