#! /usr/bin/perl
# sor_lidar_sum - list monthly and yearly sums of data hour
# PREAMBLE
use DBI;
use CGI;
use strict;
# default connection parameters - all missing
my ($host_name, $user_name, $password) = (undef, undef, undef);
my ($db_name) = "eosldata";
# construct data source
my ($dsn) = "dbi:mysql:$db_name";
$dsn .= ":hostname=$host_name" if $host_name;
$dsn .= ";mysql_read_default_file=/users/eosl3/www/.my.cnf";
# connect to server
my (%attr) = ( RaiseError => 1 );
my ($dbh) = DBI->connect ($dsn, $user_name, $password, \%attr);
# PREAMBLE
# MAIN-BODY
my ($cgi) = new CGI;
# put out initial part of page
my ($title) = "SOR Na Lidar Data Catalog";
print $cgi->header ();
print $cgi->start_html (-title => $title);
print "
\n";
print $cgi->h1 ($title);
# parameters to look for in URL
my ($sort_column) = $cgi->param ("sort_column");
my ($year) = $cgi->param ("year");
my ($url);
print "
\n";
print "| \n";
$url = $cgi->script_name ();
$url .= sprintf ("?year=%s", "1998");
print $cgi->a ({-href => $url}, "1998" );
print " | \n";
$url = $cgi->script_name ();
$url .= sprintf ("?year=%s", "1999");
print $cgi->a ({-href => $url}, "1999" );
print " | \n";
$url = $cgi->script_name ();
$url .= sprintf ("?year=%s", "2000");
print $cgi->a ({-href => $url}, "2000" );
print " |
\n";
if (!$year)
{
$year = 1998;
}
display_table ($sort_column, $year);
print "
";
print "
Back to Data Catalog";
print "
\n";
print $cgi->end_html ();
# MAIN-BODY
$dbh->disconnect ();
#exit (0);
# DISPLAY_CELL
# display a value in a table cell; put non-breaking
# space in "empty" cells so borders show up
sub display_cell
{
my ($tag, $value, $encode) = @_;
$value = $cgi->escapeHTML ($value) if $encode;
$value = " " unless $value;
print "<$tag>$value$tag>\n";
}
# DISPLAY_CELL
# need the _X to make the listelim tag not a subset of the previous one
# DISPLAY_TABLE_X
sub display_table
{
my ($sort_column, $year) = @_;
my ($sth, $url);
# if sort column not specified, use first column
$sort_column = "1" unless $sort_column;
$sth = $dbh->prepare (qq{
SELECT * FROM sor_lidar_data_list WHERE YEAR(date) = $year ORDER BY $sort_column
});
$sth->execute ();
# display table with a border
print "\n";
# use column names for table headings; make each heading a link
# that sorts output on the corresponding column
print "\n";
# foreach my $col_name (@{$sth->{NAME}}[0,1,2,3,4,5])
# {
# $url = $cgi->script_name ();
# $url .= sprintf ("?sort_column=%s", $cgi->escape ($col_name));
# $url .= sprintf ("&year=%s", $cgi->escape ($year));
# display_cell ("TH", $cgi->a ({-href => $url}, $col_name), 0);
# }
$url = $cgi->script_name ();
$url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[0]));
$url .= sprintf ("&year=%s", $cgi->escape ($year));
display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "Date"), 0);
$url = $cgi->script_name ();
$url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[1]));
$url .= sprintf ("&year=%s", $cgi->escape ($year));
display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "Start Time"), 0);
$url = $cgi->script_name ();
$url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[2]));
$url .= sprintf ("&year=%s", $cgi->escape ($year));
display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "End Time"), 0);
$url = $cgi->script_name ();
$url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[3]));
$url .= sprintf ("&year=%s", $cgi->escape ($year));
display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "Actual Time"), 0);
$url = $cgi->script_name ();
$url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[4]));
$url .= sprintf ("&year=%s", $cgi->escape ($year));
display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "usable profiles"), 0);
$url = $cgi->script_name ();
$url .= sprintf ("?sort_column=%s", $cgi->escape (${$sth->{NAME}}[5]));
$url .= sprintf ("&year=%s", $cgi->escape ($year));
display_cell ("TH BGCOLOR=#FFFFFF", $cgi->a ({-href => $url}, "total profiles"), 0);
print "
\n";
# display table rows
while (my @ary = $sth->fetchrow_array ())
{
print "\n";
# foreach my $val (@ary[0,1,2,3,4,5])
# {
# display_cell ("TD", $val, 1);
# }
display_cell ("TD BGCOLOR=#FFFFFF align=right", $ary[0], 1);
display_cell ("TD BGCOLOR=#CCFFFF align=right", $ary[1], 1);
display_cell ("TD BGCOLOR=#CCFFFF align=right", $ary[2], 1);
display_cell ("TD BGCOLOR=#FFFFFF align=right", $ary[3], 1);
display_cell ("TD BGCOLOR=#FFFFCC align=right", $ary[4], 1);
display_cell ("TD BGCOLOR=#FFFFCC align=right", $ary[5], 1);
print "
\n";
}
$sth->finish ();
print "
\n";
}
# DISPLAY_TABLE_X