Apache-VMonitor
view release on metacpan or search on metacpan
lib/Apache/VMonitor.pm view on Meta::CPAN
my @sects = qw(system apache procs fs_usage mount);
$cfg->{$_} && push @items, $_ for @sects;
push @items, qw(nav_bar);
$cfg->{$_} && push @items, $_ for qw(verbose);
}
push @items, qw(end_html);
for my $item (@items) {
my $tmpl_block = "tmpl_$item";
my $data_sub = $self->can("data_$item");
my $data = $data_sub ? $self->$data_sub : {};
if (MP2 || $] >= 5.008) {
$tt->process($tmpl_block, $data) or warn $tt->error();
}
else {
# mp1 && perl < 5.008 can't handle the above
my $x;
$tt->process($tmpl_block, $data, \$x) or warn $tt->error();
print $x;
}
}
}
### start_html ###
sub data_start_html {
my $self = shift;
# return {};
my $url = $self->{url};
my $cfg = $self->{cfg};
my @rates = map {
[$_, ($cfg->{refresh} == $_ ? '' : fixup_url($url, 'refresh', $_)) ];
} qw(0 1 5 10 20 30 60);
return {
rate => $cfg->{refresh},
rates => \@rates,
};
}
sub tmpl_start_html {
return \ <<'EOT';
<html>
<head>
<title>Apache::VMonitor</title>
<style type="text/css">
body {
color: #000;
background-color: #fff;
border: 0px;
padding: 0px 0px 0px 0px;
margin: 5px 5px 5px 5px;
font-size: 0.8em;
}
p.hdr {
background-color: #ddd;
border: 2px outset;
padding: 3px;
width: 99%;
}
span.item_even {
background-color: #dddddd;
color: #000000;
}
span.item_odd {
background-color: #ffffff;
color: #000000;
}
span.normal {
color: #000000;
}
span.warn {
color: #ff99cc;
}
span.alert {
color: #ff0000;
}
</style>
</head>
<body bgcolor="white">
<b><font size=+1 color="#339966">Apache::VMonitor</font></b>
Refresh rate:
[%-
IF rates.size;
FOREACH item = rates;
IF item.1;
"<a href=\"${item.1}\">[ ${item.0} ]</a> ";
ELSE;
"[ ${item.0} ] ";
END;
END;
END;
-%]
<br>
EOT
}
### end_html ###
# not needed
sub data_end_html { {} }
sub tmpl_end_html {
return \ <<'EOT';
</body>
</html>
EOT
}
### nav_bar ###
sub data_nav_bar {
my $self = shift;
my $url = $self->{url};
( run in 1.857 second using v1.01-cache-2.11-cpan-d8267643d1d )