Added hit_count
[clearscm.git] / maps / bin / detail.cgi
index de7fd29..b4c3e90 100755 (executable)
@@ -1,5 +1,6 @@
 #!/usr/bin/perl
 #################################################################################
+#
 # File:         $RCSfile: detail.cgi,v $
 # Revision:     $Revision: 1.1 $
 # Description:  Displays list of email addresses based on report type.
@@ -10,7 +11,8 @@
 #
 # (c) Copyright 2000-2006, Andrew@DeFaria.com, all rights reserved.
 #
-################################################################################use strict;
+################################################################################
+use strict;
 use warnings;
 
 use MIME::Words qw(:all);
@@ -75,11 +77,13 @@ sub MakeButtons {
   my $type = shift;
 
   my $prev_button = $prev >= 0 ?
-    a ({-href => "detail.cgi?type=$type;date=$date;next=$prev"},
-      '<img src=/maps/images/previous.gif border=0 alt=Previous align=middle>') : '';
+    a ({-href      => "detail.cgi?type=$type;date=$date;next=$prev",
+        -accesskey => 'p',
+    }, '<img src=/maps/images/previous.gif border=0 alt=Previous align=middle>') : '';
   my $next_button = ($next + $lines) < $total ?
-    a {-href => "detail.cgi?type=$type;date=$date;next=" . ($next + $lines)},
-      '<img src=/maps/images/next.gif border=0 alt=Next align=middle>' : '';
+    a {-href      => "detail.cgi?type=$type;date=$date;next=" . ($next + $lines),
+       -accesskey => 'n',
+    }, '<img src=/maps/images/next.gif border=0 alt=Next align=middle>' : '';
 
   my $buttons = $prev_button;
 
@@ -169,6 +173,33 @@ sub PrintTable {
 
   foreach my $sender (ReturnSenders $userid, $type, $next, $lines, $date) {
     my @msgs = ReturnMessages $userid, $sender;
+    my @msgs2 = @msgs;
+    my $onlist;
+    my $rule      = 'none';
+    my $hit_count = 0;
+
+    ($onlist, $rule, $hit_count) = OnWhitelist $sender, $userid, 0;
+
+    unless ($onlist) {
+      ($onlist, $rule, $hit_count) = OnBlacklist $sender, 0;
+
+      unless ($onlist) {
+        ($onlist, $rule, $hit_count) = OnNulllist $sender, 0;
+      } # unless
+    } # unless
+
+    if ($rule) {
+      $rule =~ s/Matching rule: \(//;
+      $rule =~ s/\)//;
+
+      if ($rule =~ /(\w+):(\d+)/) {
+        my $list     = $1;
+        my $sequence = $2 - 1;
+        my $link     = "<a href=\"/maps/php/list.php?type=$list&next=$sequence\">$list:$2</a>/$hit_count";
+
+        $rule =~ s/\w+:\d+/$link/;
+      } # if
+    } # if
 
     $next++;
     print
@@ -177,7 +208,7 @@ sub PrintTable {
       td {-class => 'tableborder'}, small ($next,
         checkbox {-name  => "action$next",
                   -label => ''}),
-          hidden ({-name     => "email$next",
+          hidden ({-name    => "email$next",
                    -default => $sender});
     print
       start_td {-align => 'left'};
@@ -189,12 +220,16 @@ sub PrintTable {
                    -width       => '100%',
                    -bgcolor     => '#d4d0c8'};
     print
-      td {-class => 'tablelabel',
-          -valign => 'middle',
-          -width  => '40'}, 'Sender:',
-      td {-class  => 'sender',
-          -valign => 'middle'},
-      a {-href    => "mailto:$sender"}, $sender;
+      td {-class   => 'tablelabel',
+          -valign  => 'middle',
+          -width   => '40'}, 'Sender:',
+      td {-class   => 'sender',
+          -valign  => 'middle',
+          -width   => '40%'},
+        a {-href   => "mailto:$sender?subject=$msgs2[0][0]"}, $sender,
+      td {
+          -valign  => 'middle'},
+          $rule;
     print
       end_table;
 
@@ -236,7 +271,7 @@ sub PrintTable {
               -bgcolor => '#ffffff'},
            a {-href    => "display.cgi?sender=$sender;msg_nbr=$msg_nbr"}, $subject,
           td {-class   => 'date',
-              -width   => '130',
+              -width   => '150',
               -valign  => 'middle'}, $msg_date
         ];
       print end_table;
@@ -260,6 +295,7 @@ sub PrintTable {
 } # PrintTable
 
 # Main
+my $condition;
 my @scripts = ('ListActions.js');
 
 my $heading_date =$date ne '' ? ' on ' . FormatDate ($date) : '';