X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=maps%2Fbin%2Fdetail.cgi;h=1d3909714e6d6289a583356ad07a9acec0539750;hb=f0f576efaf276a513338c6303070740a23fea5ab;hp=de7fd29c1d4638501b7646cb885f0574f6ce1ca7;hpb=020a4a5ea2be725b155cae3a2cadc9aba3911b9b;p=clearscm.git
diff --git a/maps/bin/detail.cgi b/maps/bin/detail.cgi
index de7fd29..1d39097 100755
--- a/maps/bin/detail.cgi
+++ b/maps/bin/detail.cgi
@@ -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,26 +11,27 @@
#
# (c) Copyright 2000-2006, Andrew@DeFaria.com, all rights reserved.
#
-################################################################################use strict;
+################################################################################
+use strict;
use warnings;
use MIME::Words qw(:all);
use FindBin;
$0 = $FindBin::Script;
-use lib $FindBin::Bin;
+use lib "$FindBin::Bin/../lib";
use MAPS;
use MAPSLog;
use MAPSUtil;
use MAPSWeb;
-use CGI qw (:standard *table start_td end_td start_Tr end_Tr start_div end_div);
+use CGI qw(:standard *table start_td end_td start_Tr end_Tr start_div end_div);
use CGI::Carp 'fatalsToBrowser';
-my $type = param ('type');
-my $next = param ('next');
-my $lines = param ('lines');
-my $date = param ('date');
+my $type = param('type');
+my $next = param('next');
+my $lines = param('lines');
+my $date = param('date');
$date ||= '';
@@ -72,14 +74,16 @@ my %types = (
);
sub MakeButtons {
- my $type = shift;
+ my ($type) = @_;
my $prev_button = $prev >= 0 ?
- a ({-href => "detail.cgi?type=$type;date=$date;next=$prev"},
- '
') : '';
+ a ({-href => "detail.cgi?type=$type;date=$date;next=$prev",
+ -accesskey => 'p',
+ }, '
') : '';
my $next_button = ($next + $lines) < $total ?
- a {-href => "detail.cgi?type=$type;date=$date;next=" . ($next + $lines)},
- '
' : '';
+ a {-href => "detail.cgi?type=$type;date=$date;next=" . ($next + $lines),
+ -accesskey => 'n',
+ }, '
' : '';
my $buttons = $prev_button;
@@ -147,12 +151,12 @@ sub PrintTable {
-action => 'processaction.cgi',
-name => 'detail'
};
- print start_table ({-align => 'center',
- -id => $table_name,
- -border => 0,
- -cellspacing => 0,
- -cellpadding => 0,
- -width => '100%'}) . "\n";
+ print start_table({-align => 'center',
+ -id => $table_name,
+ -border => 0,
+ -cellspacing => 0,
+ -cellpadding => 0,
+ -width => '100%'}) . "\n";
my $buttons = MakeButtons $type;
@@ -167,8 +171,37 @@ sub PrintTable {
];
print end_div;
- foreach my $sender (ReturnSenders $userid, $type, $next, $lines, $date) {
- my @msgs = ReturnMessages $userid, $sender;
+ for my $sender (ReturnSenders($userid, $type, $next, $lines, $date)) {
+ my @msgs = ReturnMessages($userid, $sender);
+ my @msgs2 = @msgs;
+
+ my ($onlist, $seq);
+
+ my $rule = 'none';
+ my $hit_count = 0;
+
+ ($onlist, $rule, $seq, $hit_count) = OnWhitelist($sender, $userid, 0);
+
+ unless ($onlist) {
+ ($onlist, $rule, $seq, $hit_count) = OnBlacklist($sender, 0);
+
+ unless ($onlist) {
+ ($onlist, $rule, $seq, $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 = "$list:$2/$hit_count";
+
+ $rule =~ s/\w+:\d+/$link/;
+ } # if
+ } # if
$next++;
print
@@ -177,7 +210,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'};
@@ -188,19 +221,27 @@ sub PrintTable {
-border => 0,
-width => '100%',
-bgcolor => '#d4d0c8'};
+
+ # Get subject line
+ my $heading = $msgs2[0][0] || '';
+ $heading = "?subject=$heading" if $heading;
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$heading"}, $sender,
+ td {
+ -valign => 'middle'},
+ $rule;
print
end_table;
my $messages = 1;
- foreach (@msgs) {
+ for (@msgs) {
my $msg_date = pop @{$_};
my $subject = pop @{$_};
@@ -236,14 +277,14 @@ 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;
- } # foreach
+ } # for
print end_td;
print end_Tr;
- } # foreach
+ } # for
print start_div {-class => 'toolbar'};
print
@@ -257,14 +298,17 @@ sub PrintTable {
print end_div;
print end_table;
print end_form;
+
+ return;
} # PrintTable
# Main
+my $condition;
my @scripts = ('ListActions.js');
my $heading_date =$date ne '' ? ' on ' . FormatDate ($date) : '';
-$userid = Heading (
+$userid = Heading(
'getcookie',
'',
(ucfirst ($type) . ' Report'),
@@ -276,11 +320,11 @@ $userid = Heading (
$userid ||= $ENV{USER};
-SetContext $userid;
-NavigationBar $userid;
+SetContext($userid);
+NavigationBar($userid);
unless ($lines) {
- my %options = GetUserOptions $userid;
+ my %options = GetUserOptions($userid);
$lines = $options{'Page'};
} # unless
@@ -294,7 +338,7 @@ if ($date eq '') {
. "and timestamp > '$sod' and timestamp < '$eod' ";
} # if
-$total = MAPSDB::count_distinct ('log', 'sender', $condition);
+$total = count_distinct('log', 'sender', $condition);
$next ||= 0;
@@ -303,11 +347,11 @@ $last = $next + $lines < $total ? $next + $lines : $total;
if (($next - $lines) > 0) {
$prev = $next - $lines;
} else {
- $prev = $next eq 0 ? -1 : 0;
+ $prev = $next == 0 ? -1 : 0;
} # if
-PrintTable $type;
+PrintTable($type);
-Footing $table_name;
+Footing($table_name);
exit;