X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=maps%2Fbin%2Fsearch.cgi;h=167ed36cfdf53199706a952d462b0ceeee429115;hb=4f37839bc9faacb57d9bce9196d916595f14b114;hp=f7de688d40ad7b9ed5783066b4698c005d76ce97;hpb=16babf81ce331af378de565ba73e927ff5491f65;p=clearscm.git diff --git a/maps/bin/search.cgi b/maps/bin/search.cgi index f7de688..167ed36 100755 --- a/maps/bin/search.cgi +++ b/maps/bin/search.cgi @@ -16,23 +16,23 @@ use strict; use warnings; use FindBin; -$0 = $FindBin::Script; +local $0 = $FindBin::Script; use lib "$FindBin::Bin/../lib"; +use lib "$FindBin::Bin/../../lib"; 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 { @@ -47,16 +47,16 @@ sub MakeButtons { $buttons = $buttons . submit ({-name => "action", - -value => "Whitelist Marked", + -value => "Whitelist", -onClick => "return CheckAtLeast1Checked (document.detail);"}) . submit ({-name => "action", - -value => "Blacklist Marked", + -value => "Blacklist", -onClick => "return CheckAtLeast1Checked (document.detail);"}) . submit ({-name => "action", - -value => "Nulllist Marked", + -value => "Nulllist", -onClick => "return CheckAtLeast1Checked (document.detail);"}) . submit ({-name => "action", - -value => "Reset Marks", + -value => "Reset", -onClick => "return ClearAll (document.detail);"}); return $buttons . $next_button; @@ -73,9 +73,10 @@ sub HighlightSearchStr { } # HighlightSearchStr sub Body { - my @emails; - - @emails = SearchEmails $userid, $str; + my @emails = SearchEmails( + userid => $userid, + search => $str, + ); my $current = $next + 1; @@ -103,14 +104,11 @@ sub Body { 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++; @@ -120,16 +118,18 @@ sub Body { (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->{date}, ]; } # foreach print end_table; + + return; } # Body # Main @@ -145,6 +145,8 @@ $userid = Heading ( @scripts ); +$userid //= $ENV{USER}; + SetContext $userid; NavigationBar $userid; @@ -155,12 +157,14 @@ if (!$lines) { $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) {