--- db2gantt.cgi 2002/09/13 13:57:32 1.7 +++ db2gantt.cgi 2002/09/13 14:34:02 1.9 @@ -25,6 +25,7 @@ 'Completed/Errors' => '255,128,0', 'Completed/Failure' => '128,0,128', 'Mount Request' => '128,128,255', + 'Mount/Errors' => '255,64,128', ); my $int_t = (12 * 60 * 60); # interval to display on one screen @@ -34,14 +35,21 @@ # time range +$int_t = m_round($int_t); + my ($from_t,$to_t) = (time()-$int_t,time()); $to_t = param('to_t') if (param('to_t')); $from_t = param('from_t') if (param('from_t')); # round to nearest minute -$to_t = $to_t - ($to_t % 60); -$from_t = $from_t - ($from_t % 60) + 60; +sub m_round { + my $t = shift @_; + return ($t - ($t % 60)); +} + +$to_t = m_round($to_t); +$from_t = m_round($from_t); my $to=strftime("%Y-%m-%d %H:%M",localtime ($to_t)); my $from=strftime("%Y-%m-%d %H:%M",localtime ($from_t)); @@ -120,12 +128,14 @@ my $size = int($l / ($len_t / $width)); if ($size < $min_l) { + $fix_d += ($min_l - $size); + print STDERR "fix_d: $fix_d\n" if ($debug); $size = $min_l; - $fix_d += $min_l; } if ($fix_d && $size > $fix_d+$min_l) { $size -= $fix_d; $fix_d = 0; + print STDERR "fix_d: $fix_d\n" if ($debug); } print STDERR "bar[$status] len:$l s scale:",($len_t/$width)," size:$size px
alt:$alt\n" if ($debug); @@ -133,7 +143,11 @@ my $html = "url(-relative=>1)."?pic="; if ($status) { - $html .= $cols{$status}; + if ($cols{$status}) { + $html .= $cols{$status}; + } else { + $html .= "0,0,0"; # unknown status, black + } $count{$status}++; } else { # $html .= '240,240,240'; @@ -185,10 +199,10 @@ } - my $start_t = str2time($row->{start}); - my $fin_t = str2time($row->{finish}); + my $start_t = m_round(str2time($row->{start})); + my $fin_t = m_round(str2time($row->{finish})); - if ($start_t > $curr_t) { + if ($start_t > $curr_t + 60) { my $t = $start_t - $curr_t; print STDERR "[middle filler $curr_t:$t]" if ($debug); print bar($t); @@ -251,9 +265,11 @@ print "\n"; foreach my $status (keys %count) { #foreach my $status (keys %cols) { - print "\n" if ($status ne ""); - # -1 in line above is a cludge to display correct number on - # occurences on graph and without one on legend! + print "\n" if ($status ne ""); + # *1 in line above is a cludge to display correct number on + # occurences on graph and without one on legend! If you remove * op + # it will first evaluate bar sub (thus increasing number by one) and + # then display number (wrongly). } print "
status#color
$status",$count{$status}-1,"",bar($count{$status},$status),"
$status",$count{$status}*1,"",bar($count{$status},$status),"
\n

Reload url(-relative=>1),"\">current.

";