use warnings;
use FindBin;
-$0 = $FindBin::Script;
+local $0 = $FindBin::Script;
use lib "$FindBin::Bin/../lib";
+use lib "$FindBin::Bin/../../lib";
+use DateUtils;
use MAPS;
use MAPSWeb;
-use MAPSUtil;
+
use CGI qw (:standard *table start_Tr start_td start_div end_Tr end_td end_div);
use CGI::Carp "fatalsToBrowser";
my $str = param('str');
my $next = param('next');
my $lines = param('lines');
-my $userid;
-my $prev;
-my $total;
-my $last;
+
+my ($userid, $prev, $total, $last);
+
my $table_name = 'searchresults';
sub MakeButtons {
} # HighlightSearchStr
sub Body {
- my @emails;
-
- @emails = SearchEmails $userid, $str;
+ my @emails = SearchEmails(
+ userid => $userid,
+ search => $str,
+ );
my $current = $next + 1;
th {-class => "tablerightend"}, "Date"
];
- foreach (@emails) {
- my $sender = shift @{$_};
- my $subject = shift @{$_};
- my $date = shift @{$_};
+ for my $rec (@emails) {
+ my $display_sender = HighlightSearchStr $rec->{sender};
- my $display_sender = HighlightSearchStr $sender;
- $subject = HighlightSearchStr $subject;
- $subject = $subject eq "" ? "<Unspecified>" : $subject;
+ $rec->{subject} //= '<Unspecified>';
+ $rec->{subject} = HighlightSearchStr $rec->{subject};
$next++;
(checkbox {-name => "action$next",
-label => ""}),
hidden ({-name => "email$next",
- -default => $sender}),
+ -default => $rec->{sender}}),
td {-class => "sender"},
- a {-href => "mailto:$sender"}, $display_sender,
+ a {-href => "mailto:$rec->{sender}"}, $display_sender,
td {-class => "subject"},
- a {-href => "display.cgi?sender=$sender"}, $subject,
+ a {-href => "display.cgi?sender=$rec->{sender}"}, $rec->{subject},
td {-class => "dateright",
- -width => "115"}, SQLDatetime2UnixDatetime $date
+ -width => "115"}, SQLDatetime2UnixDatetime $rec->{timestamp},
+ ];
+ } # for
+
+ print
+ Tr [
+ td {-class => 'tableborderbottomleft'}, ' ',
+ td {-class => 'tableborder'}, ' ',
+ td {-class => 'tableborder'}, ' ',
+ td {-class => 'tableborderbottomright'}, ' '
];
- } # foreach
print end_table;
+
+ return;
} # Body
# Main
@scripts
);
+$userid //= $ENV{USER};
+
SetContext $userid;
NavigationBar $userid;
$lines = $options{"Page"};
} # if
-$total = count "email",
- "userid = \"$userid\" and (subject like \"%$str%\" or sender like \"%$str%\")";
+$total = CountEmail(
+ userid => $userid,
+ additional => "(subject like '%$str%' or sender like '%$str%')",
+);
DisplayError "Nothing matching!" if $total eq 0;
-$next = !defined $next ? 0 : $next;
+$next //= 0;
$last = $next + $lines < $total ? $next + $lines : $total;
if (($next - $lines) > 0) {