X-Git-Url: https://defaria.com/gitweb/?a=blobdiff_plain;f=maps%2Fbin%2Fprocessaction.cgi;h=229a2c34ec0019da2693b695fd42042189f124fd;hb=7ddf095f187ca60d9a70fb83b2bc3c2b6d91f088;hp=493020b0420bd7117e55fd5a9141371ebb8acf54;hpb=64cb05c445d480f29d266e70db6eb1d021d34456;p=clearscm.git diff --git a/maps/bin/processaction.cgi b/maps/bin/processaction.cgi index 493020b..229a2c3 100755 --- a/maps/bin/processaction.cgi +++ b/maps/bin/processaction.cgi @@ -16,9 +16,9 @@ use strict; use warnings; use FindBin; -$0 = $FindBin::Script; -use lib $FindBin::Bin; +use lib "$FindBin::Bin/../lib"; +use lib "$FindBin::Bin/../../lib"; use MAPS; use MAPSWeb; @@ -40,15 +40,11 @@ sub ReturnSequenceNbrs { my @names = param; my @sequence_nbrs; - Debug "Entered ReturnSequenceNbrs"; - - foreach (@names) { + for (@names) { if (/action(\d+)/) { push @sequence_nbrs, $1; } # if - } # foreach - - Debug "Returning sequence nbrs " . join ' ', @sequence_nbrs; + } # for return @sequence_nbrs; } # ReturnSequenceNbrs @@ -60,14 +56,26 @@ sub DeleteEntries { my $count; - foreach (@sequence_nbrs) { - $count += DeleteList $type, $_; - } # foreach + for (@sequence_nbrs) { + my ($err, $msg) = DeleteList( + userid => $userid, + type => $type, + sequence => $_, + ); + + # How to best handle error? + croak $msg if $err < 0; + + $count += $err; + } # for if ($count == 0) { - DisplayError 'Nothing to delete!'; + DisplayError('Nothing to delete!'); } else { - ResequenceList $userid, $type; + ResequenceList( + userid => $userid, + type => $type + ); if ($count == 1) { print redirect ("/maps/php/list.php?type=$type&next=$next&message=Deleted entry"); @@ -85,7 +93,8 @@ sub PrintInputLine ($$$$$) { my $email = ''; my $pattern = ''; my $domain = ''; - my $hit_count = 0; + my $retention = ''; + my $hit_count = ''; if (defined $email_nbr && $email_nbr ne '') { $email = param "email$email_nbr"; @@ -93,7 +102,10 @@ sub PrintInputLine ($$$$$) { ($pattern, $domain) = split /\@/, $email; } # if - $hit_count = CountMsg $email; + $hit_count = CountEmail( + userid => $userid, + additional => "sender like '%$email%'", + ); } # if print Tr [ @@ -101,9 +113,8 @@ sub PrintInputLine ($$$$$) { -align => 'center'}, "$nextseq", td {-class => $dataclass, -align => 'right'}, - (textfield {-class => 'inputfield', + (textfield {-class => 'inputfieldright', -style => 'width:100%', - -align => 'right', -size => 25, -maxlength => '255', -name => "pattern$nextseq", @@ -113,27 +124,31 @@ sub PrintInputLine ($$$$$) { td {-class => $dataclass}, (textfield {-class => 'inputfield', -style => 'width:100%', - -align => 'left', -size => 25, -maxlength => '255', -name => "domain$nextseq", -value => $domain}), td {-class => $dataclass}, - (textfield {-class => 'inputfield', + (textfield {-class => 'inputfieldright', -style => 'width:100%', - -align => 'left', -size => 25, -maxlength => '255', - -name => "comment$nextseq", - -value => ''}), + -name => "hit_count$nextseq", + -value => $hit_count}), + td {-class => $dataclass}, + (textfield {-class => 'inputfieldright', + -style => 'width:100%', + -size => 20, + -maxlength => '40', + -name => "retention$nextseq", + -value => $retention}), td {-class => $rightclass}, (textfield {-class => 'inputfield', -style => 'width:100%', - -align => 'left', -size => 25, -maxlength => '255', - -name => "hit_count$nextseq", - -value => $hit_count}), + -name => "comment$nextseq", + -value => ''}), ]; return; @@ -146,15 +161,18 @@ sub AddNewEntry { # empty, editable entries (possibly filled in) for the user to add # the new entry my $selected = @selected; - my $nextseq = MAPSDB::GetNextSequenceNo $userid, $type; + my $nextseq = GetNextSequenceNo( + userid => $userid, + type => $type, + ); + my $next = ($nextseq - $lines) + $selected - 1; - $next = 0 - if $next < 0; + $next = 0 if $next < 0; my $Type = ucfirst $type; - Heading ( + Heading( 'getcookie', '', "Add to $Type List", @@ -164,12 +182,12 @@ sub AddNewEntry { @scripts ); - NavigationBar $userid; + NavigationBar($userid); # Now display table and new entry print start_form { -method => 'post', - -action => 'add2' . $type . 'list.cgi', + -action => "add2${type}list.cgi", -name => 'list' }; @@ -184,54 +202,53 @@ sub AddNewEntry { th {-class => 'tableheader'}, 'Username', th {-class => 'tableheader'}, '@', th {-class => 'tableheader'}, 'Domain', - th {-class => 'tableheader'}, 'Comments', - th {-class => 'tablerightend'}, 'Hit Count' + th {-class => 'tableheader'}, 'Hit Count', + th {-class => 'tableheader'}, 'Retention', + th {-class => 'tablerightend'}, 'Comments', ]; - my @list = ReturnList $type, $next, $lines; - my %record; + my $list = ReturnList( + userid => $userid, + type => $type, + start_at => $next, + lines => $lines, + ); + my $i = 1; - foreach (@list) { + for my $record (@$list) { $i++; - %record = %{$_}; - # Normalize fields - my $sequence = $record{sequence}; - my $pattern = $record{pattern} ? $record{pattern} : ' '; - my $domain = $record{domain} ? $record{domain} : ' '; - my $comment = $record{comment} ? $record{comment} : ' '; - my $hit_count = $record{hit_count} ? $record{hit_count} : ' '; + $record->{pattern} //= ' '; + $record->{domain} //= ' '; + $record->{comment} //= ' '; + $record->{hit_count} //= ' '; + $record->{retention} //= ' '; print Tr [ - td {-class => 'tableleftdata', - -align => 'center'}, $sequence, - td {-class => 'tabledata', - -align => 'right'}, $pattern, - td {-class => 'tabledata', - -align => 'center'}, '@', - td {-class => 'tabledata', - -align => 'left'}, $domain, - td {-class => 'tabledata', - -align => 'left'}, $comment, - td {-class => 'tablerightdata', - -align => 'right'}, $hit_count, + td {-class => 'tableleftdata', -align => 'center'}, $record->{sequence}, + td {-class => 'tabledata', -align => 'right'}, $record->{pattern}, + td {-class => 'tabledata', -align => 'center'}, '@', + td {-class => 'tabledata', -align => 'left'}, $record->{domain}, + td {-class => 'tabledata', -align => 'right'}, $record->{hit_count}, + td {-class => 'tabledata', -align => 'right'}, $record->{retention}, + td {-class => 'tablerightdata', -align => 'left'}, $record->{comment}, ]; - } # foreach + } # for # Now the input line(s) if (@selected == 0) { - PrintInputLine $nextseq, undef, 'tablebottomleft', 'tablebottomdata', - 'tablebottomright'; + PrintInputLine($nextseq, undef, 'tablebottomleft', 'tablebottomdata', + 'tablebottomright'); } else { - foreach (@selected) { + for (@selected) { my $leftclass = $i == $lines ? 'tablebottomleft' : 'tableleftdata'; my $dataclass = $i == $lines ? 'tablebottomdata' : 'tabledata'; my $rightclass = $i == $lines ? 'tablebottomright' : 'tablerightdata'; $i++; - PrintInputLine $nextseq++, $_, $leftclass, $dataclass, $rightclass; - } # foreach + PrintInputLine($nextseq++, $_, $leftclass, $dataclass, $rightclass); + } # for } # for print end_table; @@ -256,7 +273,7 @@ sub ModifyEntries { my $Type = ucfirst $type; - Heading ( + Heading( 'getcookie', '', "Modify $Type List", @@ -266,7 +283,7 @@ sub ModifyEntries { @scripts ); - NavigationBar $userid; + NavigationBar($userid); # Redisplay the page but open up the lines that are getting modified print start_form { @@ -276,11 +293,8 @@ sub ModifyEntries { }; # Print some hidden fields to pass along - print - hidden ({-name => 'type', - -default => $type}), - hidden ({-name => 'next', - -default => $next}); + print hidden ({-name => 'type', -default => $type}), + hidden ({-name => 'next', -default => $next}); print start_table {-align => 'center', -id => $table_name, @@ -293,98 +307,114 @@ sub ModifyEntries { th {-class => 'tableheader'}, 'Username', th {-class => 'tableheader'}, '@', th {-class => 'tableheader'}, 'Domain', - th {-class => 'tableheader'}, 'Comments', - th {-class => 'tablerightend'}, 'Hit Count', + th {-class => 'tableheader'}, 'Hit Count', + th {-class => 'tableheader'}, 'Retention', + th {-class => 'tablerightend'}, 'Comments', ]; - my @list = ReturnList $type, $next, $lines; - my %record; + my $list = ReturnList( + userid => $userid, + type => $type, + start_at => $next, + lines => $lines, + ); + my $s = 0; my $i = 1; - foreach (@list) { - %record = %{$_}; - - my $sequence = $record{sequence}; - my $leftclass = ($i eq $lines || $sequence eq $total) ? + for my $record (@$list) { + my $leftclass = ($i == @$list || $record->{sequence} eq $total) ? 'tablebottomleft' : 'tableleftdata'; - my $dataclass = ($i eq $lines || $sequence eq $total) ? + my $dataclass = ($i == @$list || $record->{sequence} eq $total) ? 'tablebottomdata' : 'tabledata'; - my $rightclass = ($i eq $lines || $sequence eq $total) ? + my $rightclass = ($i == @$list || $record->{sequence} eq $total) ? 'tablebottomright' : 'tablerightdata'; $i++; print start_Tr, td {-class => $leftclass, - -align => 'center'}, $record{sequence}; + -align => 'center'}, $record->{sequence}; - if ($record{sequence} eq $selected[$s]) { + if ($selected[$s] and $record->{sequence} eq $selected[$s]) { $s++; # Normalize fields - my $pattern = $record{pattern} ? $record{pattern} : ''; - my $domain = $record{domain} ? $record{domain} : ''; - my $comment = $record{comment} ? $record{comment} : ''; - my $hit_count = $record{hit_count} ? $record{hit_count} : ''; + $record->{pattern} //= ''; + $record->{domain} //= ''; + $record->{comment} //= ''; + $record->{hit_count} //= ''; + $record->{retention} //= ''; print - td {-class => $dataclass, - -align => 'right'}, - (textfield {-class => 'inputfield', + td {-class => $dataclass, + -align => 'right'}, + (textfield {-class => 'inputfieldright', -style => 'width:100%', -align => 'right', -size => 25, -maxlength => '255', - -name => "pattern$sequence", - -value => $pattern}), - td {-class => $dataclass, - -align => 'center'}, '@', - td {-class => $dataclass}, + -name => "pattern$record->{sequence}", + -value => $record->{pattern}}), + td {-class => $dataclass, + -align => 'center'}, '@', + td {-class => $dataclass}, (textfield {-class => 'inputfield', -style => 'width:100%', -align => 'left', -size => 25, -maxlength => '255', - -name => "domain$sequence", - -value => $domain}), - td {-class => $dataclass}, - (textfield {-class => 'inputfield', - -style => 'width:100%', - -align => 'left', - -size => 25, - -maxlength => '255', - -name => "comment$sequence", - -value => $comment}), - td {-class => $rightclass}, - (textfield {-class => 'inputfield', - -style => 'width:100%', - -align => 'left', - -size => 25, - -maxlength => '255', - -name => "hit_count$sequence", - -value => $hit_count}); + -name => "domain$record->{sequence}", + -value => $record->{domain}}), + td {-class => $dataclass}, + (textfield {-class => 'inputfieldright', + -style => 'width:100%', + -align => 'left', + -size => 25, + -maxlength => '255', + -name => "hit_count$record->{sequence}", + -value => $record->{hit_count}}), + td {-class => $dataclass}, + (textfield {-class => 'inputfieldright', + -style => 'width:100%', + -align => 'left', + -size => 25, + -maxlength => '40', + -name => "retention$record->{sequence}", + -value => $record->{retention}}), + td {-class => $rightclass}, + (textfield {-class => 'inputfield', + -style => 'width:100%', + -align => 'left', + -size => 25, + -maxlength => '255', + -name => "comment$record->{sequence}", + -value => $record->{comment}}); } else { + # Normalize fields # Put in ' ' for undefined fields - my $pattern = $record{pattern} ? $record{pattern} : ' '; - my $domain = $record{domain} ? $record{domain} : ' '; - my $comment = $record{comment} ? $record{comment} : ' '; - my $hit_count = $record{hit_count} ? $record{hit_count} : ' '; + $record->{pattern} //= ' '; + $record->{domain} //= ' '; + $record->{comment} //= ' '; + $record->{hit_count} //= ' '; + $record->{retention} //= ' '; print td {-class => $dataclass, - -align => 'right'}, $pattern, + -align => 'right'}, $record->{pattern}, td {-class => $dataclass, -align => 'center'}, '@', td {-class => $dataclass, - -align => 'left'}, $domain, + -align => 'left'}, $record->{domain}, td {-class => $dataclass, - -align => 'left'}, $comment, + -align => 'right'}, $record->{hit_count}, + td {-class => $dataclass, + -align => 'right'}, $record->{retention}, td {-class => $rightclass, - -align => 'left'}, $hit_count; + -align => 'left'}, $record->{comment}; } # if print end_Tr; - } # foreach + } # for print end_table; print br, @@ -402,53 +432,61 @@ sub ModifyEntries { } # ModifyEntries sub WhitelistMarked { - AddNewEntry 'white', ReturnSequenceNbrs; + AddNewEntry('white', ReturnSequenceNbrs); + + return; } # WhitelistMarked sub BlacklistMarked { - AddNewEntry 'black', ReturnSequenceNbrs; + AddNewEntry('black', ReturnSequenceNbrs); + + return; } # BlacklistMarked sub NulllistMarked { - AddNewEntry 'null', ReturnSequenceNbrs; + AddNewEntry('null', ReturnSequenceNbrs); + + return; } # NulllistMarked # Main $userid ||= $ENV{USER}; -SetContext $userid; +SetContext($userid); -my %options = GetUserOptions $userid; +my %options = GetUserOptions($userid); $lines = $options{'Page'}; -$total = MAPSDB::count 'list', "userid = \"$userid\" and type = \"$type\"" - if $type; - -if ($action eq 'Add New Entry') { - AddNewEntry $type; -} elsif ($action eq 'Delete Marked') { - DeleteEntries $type; -} elsif ($action eq 'Modify Marked') { - ModifyEntries $type; -} elsif ($action eq 'Whitelist Marked') { +$total = CountList( + userid => $userid, + type => $type, +) if $type; + +if ($action eq 'Add') { + AddNewEntry($type); +} elsif ($action eq 'Delete') { + DeleteEntries($type); +} elsif ($action eq 'Modify') { + ModifyEntries($type); +} elsif ($action eq 'Whitelist') { WhitelistMarked; -} elsif ($action eq 'Blacklist Marked') { +} elsif ($action eq 'Blacklist') { BlacklistMarked; -} elsif ($action eq 'Nulllist Marked') { +} elsif ($action eq 'Nulllist') { NulllistMarked; } else { - Heading ( + Heading( 'getcookie', '', "Unknown action ($action)", "Unknown action ($action)" ); - NavigationBar $userid; - DisplayError "Unknown action encountered ($action)"; + NavigationBar($userid); + DisplayError("Unknown action encountered ($action)"); } # if -Footing $table_name; +Footing($table_name); exit;