Adding basis of nl manager.
This commit is contained in:
parent
0fa97d2d9d
commit
af40a772a9
4 changed files with 98 additions and 21 deletions
|
|
@ -24,25 +24,25 @@ sub canUnsubscribe {
|
|||
return !$self->session->user->isVisitor && $self->isSubscribed;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub configureMailingForm {
|
||||
my $self = shift;
|
||||
my $f = $self->next::method;
|
||||
|
||||
tie my %issues, 'Tie::IxHash', (
|
||||
'' => 'Choose issue...',
|
||||
map { $_->getId => $_->getTitle }
|
||||
@{ $self->getIssues }
|
||||
);
|
||||
|
||||
$f->selectBox(
|
||||
name => $issue,
|
||||
label => 'Issue',
|
||||
options => $self->getIssues
|
||||
);
|
||||
|
||||
return $f;
|
||||
}
|
||||
##----------------------------------------------------------------------------
|
||||
#sub configureMailingForm {
|
||||
# my $self = shift;
|
||||
# my $f = $self->next::method;
|
||||
#
|
||||
# tie my %issues, 'Tie::IxHash', (
|
||||
# '' => 'Choose issue...',
|
||||
# map { $_->getId => $_->getTitle }
|
||||
# @{ $self->getIssues }
|
||||
# );
|
||||
#
|
||||
# $f->selectBox(
|
||||
# name => 'issue',
|
||||
# label => 'Issue',
|
||||
# options => $self->getIssues
|
||||
# );
|
||||
#
|
||||
# return $f;
|
||||
#}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub definition {
|
||||
|
|
@ -80,8 +80,9 @@ sub getIssues {
|
|||
|
||||
#----------------------------------------------------------------------------
|
||||
sub getRecipients {
|
||||
my $self = shift;
|
||||
|
||||
my $self = shift;
|
||||
my $db = $self->session->db;
|
||||
|
||||
my @subscribers = $db->buildArray( 'select userId from NewsletterCollection_subscriptions where assetId=?', [
|
||||
$self->getId,
|
||||
] );
|
||||
|
|
|
|||
21
lib/WebGUI/Content/NewsletterManager.pm
Normal file
21
lib/WebGUI/Content/NewsletterManager.pm
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
package WebGUI::Content::NewsletterManager;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub handler {
|
||||
my $session = shift;
|
||||
my $form = $session->form;
|
||||
|
||||
return unless $form->get('newsletter') eq 'manage';
|
||||
|
||||
my $func = 'www_' . ( $form->get('func') || 'view' );
|
||||
|
||||
my $nl = WebGUI::Newsletter::Admin->new( $session );
|
||||
return unless $nl->can( $func );
|
||||
|
||||
return $nl->$func;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
55
lib/WebGUI/Newsletter/Admin.pm
Normal file
55
lib/WebGUI/Newsletter/Admin.pm
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
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 =
|
||||
map { $_->get }
|
||||
@{ $letter->getIssues };
|
||||
|
||||
|
||||
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;
|
||||
|
||||
BIN
sbin/packages/root_import_personalnewsletter.wgpkg
Normal file
BIN
sbin/packages/root_import_personalnewsletter.wgpkg
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue