diff --git a/cgi-bin/sa_report.cgi b/cgi-bin/sa_report.cgi index 8c2e8a6..f4bc656 100755 --- a/cgi-bin/sa_report.cgi +++ b/cgi-bin/sa_report.cgi @@ -102,6 +102,7 @@ td {padding:0px;font-family:sans-serif;font-size:8pt;color:#000000;background-co .tdtopn {vertical-align: top; padding:2px;font-family:sans-serif;font-size:8pt; font-weight: normal; color:#4179a1;background-color:#ffffff; border: 1px solid #4179a1; text-align: left;} .tdtopnr {vertical-align: top; padding:2px;font-family:sans-serif;font-size:8pt; font-weight: normal; color:#4179a1;background-color:#ffffff; border: 1px solid #4179a1; text-align: right;} .tdtopnc {vertical-align: top; padding:2px;font-family:sans-serif;font-size:8pt; font-weight: normal; color:#4179a1;background-color:#ffffff; border: 1px solid #4179a1; text-align: center;} +.hbar {vertical-align: top; text-align: right; padding:2px; font-family:sans-serif; font-size: 9pt; font-weight: normal; color: #4179a1;} th {padding:0px;font-family:sans-serif;font-size:8pt;color:#ffffff;background-color:#4179a1; border: solid thin #4179a1;} .thhead2 {padding:0px;font-family:sans-serif;font-size:12pt;color:#CC6600;background-color:#ffffff; border: solid thin #4179a1; text-align: center;} .thhead {padding:0px;font-family:sans-serif;font-size:10pt;color:#ffffff;background-color:#4179a1; border: solid thin #4179a1; text-align: center;} @@ -3354,8 +3355,8 @@ sub display_top_sender @@ -3495,16 +3496,21 @@ sub display_top_recipient $top = 0; my %relays = (); my $piecount = 0; + my $percent_total = 0; foreach my $d (sort { $toprcpt{relay}{$b} <=> $toprcpt{relay}{$a} } keys %{$toprcpt{relay}}) { last if ($top == $CONFIG{TOP}); - my $percent = sprintf("%.2f", ($toprcpt{relay}{$d}*100)/$totalrelay); + my $percent = sprintf("%.2f", ($toprcpt{relay}{$d}*100)/($totalrelay||1)); $toprelay .= &detail_link($hostname,$date,'recipient','relay',$d,$hour) . " ($toprcpt{relay}{$d})
"; if ( ($piecount < $MAXPIECOUNT) && ($percent > $MIN_SHOW_PIE)) { - $relays{"$d ($percent %)"} = $percent; + $relays{"$d"} = $percent; + $percent_total += $toprcpt{relay}{$d}; $piecount++; } $top++; } + my $other_percent = 100 - sprintf("%.2f", ($percent_total*100)/($totalrelay||1)); + $relays{"Others"} = $other_percent if ($other_percent > 0); + delete $toprcpt{relay}; if (exists $CONFIG{REPLACE_HOST}) { foreach my $pat (keys %{$CONFIG{REPLACE_HOST}}) { @@ -3532,8 +3538,8 @@ sub display_top_recipient
}; - print &grafit_pie( values => \%relays, title => $TRANSLATE{'Top Sender Relay'}, - divid => 'topsenderrelay', width => 800, height => 300 + print &grafit_hbar( values => \%relays, title => $TRANSLATE{'Top Sender Relay'}, + divid => 'topsenderrelay', width => 900, height => 250 ); print qq{
@@ -5961,3 +5967,42 @@ sub clean_relay return $relay; } + + +sub grafit_hbar +{ + my (%params) = @_; + + my $hbar_graph = ''; + foreach my $k (sort {$params{values}->{$b} <=> $params{values}->{$a}} keys %{$params{values}}) { + my $name = $k || '<>'; + $hbar_graph .= "\n"; + } + $params{width} ||= 400; + $params{height} ||= 200; + + return < +#$params{divid} +{ + width : $params{width}px; + height: $params{height}px; + background:#F3F2ED; + border:10px solid white; + padding:0 10px; + margin:30px 10px 30px 10px; + border-radius:10px; + -moz-border-radius:10px; + -webkit-border-radius:10px; + box-shadow:3px 3px 6px 2px #A9A9A9; + -moz-box-shadow:3px 3px 6px 2px #A9A9A9; + -webkit-box-shadow:3px 3px 6px #A9A9A9; +} + +
}; - print &grafit_pie( values => \%relays, title => $TRANSLATE{'Top Recipient Relay'}, - divid => 'toprecipientrelay', width => 800, height => 300 + print &grafit_hbar( values => \%relays, title => $TRANSLATE{'Top Recipient Relay'}, + divid => 'toprecipientrelay', width => 900, height => 250 ); print qq{
$name$params{values}->{$k} %" . ("█" x int($params{values}->{$k})) . "
$hbar_graph
$params{title}
 

Others: sum of relays representing less than $MIN_SHOW_PIE %

+ +EOF + +} + +