prepare();
# Maintain our path through the grid tree.
$me = $self . "@" . $grid[$self][AUTHORITY];
if ($initgrid)
{
$gridstack = array();
$gridstack[] = $me;
}
else if ($gridwalk=="fwd")
{
# push our info on gridstack, format is "name@url>name2@url".
if (end($gridstack) != $me)
{
$gridstack[] = $me;
}
}
else if ($gridwalk=="back")
{
# pop a single grid off stack.
if (end($gridstack) != $me)
{
array_pop($gridstack);
}
}
$gridstack_str = join(">", $gridstack);
$gridstack_url = rawurlencode($gridstack_str);
if ($initgrid or $gridwalk)
{
# Use cookie so we dont have to pass gridstack around within this site.
# Cookie values are automatically urlencoded. Expires in a day.
setcookie("gs", $gridstack_str, time() + 86400);
}
# Invariant: back pointer is second-to-last element of gridstack. Grid stack never
# has duplicate entries.
list($parentgrid, $parentlink) = explode("@", $gridstack[count($gridstack)-2]);
# Setup a redirect to a remote server if you choose a grid from pulldown menu. Tell
# destination server that we're walking foward in the grid tree.
if (strstr($clustername, "http://"))
{
$tpl->assign("refresh", "0");
$tpl->assign("redirect", ";URL=$clustername?gw=fwd&gs=$gridstack_url");
echo "
Redirecting, please wait...
";
$tpl->printToScreen();
exit;
}
$tpl->assign("refresh", $default_refresh);
$tpl->assign( "date", date("r"));
$tpl->assign( "page_title", $title );
# The page to go to when "Get Fresh Data" is pressed.
if (isset($page))
$tpl->assign("page",$page);
else
$tpl->assign("page","./");
# Templated Logo image
$tpl->assign("images","./templates/$template_name/images");
#
# Used when making graphs via graph.php. Included in most URLs
#
$sort_url=rawurlencode($sort);
$get_metric_string = "m=$metric&r=$range&s=$sort_url&hc=$hostcols";
if ($jobrange and $jobstart)
$get_metric_string .= "&jr=$jobrange&js=$jobstart";
# Set the Alternate view link.
$cluster_url=rawurlencode($clustername);
$node_url=rawurlencode($hostname);
# Make some information available to templates.
$tpl->assign("cluster_url", $cluster_url);
# Build the node_menu
$node_menu = "";
if ($parentgrid)
{
$node_menu .= "".
"$parentgrid $meta_designator ";
$node_menu .= ">\n";
}
# Show grid.
$mygrid = ($self == "unspecified") ? "" : $self;
$node_menu .= "$mygrid $meta_designator ";
$node_menu .= ">\n";
if ($physical)
$node_menu .= hiddenvar("p", $physical);
if ( $clustername )
{
$url = rawurlencode($clustername);
$node_menu .= "$clustername ";
//$node_menu .= ">\n";
$node_menu .= hiddenvar("c", $clustername);
}
else
{
# No cluster has been specified, so drop in a list
$node_menu .= "\n";
}
$tpl->assign("node_menu", $node_menu);
$tpl->assign("cluster", $clustername);
# Make sure that no data is cached..
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); # Date in the past
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); # always modified
header ("Cache-Control: no-cache, must-revalidate"); # HTTP/1.1
header ("Pragma: no-cache"); # HTTP/1.0
$tpl->printToScreen();
?>