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;
|
return !$self->session->user->isVisitor && $self->isSubscribed;
|
||||||
}
|
}
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
##----------------------------------------------------------------------------
|
||||||
sub configureMailingForm {
|
#sub configureMailingForm {
|
||||||
my $self = shift;
|
# my $self = shift;
|
||||||
my $f = $self->next::method;
|
# my $f = $self->next::method;
|
||||||
|
#
|
||||||
tie my %issues, 'Tie::IxHash', (
|
# tie my %issues, 'Tie::IxHash', (
|
||||||
'' => 'Choose issue...',
|
# '' => 'Choose issue...',
|
||||||
map { $_->getId => $_->getTitle }
|
# map { $_->getId => $_->getTitle }
|
||||||
@{ $self->getIssues }
|
# @{ $self->getIssues }
|
||||||
);
|
# );
|
||||||
|
#
|
||||||
$f->selectBox(
|
# $f->selectBox(
|
||||||
name => $issue,
|
# name => 'issue',
|
||||||
label => 'Issue',
|
# label => 'Issue',
|
||||||
options => $self->getIssues
|
# options => $self->getIssues
|
||||||
);
|
# );
|
||||||
|
#
|
||||||
return $f;
|
# return $f;
|
||||||
}
|
#}
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
sub definition {
|
sub definition {
|
||||||
|
|
@ -80,7 +80,8 @@ sub getIssues {
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
#----------------------------------------------------------------------------
|
||||||
sub getRecipients {
|
sub getRecipients {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
my $db = $self->session->db;
|
||||||
|
|
||||||
my @subscribers = $db->buildArray( 'select userId from NewsletterCollection_subscriptions where assetId=?', [
|
my @subscribers = $db->buildArray( 'select userId from NewsletterCollection_subscriptions where assetId=?', [
|
||||||
$self->getId,
|
$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