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;
my @names = param;
my @sequence_nbrs;
- foreach (@names) {
+ for (@names) {
if (/action(\d+)/) {
push @sequence_nbrs, $1;
} # if
- } # foreach
+ } # for
return @sequence_nbrs;
} # ReturnSequenceNbrs
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");
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";
($pattern, $domain) = split /\@/, $email;
} # if
- $hit_count = CountMsg $email;
+ $hit_count = CountEmail(
+ userid => $userid,
+ additional => "sender like '%$email%'",
+ );
} # if
print Tr [
-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",
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;
# 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",
@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'
};
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;
my $Type = ucfirst $type;
- Heading (
+ Heading(
'getcookie',
'',
"Modify $Type List",
@scripts
);
- NavigationBar $userid;
+ NavigationBar($userid);
# Redisplay the page but open up the lines that are getting modified
print start_form {
};
# 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,
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$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 => "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 => "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,
} # 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;