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