Make newsletter settable

This commit is contained in:
Martin Kamerbeek 2010-12-15 17:19:42 +01:00
parent 0d1b0fe7ac
commit 3ffb43bd68

View file

@ -15,12 +15,15 @@ sub getAvailableMailings {
my $self = shift;
my $session = $self->session;
my $availableMailings = WebGUI::Asset->getRoot( $session )->getLineage( ['descendants'], {
returnObjects => 1,
isa => 'WebGUI::Asset::Wobject::NewsletterCollection',
} );
my $mailingIds = $self->get( 'includeMailings' );
return $availableMailings;
my @mailings =
grep { defined $_ }
map { WebGUI::Asset->newByDynamicClass( $session, $_ ) }
ref $mailingIds eq 'ARRAY' ? @{ $mailingIds } : $mailingIds
;
return \@mailings;
}
#-------------------------------------------------------------------
@ -31,7 +34,7 @@ sub apply {
my $subscribeTo = {
map { $_ => 1 } @{ $self->getConfigurationData->{ subscribeMailings } || [] }
};
my $availableMailings = $self->getAvailableMailings;
my $sendNotification = 0;
@ -49,22 +52,32 @@ sub apply {
return;
}
##-------------------------------------------------------------------
#sub crud_definition {
# my $class = shift;
# my $session = shift;
# my $definition = $class->SUPER::crud_definition( $session );
# my $i18n = WebGUI::International->new( $session, 'Registration_Step_Homepage' );
#
#
# $definition->{ dynamic }->{ urlStorageField } = {
# fieldType => 'selectBox',
# label => 'Store homepage url in field',
# options => \%profileFields,
# };
#
# return $definition;
#}
#-------------------------------------------------------------------
sub crud_definition {
my $class = shift;
my $session = shift;
my $definition = $class->SUPER::crud_definition( $session );
my $i18n = WebGUI::International->new( $session, 'Registration_Step_Homepage' );
tie my %mailings, 'Tie::IxHash', (
map { $_->getId => $_->getTitle }
@{
WebGUI::Asset->getRoot( $session )->getLineage( ['descendants'], {
returnObjects => 1,
isa => 'WebGUI::Asset::Wobject::NewsletterCollection',
} )
}
);
$definition->{ dynamic }->{ includeMailings } = {
fieldType => 'checkList',
label => 'Store homepage url in field',
options => \%mailings,
vertical => 1,
};
return $definition;
}
#-------------------------------------------------------------------
sub getSummaryTemplateVars {
@ -77,7 +90,7 @@ sub getSummaryTemplateVars {
# Fetch preferred homepage url
my $mailings = $self->getConfigurationData->{ subscribeMailings };
my @assets =
my @assets =
grep { defined $_ }
map { WebGUI::Asset->newByDynamicClass( $session, $_ ) }
@{ $mailings };
@ -89,12 +102,12 @@ sub getSummaryTemplateVars {
# Setup tmpl_var
my $var = {
field_loop => \@fields,
field_loop => \@fields,
category_label => $self->get('title'),
category_edit_url => $self->changeStepDataUrl,
};
return ( $var );
return ( $var );
}
#-------------------------------------------------------------------
@ -119,7 +132,7 @@ sub getViewVars {
}
else {
# The step hasn't been done yet.
@subscribeMailings = grep { $_->isSubscribed( $user ) } @{ $availableMailings };
@subscribeMailings = map { $_->getId } grep { $_->isSubscribed( $user ) } @{ $availableMailings };
}
# Create lookup table
@ -171,10 +184,7 @@ sub updateFromFormPost {
my $self = shift;
my $session = $self->session;
$self->SUPER::updateFromFormPost;
# $self->update( {
# } );
return $self->SUPER::updateFromFormPost;
}
#-------------------------------------------------------------------