From 6ea4a47c60e5050bd6442437c024cba83cde5a5a Mon Sep 17 00:00:00 2001 From: Martin Kamerbeek Date: Thu, 22 Apr 2010 16:50:19 +0200 Subject: [PATCH] Improve preview functionality. --- lib/WebGUI/AssetAspect/Mailable.pm | 43 +++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/lib/WebGUI/AssetAspect/Mailable.pm b/lib/WebGUI/AssetAspect/Mailable.pm index b402534..f13eddc 100644 --- a/lib/WebGUI/AssetAspect/Mailable.pm +++ b/lib/WebGUI/AssetAspect/Mailable.pm @@ -96,7 +96,7 @@ sub processContentAsUser { #} #---------------------------------------------------------------------------- -sub www_previewEmail { +sub www_previewContent { my $self = shift; my $form = $self->session->form; @@ -105,5 +105,46 @@ sub www_previewEmail { return $self->processContentAsUser( $userId ); } +#---------------------------------------------------------------------------- +sub www_previewEmail { + my $self = shift; + my $session = $self->session; + my $form = $session->form; + + my %recipients = + map { $_->getId => $_->username } + map { WebGUI::User->new( $session, $_ ) } + @{ $self->getRecipients }; + + my $issueId = $form->get('issueId'); + my $userId = $form->get('userId') || ( %recipients )[0]; + + my $userSelection = + WebGUI::Form::formHeader( $session ) + . WebGUI::Form::hidden( $session, { name => 'func', value => 'previewEmail' } ) + . WebGUI::Form::hidden( $session, { name => 'issueId', value => $issueId } ) + . WebGUI::Form::selectBox( $session, { + name => 'userId', + options => \%recipients, + value => $userId, + } ) + . WebGUI::Form::submit( $session, { value => 'Switch' } ) + . WebGUI::Form::formFooter( $session ); + + my $url = $self->getUrl("func=previewContent;issueId=$issueId;userId=$userId"); + + return < + + + + $userSelection + + + +EOHTML +} + 1;