Index: /trunk/web/addons/toga/footer.php
===================================================================
--- /trunk/web/addons/toga/footer.php (revision 113)
+++ /trunk/web/addons/toga/footer.php (revision 113)
@@ -0,0 +1,21 @@
+prepare();
+$tpl->assign("webfrontend-version",$version["webfrontend"]);
+$tpl->assign("togaweb-version", "0.1");
+$tpl->assign("togaarch-version", "0.1");
+$tpl->assign("togaplug-version", "0.1");
+
+if ($version["gmetad"]) {
+ $tpl->assign("webbackend-component", "gmetad");
+ $tpl->assign("webbackend-version",$version["gmetad"]);
+}
+elseif ($version["gmond"]) {
+ $tpl->assign("webbackend-component", "gmond");
+ $tpl->assign("webbackend-version", $version["gmond"]);
+}
+
+$tpl->assign("parsetime", sprintf("%.4f", $parsetime) . "s");
+
+$tpl->printToScreen();
+?>
Index: /trunk/web/addons/toga/header.php
===================================================================
--- /trunk/web/addons/toga/header.php (revision 113)
+++ /trunk/web/addons/toga/header.php (revision 113)
@@ -0,0 +1,151 @@
+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";
+ $node_menu .= "--Choose a Source\n";
+ ksort($grid);
+ foreach( $grid as $k => $v )
+ {
+ if ($k==$self) continue;
+ if ($v[GRID])
+ {
+ $url = $v[AUTHORITY];
+ $node_menu .=" $k $meta_designator\n";
+ }
+ else
+ {
+ $url = rawurlencode($k);
+ $node_menu .=" $k\n";
+ }
+ }
+ $node_menu .= " \n";
+ }
+
+$tpl->assign("node_menu", $node_menu);
+
+# 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();
+
+
+
+?>
Index: /trunk/web/addons/toga/index.php
===================================================================
--- /trunk/web/addons/toga/index.php (revision 113)
+++ /trunk/web/addons/toga/index.php (revision 113)
@@ -0,0 +1,20 @@
+
Index: /trunk/web/addons/toga/overview.php
===================================================================
--- /trunk/web/addons/toga/overview.php (revision 113)
+++ /trunk/web/addons/toga/overview.php (revision 113)
@@ -0,0 +1,2 @@
+
Index: /trunk/web/addons/toga/styles.css
===================================================================
--- /trunk/web/addons/toga/styles.css (revision 113)
+++ /trunk/web/addons/toga/styles.css (revision 113)
@@ -0,0 +1,186 @@
+/* The Ganglia Web-frontend Cascading Style Sheet. */
+
+A:link
+{
+ color: rgb(32,41,204);
+ text-decoration: none;
+}
+
+A:visited
+{
+ color: rgb(51,51,204);
+ text-decoration: none;
+}
+
+A:active
+{
+ color: rgb(204,205,226);
+ text-decoration: none;
+}
+
+h1
+{
+ font: bold 18pt/22pt helvetica, sans-serif;
+ color: rgb(12,17,142);
+ margin-bottom: 2mm;
+}
+
+h2
+{
+ font: bold 14pt/16pt helvetica;
+ color: rgb(12,17,142);
+ margin-left: 0.1em;
+ margin-right: 0.1em;
+}
+
+h3
+{
+ font: bold 12pt/15pt helvetica, sans-serif;
+ text-align: left;
+ margin-left: 3mm;
+ color: rgb(247,142,14);
+}
+
+h4
+{
+ font: bold 12pt/14pt helvetica;
+ color: rgb(12,17,142);
+ margin-left: 0.1em;
+ margin-right: 0.1em;
+}
+
+small
+{
+ font: 10pt/12pt arial, helvetica, sans-serif;
+}
+
+td.title
+{
+ font-size: larger;
+ font-weight: normal;
+ background: rgb(238,238,238);
+ text-align: center;
+}
+
+td.metric
+{
+ background: rgb(217,218,224);
+ padding: 2mm;
+}
+
+td.cluster
+{
+ background: rgb(238,238,238);
+ /* padding: 1mm; */
+}
+
+td.grid
+{
+ vertical-align: top;
+ background: rgb(204,204,255);
+}
+
+td.self
+{
+ vertical-align: top;
+ text-align: center;
+ background: rgb(255,153,153);
+}
+
+td.even
+{
+ background: rgb(201,205,234);
+}
+
+td.odd
+{
+ background: rgb(217,218,224);
+}
+
+td.small
+{
+ font: 10pt/12pt times, serif;
+}
+
+td.L1
+{
+ background: rgb(184,249,119);
+}
+
+td.L2
+{
+ background: rgb(213,249,119);
+}
+
+td.L3
+{
+ background: rgb(228,249,119);
+}
+
+td.L4
+{
+ background: rgb(245,249,119);
+}
+
+td.L5
+{
+ background: rgb(249,239,119);
+}
+
+td.L6
+{
+ background: rgb(249,219,119);
+}
+
+td.L7
+{
+ background: rgb(249,202,119);
+}
+
+td.L8
+{
+ background: rgb(249,182,119);
+}
+
+td.L9
+{
+ background: rgb(249,152,119);
+}
+
+td.L10
+{
+ background: rgb(249,124,119);
+}
+
+td.down
+{
+ background: rgb(255,153,153);
+}
+
+th
+{
+ font: bold 12pt/14pt helvetica, sans-serif;
+ color: rgb(238,238,238);
+ background: rgb(80,80,80);
+ border: thin solid rgb(47,47,47);
+}
+
+td em
+{
+ font: 8pt/10pt helvetica, sans-serif;
+ color: rgb(31,31,112);
+ font-style: normal;
+}
+
+td strong
+{
+ color: rgb(31,31,112);
+ font-style: normal;
+}
+
+.footer
+{
+ font: 10pt/12pt helvetica, sans-serif;
+ color: rgb(100,100,100);
+}
+
Index: /trunk/web/addons/toga/templates/footer.tpl
===================================================================
--- /trunk/web/addons/toga/templates/footer.tpl (revision 113)
+++ /trunk/web/addons/toga/templates/footer.tpl (revision 113)
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+