Apache-App-Mercury
view release on metacpan or search on metacpan
my $q = $self->{q};
my $controller = $self->{controller};
my %args = $self->{r}->args;
# set up and preparation - independent of page
$self->get_mailboxes;
my $box = $self->{'current_box'} = $self->get_current_mailbox;
my $need_sort;
if ($args{$box.'_sortby'} and
$args{$box.'_sortby'} ne ($self->{$box}->{'sortby'} .
($self->{$box}->{'sortdir'}
? '__'.$self->{$box}->{'sortdir'} : ''))) {
my ($sort, $updown) = split('__', $args{$box.'_sortby'});
$need_sort = $self->set_sortby(undef, $sort, $updown);
} elsif (!$self->{$box}->{'sortby'}) {
$need_sort = $self->set_sortby;
}
# hit database if user wants or if more than 10 minutes has past since last
if ($q->param('check_mail') or !$self->{'last_mail_check'} or
$controller->get_time > $self->{'last_mail_check'}+600) {
$self->check_mail;
$need_sort = 0; # since mail checking automtically sorts
}
# cannot sort until boxes are made (by checkmail)
# but only sort if sortby was changed and mail was not checked
$self->sort_mailbox if $need_sort;
# actions, non-displaying
if ($q->param('delete')) {
$self->delete_messages;
} elsif ($q->param('transfer')) {
$self->transfer_messages;
}
# change state if we're now trying to view messages in an empty mailbox
$self->{'state'} = 'message_center'
if ($self->{'state'} eq 'view_messages' and
$#{$self->{$box}->{'index'}} < 0);
# outputting and page creation
if ($q->param('cancel')) {
$self->cancel_operation;
$self->{'state'} = 'message_center';
$self->show_mail_center;
$controller->sitemark('/messaging');
} elsif ($q->param('message_center')) {
$self->{'state'} = 'message_center';
$self->show_mail_center;
$controller->sitemark('/messaging');
} elsif ($self->{'state'} eq 'edit_settings' or $args{'edit_mail_prefs'}) {
if ($q->param('add_box')) {
if ($self->verify_new_mailbox($q->param('new_box'))) {
$self->add_new_mailbox($q->param('new_box'));
$self->checkmail;
$q->delete('new_box');
}
} elsif ($q->param('delete_box')) {
$self->delete_mailbox($q->param('custom_box'),
$q->param('delete_mail_in_box'));
$self->checkmail;
$q->delete('custom_box');
$q->delete('delete_mail_in_box');
} elsif ($q->param('commit_filter')) {
$self->edit_filters;
$self->checkmail;
# $q->delete('trans_filter');
} elsif ($q->param('update_auto_forward')) {
$self->update_auto_forward;
$self->checkmail;
}
$self->{'state'} = 'edit_settings';
$self->show_mail_settings;
$controller->sitemark('/messaging.settings');
} elsif ($self->{'state'} eq 'compose_message') {
$self->save_compose_message_fields;
$controller->sitemark('/messaging.compose');
$controller->infomsg("You must take action on your existing composition before creating a transaction-related message.")
if ($q->param('reply_trans') or $q->param('compose_trans'));
if ($q->param('preview')) {
my ($fail, $recip, $recip_desc) =
$self->verify_recipient($self->{compose_msg}->{'sent_to'}, 1);
unless ($fail) {
$self->{compose_msg}->{'sent_to'} = $recip;
$self->{compose_msg}->{'recipient_desc'} = $recip_desc;
$self->{'state'} = 'preview_message';
$self->show_mail_preview;
$controller->sitemark('/messaging.preview');
return;
}
} elsif ($q->param('return')) {
$controller->infomsg("Your composition has been saved in memory. It will be removed when you log out.");
$self->{'state'} = 'message_center';
$self->show_mail_center;
$controller->sitemark('/messaging');
return;
} elsif ($q->param('reset')) {
$self->reset_compose_message;
} elsif ($q->param('change_recip')) {
$self->{compose_msg}->{'action'} .= "-changed_recip";
} elsif ($q->param('memo')) {
$self->{compose_msg}->{'sent_to'} = $self->{user_manager}->userprofile('user');
$self->{compose_msg}->{'recipient_desc'} = $self->{user_manager}->userprofile('user_desc');
} elsif ($q->param('nonmemo')) {
$self->{compose_msg}->{'sent_to'} = '';
( run in 1.002 second using v1.01-cache-2.11-cpan-5a3173703d6 )