Show process_lists.html syntax highlighted
% # vim:set syntax=mason:
<%args>
$newname => ''
$newaddress => ''
@delete => ()
@oldname => ()
@name => ()
@addresses => ()
</%args>
<%init>
my $user = Apache2::SiteControl->getCurrentUser($r);
my $book = new AlphaMail::AddressBook($user->getUsername(), $user->getAttribute('mx'), $config);
my $k;
my @a;
# Order: Delete, rename, then add (avoids collisions)
for $k (@delete) {
$logger->debug("Deleting entry with key $k");
$book->remove_list($k);
}
for($k=0; $k <= $#name; $k++) {
# ignore edits on deleted rows:
next if grep(/^\Q$name[$k]\E$/, @delete);
$name[$k] = encode_utf8mimewords(Encode::decode_utf8($name[$k]));
$oldname[$k] = Encode::decode_utf8($oldname[$k]);
$addresses[$k] = Encode::decode_utf8($addresses[$k]);
$addresses[$k] =~ s/[\n\r]//g;
$addresses[$k] =~ s/\s/ /g;
$addresses[$k] = encode_utf8mimewords($addresses[$k]);
if($oldname[$k] ne $name[$k]) { # Rename
$logger->debug("Renaming and Updating entry with key $oldname[$k] to $name[$k]");
$book->remove_list($oldname[$k]);
$book->add_list($name[$k], $addresses[$k]);
} else {
$logger->debug("Updating entry with key $name[$k]");
$book->update_list($oldname[$k], $addresses[$k]);
}
}
$book->save;
$newname = encode_utf8mimewords(Encode::decode_utf8($newname));
$newaddress =~ s/[\r\n]//g;
# Check to see if the list already exists:
if($newaddress !~ m/^\s*$/ && $book->has_list($newname)) {
$newaddress = Encode::decode_utf8($newaddress);
utf8::upgrade($newaddress);
$m->redirect(build_url("$base/mail/addressbook/index.html", {selected => 'Lists', message => 'That list name is already in use, please choose another.', newaddress => $newaddress }));
} elsif($newaddress !~ m/^\s*$/) {
$newaddress = Encode::decode_utf8($newaddress);
utf8::upgrade($newaddress);
$newaddress =~ s/\s+/ /g;
$newaddress = encode_utf8mimewords($newaddress);
$logger->debug("Adding $newname, with addresses $newaddress");
$book->add_list($newname, $newaddress);
}
$book->save;
$m->redirect(build_url("$base/mail/addressbook/index.html", {selected => 'Lists', message => 'Your lists were updated.' }));
</%init>
<%once>
use AlphaMail::HTMLHelper qw(build_url);
use AlphaMail::MailTool qw(encode_utf8mimewords mimewords_to_utf8);
our $logger = Log::Log4perl->get_logger('alphamail');
our $base = $config->get('base_uri');
</%once>
See more files for this project here