2008-10-23 17:54:02 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
// Gets the nodes and groups for group/node js widget
|
|
|
|
|
|
|
|
$TOPDIR = '..';
|
|
|
|
require_once "$TOPDIR/lib/functions.php";
|
2008-10-29 13:57:19 +00:00
|
|
|
require_once "$TOPDIR/jq/jsonwrapper.php";
|
2008-10-23 17:54:02 +00:00
|
|
|
if (isset($_GET['id'])) {
|
|
|
|
$id = $_GET['id'];
|
|
|
|
}
|
|
|
|
if ($id == "0") {
|
|
|
|
$id = '/.*';
|
|
|
|
} else {
|
|
|
|
$id=preg_replace('/^,/','',$id);
|
|
|
|
}
|
|
|
|
$rvals=docmd('extnoderange',$id,array('subgroups'));
|
|
|
|
$parents=array();
|
|
|
|
$root=1;
|
|
|
|
if ($id == '/.*') {
|
|
|
|
$id=',';
|
|
|
|
} else {
|
|
|
|
$parents=split("@",$id);
|
|
|
|
$id=",$id@";
|
|
|
|
$root=0;
|
|
|
|
}
|
|
|
|
//unset($rvals->xcatresponse->serverdone[0]);
|
|
|
|
$numsubgroups=count($rvals->xcatresponse->intersectinggroups);
|
|
|
|
$numnodes=count($rvals->xcatresponse->node);
|
|
|
|
$jdata=array();
|
2009-04-02 17:08:12 +00:00
|
|
|
if ($numnodes >= $numsubgroups || $root==1) { #If there are few enough subgroups to be helpful filters, add them in
|
2008-10-23 17:54:02 +00:00
|
|
|
foreach ($rvals->xcatresponse->intersectinggroups as $group) {
|
|
|
|
if (! in_array("$group",$parents)) {
|
|
|
|
$jdata[]= array("data"=>"$group",
|
|
|
|
"attributes"=>array("id"=>"$id$group",
|
|
|
|
"rel"=>'group'),
|
|
|
|
"state"=>'closed');
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
} #If there were more groups than nodes, leave the signal to noise ratio down
|
|
|
|
if ($root==0) {
|
|
|
|
foreach ($rvals->xcatresponse->node as $node) {
|
|
|
|
$jdata[] = array("data"=>"$node",
|
|
|
|
"attributes"=>array("id"=>",$node",
|
|
|
|
"rel"=>'node'));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
# header('Content-type: text/html');
|
|
|
|
echo json_encode($jdata);
|
|
|
|
?>
|
|
|
|
|