webgui_newsletter/lib/WebGUI/Newsletter/Admin.pm
2010-04-22 17:17:32 +02:00

63 lines
1.5 KiB
Perl

package WebGUI::Newsletter::Admin;
use strict;
use warnings;
use Carp 'confess';
sub getMailables {
my $self = shift;
return WebGUI::Asset->getRoot( $self->session )->getLineage( ['descendants'], {
returnObjects => 1,
whereClause => 'assetData.assetId in (select distinct assetId from assetAspectMailable)',
} );
}
sub new {
my $class = shift;
my $session = shift || confess 'No session passed';
bless { _session => $session }, $class;
}
sub session {
return (shift)->{ _session };
}
sub www_view {
my $self = shift;
my $letters = $self->getMailables;
my @newsletterLoop;
foreach my $letter ( @{ $letters } ) {
my @issues;
foreach my $issue ( @{ $letter->getIssues } ) {
my $issueId = $issue->getId;
push @issues, {
%{ $issue->get },
url => $issue->getUrl,
previewUrl => $letter->getUrl( "func=previewEmail;issueId=$issueId" ),
editUrl => $issue->getUrl( 'func=edit' ),
sendUrl => '',
sendTestUrl => '',
};
}
push @newsletterLoop, {
%{ $letter->get },
issue_loop => \@issues,
issueCount => scalar( @issues ),
};
}
my $var = { newsletter_loop => \@newsletterLoop };
my $template = WebGUI::Asset::Template->new( $self->session, 'FTfNhWI8KJOwLzFUl5rYeQ' );
return $template->process( $var );
}
1;