Changeset 1347

Show
Ignore:
Timestamp:
10/23/07 22:55:06 (4 years ago)
Author:
jo
Message:

The domain template should now work.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • people/jo/multilevel-groups-2/server/Munin.pm.in

    r1346 r1347  
    22# -*- perl -*- 
    33# 
    4 # Copyright (C) 2003-2004 Jimmy Olsen, Audun Ytterdal 
     4# Copyright (C) 2003-2007 Jimmy Olsen, Audun Ytterdal 
    55# 
    66# This program is free software; you can redistribute it and/or 
  • people/jo/multilevel-groups-2/server/munin-domainview.tmpl.in

    r860 r1347  
    44<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
    55<head> 
    6   <link rel="stylesheet" href="../style.css" type="text/css" />  
     6  <link rel="stylesheet" href="<TMPL_VAR NAME="CSSPATH">" type="text/css" />  
    77  <meta http-equiv="refresh" content="300" /> 
    8   <title>Munin :: <TMPL_VAR NAME="DOMAIN"></title> 
     8  <title>Munin <TMPL_LOOP NAME="PATH">:: <TMPL_VAR ESCAPE="HTML" NAME="NAME"></TMPL_LOOP></title> 
    99  <meta http-equiv="content-type" content="application/xhtml+xml; charset=iso-8859-1" /> 
    1010  <meta name="author" content="Auto-generated by Munin" /> 
     
    1515    <td rowspan="2"><div class="logo">&nbsp;</div></td> 
    1616    <td valign="top"> 
    17          <h2><a href="../index.html">Overview</a> :: <TMPL_VAR ESCAPE="HTML" NAME="DOMAIN"></h2
     17        <h2><TMPL_LOOP NAME="PATH"><TMPL_IF NAME="PATH"><a href="<TMPL_VAR NAME="PATH">"></TMPL_IF><TMPL_VAR NAME="NAME"><TMPL_IF NAME="PATH"></a> :: </TMPL_IF></TMPL_LOOP></title
    1818    </td>     
    1919  </tr> 
     
    2121  <tr> 
    2222    <td valign="top"> 
    23       <h2><TMPL_VAR ESCAPE="HTML" NAME="DOMAIN"> :: [ <a href="comparison-day.html">day</a> <a href="comparison-week.html">week</a> <a href="comparison-month.html">month</a> <a href="comparison-year.html">year</a> ]</h2> 
     23      <h2><TMPL_VAR ESCAPE="HTML" NAME="NAME"> :: [ <a href="comparison-day.html">day</a> <a href="comparison-week.html">week</a> <a href="comparison-month.html">month</a> <a href="comparison-year.html">year</a> ]</h2> 
    2424    </td> 
    2525  </tr></TMPL_IF> 
     
    3030   <td class="linkbox"> 
    3131 <ul>    
    32   <TMPL_LOOP NAME="NODES"> 
    33   <li><span class="domain"><a href="<TMPL_VAR NAME="NODE">.html"><TMPL_VAR ESCAPE="HTML" NAME="NODE"></a></span> 
     32  <TMPL_LOOP NAME="GROUPS"> 
     33      <li><span class="domain"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 
    3434      <ul> 
    35         <TMPL_LOOP NAME="CATEGORIES"> 
    36       <li><span class="domain"><a href="<TMPL_VAR NAME="NODE">.html#<TMPL_VAR NAME="NAME">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 
     35          <TMPL_IF NAME="NCATEGORIES"><TMPL_LOOP NAME="CATEGORIES"> 
     36              <li><span class="host"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 
     37              <ul> 
     38                  <TMPL_LOOP NAME="SERVICES"> 
     39                      <li><span class="service"><a <TMPL_IF NAME="STATE_WARNING">class="warn"</TMPL_IF> <TMPL_IF NAME="STATE_CRITICAL">class="crit"</TMPL_IF> href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span></li> 
     40                  </TMPL_LOOP>  
     41              </ul> 
     42              </li> 
     43          </TMPL_LOOP></TMPL_IF> 
     44      <TMPL_IF NAME="NGROUPS"> 
     45  <TMPL_LOOP NAME="GROUPS"> 
     46      <li><span class="domain"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 
    3747      <ul> 
    38         <TMPL_LOOP NAME="SERVICES"> 
    39         <li><span class="host"><a <TMPL_IF NAME="STATE_WARNING">class="warn"</TMPL_IF> <TMPL_IF NAME="STATE_CRITICAL">class="crit"</TMPL_IF> href="<TMPL_VAR NAME="NODE">-<TMPL_VAR NAME="SERVICE">.html"><TMPL_VAR ESCAPE="HTML" NAME="LABEL"></a></span></li> 
    40         </TMPL_LOOP>  
     48          <TMPL_IF NAME="NCATEGORIES"><TMPL_LOOP NAME="CATEGORIES"> 
     49              <li><span class="host"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 
     50              <ul> 
     51                  <TMPL_LOOP NAME="SERVICES"> 
     52                      <li><span class="service"><a <TMPL_IF NAME="STATE_WARNING">class="warn"</TMPL_IF> <TMPL_IF NAME="STATE_CRITICAL">class="crit"</TMPL_IF> href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span></li> 
     53                  </TMPL_LOOP>  
     54              </ul> 
     55              </li> 
     56          </TMPL_LOOP></TMPL_IF> 
     57      <TMPL_IF NAME="NGROUPS"> 
     58  <TMPL_LOOP NAME="GROUPS"> 
     59      <li><span class="domain"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 
     60      <ul> 
     61          <TMPL_IF NAME="NCATEGORIES"><TMPL_LOOP NAME="CATEGORIES"> 
     62              <li><span class="host"><a href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span> 
     63              <ul> 
     64                  <TMPL_LOOP NAME="SERVICES"> 
     65                      <li><span class="service"><a <TMPL_IF NAME="STATE_WARNING">class="warn"</TMPL_IF> <TMPL_IF NAME="STATE_CRITICAL">class="crit"</TMPL_IF> href="<TMPL_VAR NAME="URLX">"><TMPL_VAR ESCAPE="HTML" NAME="NAME"></a></span></li> 
     66                  </TMPL_LOOP>  
     67              </ul> 
     68              </li> 
     69          </TMPL_LOOP></TMPL_IF> 
     70      <TMPL_IF NAME="NGROUPS"> 
     71      </TMPL_IF> 
    4172      </ul> 
    42    </li> 
    43    </TMPL_LOOP> 
     73      </li> 
     74  </TMPL_LOOP> 
     75      </TMPL_IF> 
    4476      </ul> 
    45    </li> 
    46    </TMPL_LOOP> 
     77      </li> 
     78  </TMPL_LOOP> 
     79      </TMPL_IF> 
     80      </ul> 
     81      </li> 
     82  </TMPL_LOOP> 
    4783 </ul> 
    4884 </td></tr> 
     
    5086 <tr> 
    5187   <td class="linkbox"> 
    52  <TMPL_LOOP NAME="DOMAINS"> 
    53 <a href="../<TMPL_VAR NAME="DOMAIN">/index.html"><TMPL_VAR NAME="DOMAIN"></a> : 
    54     </TMPL_LOOP> 
     88   <TMPL_VAR NAME="PARENT"> :<TMPL_LOOP NAME="PEERS">: <TMPL_IF NAME="LINK"><a href="<TMPL_VAR NAME="LINK">"></TMPL_IF><TMPL_VAR NAME="NAME"><TMPL_IF NAME="LINK"></a></TMPL_IF></a> </TMPL_LOOP> 
    5589 </td> 
    5690 </tr> 
  • people/jo/multilevel-groups-2/server/munin-html.in

    r1346 r1347  
    22# -*- perl -*- 
    33# 
    4 # Copyright (C) 2002-2006 Jimmy Olsen, Audun Ytterdal 
     4# Copyright (C) 2002-2007 Jimmy Olsen, Audun Ytterdal 
    55# 
    66# This program is free software; you can redistribute it and/or 
     
    315315} 
    316316 
    317 print Dumper ($groups); 
    318  
    319317# Draw main index 
    320318$template->param(GROUPS    => $groups, 
     
    325323print FILE $template->output; 
    326324close FILE; 
     325 
     326generate_group_templates ($groups); 
    327327 
    328328exit 0; 
     
    636636            unshift @$ret, { "name" => munin_get_node_name ($parent->{$peer}), "link" => undef }; 
    637637        } else { 
    638             unshift @$ret, { "name" => munin_get_node_name ($parent->{$peer}), "link" => "$peer.html" }; 
     638            if (defined $hash->{'graph_title'}) { 
     639                unshift @$ret, { "name" => munin_get_node_name ($parent->{$peer}), "link" => "$peer.html" }; 
     640            } else { 
     641                unshift @$ret, { "name" => munin_get_node_name ($parent->{$peer}), "link" => "../$peer/index.html" }; 
     642            } 
    639643        } 
    640644    } 
     
    649653    my $cattrav = {}; 
    650654    my $cats    = []; 
     655    my $path    = []; 
     656    my $rpath   = undef; 
     657    my $ret     = {}; 
     658    my $csspath; 
    651659 
    652660    foreach my $child (@{munin_get_children ($hash)}) { 
    653661        if (defined $child->{"graph_title"}) { 
    654             push @$graphs, { "name" => munin_get_node_name ($child) }; 
    655             $cattrav->{ lc munin_get ($child, "graph_category", "other") } = 1; 
     662            my $childname = munin_get_node_name ($child); 
     663            my $childnode = {}; 
     664            push @$graphs, { "name" => $childname }; 
     665            $childnode->{'name'} = $child->{"graph_title"}; 
     666            $childnode->{'url'} = $base . $childname.".html"; 
     667            for (my $shrinkpath = $childnode->{'url'}, my $counter = 0; $shrinkpath; $shrinkpath =~ s/^[^\/]+\/?//, $counter++) { 
     668                $childnode->{'url'.$counter} = $shrinkpath; 
     669            } 
     670            push @{$cattrav->{ lc munin_get ($child, "graph_category", "other") }}, $childnode; 
    656671        } elsif (ref ($child) eq "HASH") { 
    657672            push @$groups, get_group_tree ($child, $base . munin_get_node_name ($child) . "/"); 
     
    660675 
    661676    # We need the categories in another format. 
    662     @$cats = map { { "name" => $_, "url" => $base."index.html#".$_, "state_".lc munin_category_status ($hash, $limits, $_, 1) => 1 } } sort keys %$cattrav; 
    663  
    664     return {  
     677    foreach my $cat (sort keys %$cattrav) { 
     678        my $obj = {}; 
     679        $obj->{'name'} = $cat; 
     680        $obj->{'url'} = $base."index.html#".$cat; 
     681        $obj->{'services'} = $cattrav->{$cat}; 
     682        $obj->{'state_'.lc munin_category_status ($hash, $limits, $cat, 1)} = 1; 
     683        for (my $shrinkpath = $obj->{'url'}, my $counter = 0; $shrinkpath =~ /\//; $shrinkpath =~ s/^[^\/]+\/*//, $counter++) { 
     684            print "DEBUG: Left is $shrinkpath\n"; 
     685            $obj->{'url'.$counter} = $shrinkpath; 
     686        } 
     687        push @$cats, $obj; 
     688    } 
     689 
     690    # ...and we need a couple of paths available. 
     691    @$path = reverse map { { "name" => $_, "path" => (defined $rpath?($rpath.="../")."index.html":($rpath="")) } } reverse ( "Overview", split ('\/', $base) ); 
     692    ($csspath = $path->[0]->{'path'}) =~ s/index.html$/style.css/; 
     693 
     694    $ret = {  
    665695        "name"        => munin_get_node_name ($hash),  
    666696        "url"         => $base . "index.html",  
     697        "path"        => $path, 
     698        "depth"       => scalar(split("/",$base."index.html"))-1, 
     699        "filename"    => munin_get_html_filename ($hash), 
     700        "csspath"     => $csspath, 
    667701        "groups"      => $groups,  
    668702        "graphs"      => $graphs, 
     
    671705        "ngraphs"     => scalar (@$graphs), 
    672706        "ncategories" => scalar (@$cats), 
     707        "peers"       => get_peer_nodes ($hash), 
    673708    }; 
     709    print "DEBUG: Url for ", $ret->{'name'}, "is ", $ret->{'url'}, "\n"; 
     710    if ($ret->{'url'} ne "/index.html") { 
     711        for (my $shrinkpath = $ret->{'url'}, my $counter = 0; $shrinkpath =~ /\//; $shrinkpath =~ s/^[^\/]+\/*//, $counter++) { 
     712            $ret->{'url'.$counter} = $shrinkpath; 
     713        } 
     714    } 
     715 
     716    return $ret; 
     717} 
     718 
     719sub generate_group_templates { 
     720    my $arr = shift || return undef; 
     721    return undef unless ref ($arr) eq "ARRAY"; 
     722 
     723    print Dumper ($arr); 
     724     
     725    foreach my $key (@$arr) { 
     726        if (defined $key and ref ($key) eq "HASH") { 
     727            if (defined $key->{'ngroups'} and $key->{'ngroups'}) { 
     728                print "DEBUG: *** ".$key->{'name'}."\n"; 
     729                generate_group_templates ($key->{'groups'}); 
     730 
     731                my $grouptemplate = HTML::Template->new( 
     732                    filename => munin_get ($config, "tmpldir", "")."/munin-domainview.tmpl", 
     733                    die_on_bad_params => 0, 
     734                    loop_context_vars => 1, 
     735                    filter => sub { my $ref=shift; $$ref =~ s/URLX/URL$key->{'depth'}/g; } 
     736                ); 
     737 
     738                $grouptemplate->param ( 
     739                    GROUPS  => $key->{'groups'}, 
     740                    PATH    => $key->{'path'}, 
     741                    CSSPATH => $key->{'csspath'}, 
     742                    PEERS   => $key->{'peers'}, 
     743                    PARENT  => $key->{'path'}->[-2]->{'name'} 
     744                ); 
     745                my $filename = $key->{'filename'}; 
     746                open (FILE, ">$filename") or 
     747                    die "Cannot open $filename for writing: $!"; 
     748                print FILE $grouptemplate->output; 
     749                close FILE; 
     750            } 
     751        } 
     752    } 
    674753} 
    675754 
  • people/jo/multilevel-groups-2/server/style.css

    r860 r1347  
    3838 } 
    3939 
     40.service {  
     41  font-size: x-small; 
     42  font-weight: bold; 
     43 } 
     44 
    4045.center {  
    4146  text-align: center;