Show process_edit.html syntax highlighted
% # vim:set syntax=mason:
<%args>
@newname => ()
@newaddress => ()
@delete => ()
@key => ()
@name => ()
@address => ()
</%args>
<%init>
my $user = Apache2::SiteControl->getCurrentUser($r);
my $book = new AlphaMail::AddressBook($user->getUsername(), $user->getAttribute('mx'), $config);
my $k;
my @a;
my $message = 'Your contacts were updated. ';
my $rv;
# Order: Delete, rename, then add (avoids collisions)
for $k (@delete) {
$logger->debug("Deleting entry with key $k");
$book->remove_address($k);
}
for($k=0; $k <= $#key; $k++) {
# ignore edits on deleted rows:
next if grep(/^\Q$key[$k]\E$/, @delete);
$name[$k] = Encode::decode_utf8($name[$k]);
$name[$k] = qq("$name[$k]");
$logger->debug("Updating name to $name[$k] on entry with key $key[$k]");
$book->update_name(encode_utf8mimewords($name[$k]), $key[$k]);
}
for($k=0; $k <= $#newname; $k++) {
next if $newaddress[$k] !~ m/^$Email::Address::addr_spec$/;
$newname[$k] = Encode::decode_utf8($newname[$k]);
$newname[$k] = qq("$newname[$k]");
$newaddress[$k] = Encode::decode_utf8($newaddress[$k]);
$logger->debug("Adding $newname[$k], $newaddress[$k]");
$rv = $book->add_address(encode_utf8mimewords($newname[$k]), $newaddress[$k]);
if($rv =~ m'@') {
$message .= "$newname[$k] was not added because $newaddress[$k] is already in your address book.";
}
}
$book->save;
$m->redirect(build_url("$base/mail/addressbook/index.html", {selected => 'Contacts', message => $message }));
</%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