Add better feedback for schedule, test and cancel operations.

This commit is contained in:
Martin Kamerbeek 2010-06-02 18:09:55 +02:00
parent 6010aa947f
commit 62dd81a165
3 changed files with 83 additions and 17 deletions

View file

@ -247,6 +247,7 @@ sub queueEmails {
recipientEmail => undef,
isTest => 0,
} );
}
return;
@ -272,6 +273,15 @@ sub queueScheduled {
return;
}
#----------------------------------------------------------------------------
sub renderInConsole {
my $self = shift;
my $content = shift;
my $title = shift;
return WebGUI::Mailing::Admin->new($self->session)->getAdminConsole->render( $content, $title );
}
#----------------------------------------------------------------------------
sub send {
my $self = shift;
@ -321,17 +331,24 @@ sub sendQueuedEmails {
sub www_cancel {
my $self = shift;
my $session = $self->session;
my $admin = WebGUI::Mailing::Admin->new( $session );
my $i18n = WebGUI::International->new( $session, 'MailingManager' );
return $admin->adminConsole->render(
sprintf( $i18n->get( 'cannot cancel mailing' ), $self->getId ),
$i18n->get( 'error' )
) unless $self->canCancel;
if ( $self->canCancel ) {
$self->cancel;
$self->cancel;
return $self->renderInConsole(
$i18n->get('cancel mailing success'),
$i18n->get('cancel mailing'),
);
}
else {
return $self->renderInConsole(
$i18n->get('cancel mailing failure'),
$i18n->get('cancel mailing'),
);
}
return WebGUI::Mailing::Admin->new($session)->www_view;
return;
}
#----------------------------------------------------------------------------
@ -546,9 +563,7 @@ sub www_sendBatch {
extras => qq{onclick="window.location='$cancelUrl'" class="backwardButton"},
);
return WebGUI::Mailing::Admin->new($session)->getAdminConsole->render( $f->print, 'Send test emails' );
return WebGUI::Mailing::Admin->new($session)->getAdminConsole->render( $f->print, $i18n->get('schedule mailing') );
return $self->renderInConsole( $f->print, $i18n->get('schedule mailing') );
}
#----------------------------------------------------------------------------
@ -579,6 +594,7 @@ sub www_sendBatchConfirm {
my $self = shift;
my $session = $self->session;
my $form = $session->form;
my $i18n = WebGUI::International->new( $session, 'MailingManager' );
my $scheduled = $form->dateTime( 'sendDate' );
@ -589,7 +605,13 @@ sub www_sendBatchConfirm {
$self->schedule( $scheduled );
return WebGUI::Mailing::Admin->new( $session )->www_view;
return $self->renderInConsole(
sprintf( $i18n->get('schedule mailing success'),
$session->datetime->epochToHuman( $scheduled ),
$session->url->page('newsletter=manage'),
),
$i18n->get( 'schedule mailing' )
);
}
#----------------------------------------------------------------------------
@ -646,7 +668,7 @@ sub www_sendTestEmails {
extras => qq{onclick="window.location='$cancelUrl'" class="backwardButton"},
);
return WebGUI::Mailing::Admin->new($session)->getAdminConsole->render( $f->print, 'Send test emails' );
return $self->renderInConsole( $f->print, $i18n->get('send test mails') );
}
#----------------------------------------------------------------------------
@ -654,13 +676,23 @@ sub www_sendTestEmailsConfirm {
my $self = shift;
my $session = $self->session;
my $form = $session->form;
my $i18n = WebGUI::International->new( $session, 'MailingManager' );
my $to = $form->get( 'to' );
my @userIds = $form->selectList( 'userIds' );
$self->queueTestEmails( $to, \@userIds );
return WebGUI::Mailing::Admin->new( $session )->www_view;
return $self->renderInConsole(
sprintf( $i18n->get('send test mail success'),
scalar( @userIds ),
$to,
$session->url->page('newsletter=manage'),
),
$i18n->get( 'send test mails' )
);
}
1;