63 lines
1.5 KiB
Perl
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;
|
|
|