hotsanic |
Subversion Repositories: |
Compare with Previous - Blame - Download
#
# $Id: HotSaNIChtml.pm,v 1.8 2004/06/03 00:21:46 bernisys Exp $
#
package HotSaNIChtml;
($VERSION = '$Revision: 1.8 $') =~ s/.*(\d+\.\d+).*/$1/;
######################################################################
#
# insert complete HTML header
#
sub create_header {
my $MODNAME=shift || "";
my $REFRESH=shift || 0;
my $WHICH=shift || "";
my %STYLE=@_;
$STYLE{BGCOLOR}="E0E0E0" if !defined $STYLE{BGCOLOR};
$STYLE{TEXT}="000000" if !defined $STYLE{TEXT};
$STYLE{LINK}="000080" if !defined $STYLE{LINK};
$STYLE{VLINK}="800080" if !defined $STYLE{VLINK};
$STYLE{ALINK}="008000" if !defined $STYLE{ALINK};
$STYLE{BACKGROUND}="" if !defined $STYLE{BACKGROUND};
if ($STYLE{BACKGROUND} ne "") {
if ($MODNAME ne "") { $STYLE{BACKGROUND}="../$STYLE{BACKGROUND}"; }
$STYLE{BACKGROUND}=" background=\"$STYLE{BACKGROUND}\"";
}
my $INFO=$MODNAME;
if ($INFO eq "") {$INFO = "global overview page"; }
if ($WHICH ne "") {$WHICH = " - $WHICH"; }
my @head=(
"<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2//EN\">",
"",
"<html>",
" <head>",
" <meta http-equiv=\"content-type\" content=\"text/html; charset=iso-8859-1\">",
);
if ($REFRESH > 0) {
push @head,(
" <meta http-equiv=\"refresh\" content=\"$REFRESH\">",
" <meta http-equiv=\"pragma\" content=\"no-cache\">"
);
}
push @head,(
# " <meta name=\"author\" content=\"bernd pissny\">",
" <meta name=\"generator\" content=\"HotSaNIC\">",
" <meta name=\"keywords\" content=\"HotSaNIC, stats, statistics\">",
" <meta name=\"robots\" content=\"nofollow\">",
# " <meta name=\"date\" content=\"2001-12-15T08:49:37+00:00\">",
"",
" <meta name=\"DC.Title\" content=\"HotSaNIC stats - $INFO$WHICH\">",
" <meta name=\"DC.Format\" content=\"text/html\">",
" <meta name=\"DC.Rights\" content=\"GPL\">",
# " <meta name=\"DC.Date\" content=\"2001-12-15\">",
"",
" <title>HotSaNIC stats - $INFO$WHICH</title>",
" </head>",
"",
" <body$STYLE{BACKGROUND} bgcolor=#$STYLE{BGCOLOR} text=#$STYLE{TEXT} link=#$STYLE{LINK} vlink=#$STYLE{VLINK} alink=#$STYLE{ALINK}>",
);
if ($MODNAME ne "") { push @head," <h2>$INFO$WHICH</h2>"; }
return join("\n",@head)."\n";
}
######################################################################
#
# insert complete HTML footer
#
sub create_footer {
my $MODNAME=shift || "";
my $PATH=".";
if ($MODNAME ne "") { $PATH=".."; }
my @foot=(
" <center>",
" <hr>",
" <br>",
" <a href=\"http://hotsanic.sourceforge.net\"><img src=\"$PATH/HotSaNIC.gif\" width=97 height=34 alt=\"HotSaNIC\" border=0></a> <a href=\"http://ee-staff.ethz.ch/~oetiker/webtools/rrdtool/\"><img src=\"$PATH/rrdtool.gif\" width=120 height=34 alt=\"rrdtool\" border=0></a>",
" <br>",
" HTML overview to System and Network Information Center",
" </center>",
" </body>",
"</html>"
);
return join("\n",@foot)."\n";
}
######################################################################
#
# insert complete table entry for a module time index page
#
sub create_table_entry {
my $IMAGEFORMAT=shift || "";
my $PAGENAME=shift || "";
my $TIME=shift || "";
my $NAME=shift || "";
my $DESCRIPTION=shift || "";
my $COMPACT=shift || 1;
if ($DESCRIPTION ne "") { $DESCRIPTION="<br><br>$DESCRIPTION"; }
my $LV1=" " x 8;
my $LV2=" " x 10;
my $LV3=" " x 12;
my @items=("$LV1<tr>");
my @block=(
"$LV2<td>",
"<a href=\"$PAGENAME.html\"><img src=\"$PAGENAME-$TIME.$IMAGEFORMAT\"></a>",
"</td>"
);
if ($COMPACT != 1) { push @items,$block[0],$LV3.$block[1],$LV2.$block[2]; }
else { push @items,join ("",@block); }
@block=(
"$LV2<td valign=top>",
"<a href=\"$PAGENAME.html\"><font size=\"+2\">$NAME</font></a>$DESCRIPTION",
"</td>",
);
if ($COMPACT != 1) { push @items,$block[0],$LV3.$block[1],$LV2.$block[2]; }
else { push @items,join ("",@block); }
push @items,"$LV1</tr>";
return join("\n",@items)."\n";
}
######################################################################
#
# insert complete table header for the overview page
#
sub create_overview_table_header {
my $MODNAME=shift || "";
my $TIMES=shift || "";
my $COLS=shift || 1;
my $LV1=" " x 10;
my $LV2=" " x 12;
my @items=("$COLS","0##$LV1<td colspan=".2*$COLS." align=center> <font size=\"+3\">$MODNAME</font><br>");
foreach $time (split /\s+/, $TIMES) {
push @items,"0##$LV2<a href=\"$MODNAME/$time.html\">$time</a>";
}
push @items,("0##$LV2<br>","0##$LV2<hr width=\"90%\">","0##$LV1</td>");
return join("\n",@items)."\n";
}
######################################################################
#
# insert complete table entry for the overview page
#
sub create_overview_table_entry {
my $MODNAME=shift || "";
my $IMAGEFORMAT=shift || "";
my $NUM=shift || 1;
my $PAGENAME=shift || "";
my $NAME=shift || "";
my $DESCRIPTION=shift || "";
my $COMPACT=shift || 1;
if ($DESCRIPTION ne "") { $DESCRIPTION="<br><font size=\"-2\">$DESCRIPTION</font>"; }
my $LV1=" " x 10;
my $LV2=" " x 12;
my @items=();
my @block=(
"$NUM##$LV1<td>",
"<a href=\"$MODNAME/$PAGENAME.html\"><img src=\"$MODNAME/thumb-$PAGENAME.$IMAGEFORMAT\"></a>",
"</td>");
if ($COMPACT != 1) { push @items,$block[0],"$NUM##$LV2".$block[1],"$NUM##$LV1".$block[2]; }
else { push @items,join ("",@block); }
@block=(
"$NUM##$LV1<td valign=top>",
"<a href=\"$MODNAME/$PAGENAME.html\">$NAME</a>$DESCRIPTION",
"</td>"
);
if ($COMPACT != 1) { push @items,$block[0],"$NUM##$LV2".$block[1],"$NUM##$LV1".$block[2]; }
else { push @items,join ("",@block); }
return join("\n",@items)."\n";
}
######################################################################
#
# insert a number of empty table entries for the overview page
#
# $num row number
#
# $count how many cols shall be added
#
sub create_overview_table_entry_empty {
my $NUM=shift || 1;
my $COUNT=shift || 0;
my $LV1=" " x 10;
my $value="";
if ($COUNT > 0) {
if ($NUM >= 0) { $value="$NUM##$LV1<td></td><td></td>\n" x $COUNT; }
else { $value="$LV1<td></td><td></td>\n" x $COUNT; }
}
return $value;
}
######################################################################
#
# generate a .html file containing the detailed device overview
#
# HotSaNIChtml::make_device_page($MODNAME,$WEBDIR,$IMAGEFORMAT,$file,description,@times);
#
# $MODNAME name of the module
#
# $WEBDIR the directory where the file shall be written
#
# $IMAGEFORMAT gif or png
#
# $file name of the file (without ".html" suffix)
#
# $description description tag that will be included on top of the page
#
# @times array containing the timespans for which diagrams shall
# be inseerted
#
sub make_device_page {
my $MODNAME=shift;
my $WEBDIR=shift;
my $IMAGEFORMAT=shift;
my $file=shift;
my $description=shift;
open (FILE,">$WEBDIR/$file.html");
print FILE HotSaNIChtml::create_header($MODNAME,$REFRESH,$description);
foreach my $time (@_) { print FILE "<img src=\"$file-$time.$IMAGEFORMAT\">\n"; }
print FILE HotSaNIChtml::create_footer($MODNAME);
close FILE;
}
1;