diff --git a/lib/WebGUI/Newsletter/Admin.pm b/lib/WebGUI/Newsletter/Admin.pm index 3abae04..7e98a36 100644 --- a/lib/WebGUI/Newsletter/Admin.pm +++ b/lib/WebGUI/Newsletter/Admin.pm @@ -26,23 +26,54 @@ sub session { return (shift)->{ _session }; } +sub www_createMailing { + my $self = shift; + my $session = $self->session; + my $form = $session->form; + + # TODO: test if assetId and issueId are valid. + my $assetId = $form->guid( 'assetId' ); + my $issueId = $form->guid( 'issueId' ); + + my $mailing = WebGUI::Mailing->create( $session, { + assetId => $assetId, + issueId => $issueId, + active => 0, + } ); + + return $self->www_view; +} + sub www_view { - my $self = shift; + my $self = shift; + my $session = $self->session; + my $url = $session->url; my $letters = $self->getMailables; my @newsletterLoop; foreach my $letter ( @{ $letters } ) { + my $letterId = $letter->getId; + my @issues; foreach my $issue ( @{ $letter->getIssues } ) { my $issueId = $issue->getId; + + my @mailings; + my $it = WebGUI::Mailing->getAllIterator( $session, { sequenceKeyValue => $issueId } ); + while ( my $mailing = $it->() ) { + push @mailings, $mailing->get; + }; + push @issues, { %{ $issue->get }, - url => $issue->getUrl, - previewUrl => $letter->getUrl( "func=previewEmail;issueId=$issueId" ), - editUrl => $issue->getUrl( 'func=edit' ), - sendUrl => '', - sendTestUrl => '', + url => $issue->getUrl, + createMailingUrl => $url->page("newsletter=manage;func=createMailing;assetId=$letterId;issueId=$issueId"), + previewUrl => $letter->getUrl( "func=previewEmail;issueId=$issueId" ), + editUrl => $issue->getUrl( 'func=edit' ), + sendUrl => '', + sendTestUrl => '', + mailing_loop => \@mailings, }; }