Add listname property.
This commit is contained in:
parent
66209f4102
commit
9422d7cd84
2 changed files with 62 additions and 1 deletions
|
|
@ -19,6 +19,11 @@ sub definition {
|
|||
my $i18n = WebGUI::International->new( $session,'AssetAspect_Subscriber' );
|
||||
|
||||
tie my %properties, 'Tie::IxHash', (
|
||||
listName => {
|
||||
fieldType => 'text',
|
||||
label => $i18n->echo("List name"),
|
||||
tab => 'subscription',
|
||||
},
|
||||
subscriptionGroupId => {
|
||||
fieldType => 'subscriptionGroup',
|
||||
label => $i18n->get( 'Subscription group' ),
|
||||
|
|
@ -264,6 +269,45 @@ sub getEmailVars {
|
|||
return $var;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub getAssetByListName {
|
||||
my $class = shift;
|
||||
my $session = shift;
|
||||
my $listName = shift || return;
|
||||
my $db = $session->db;
|
||||
|
||||
my $assetId = $db->quickScalar( 'select assetId from assetAspectSubscriber where listName=? limit 1', [
|
||||
$listName
|
||||
] );
|
||||
|
||||
return unless $assetId;
|
||||
|
||||
my $asset = WebGUI::Asset->newByDynamicClass( $session, $assetId );
|
||||
|
||||
return $asset;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub processPropertiesFromFormPost {
|
||||
my $self = shift;
|
||||
my $session = $self->session;
|
||||
my $form = $session->form;
|
||||
|
||||
my $listName = $form->get('listName');
|
||||
my $asset = WebGUI::AssetAspect::Subscriber->getAssetByListName( $session, $listName );
|
||||
|
||||
my $errors = $self->next::method;
|
||||
|
||||
if ( $asset && $asset->getId ne $self->getId ) {
|
||||
return [
|
||||
@{ $errors || [] },
|
||||
"List name $listName is already taken."
|
||||
];
|
||||
}
|
||||
|
||||
return $errors;
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub sendSubscriptionConfirmation {
|
||||
my $self = shift;
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ use strict;
|
|||
use Pod::Usage;
|
||||
use Getopt::Long;
|
||||
use WebGUI::Session;
|
||||
use List::MoreUtils qw{ insert_after_string };
|
||||
use List::MoreUtils qw{ insert_after_string none };
|
||||
|
||||
# Get parameters here, including $help
|
||||
GetOptions(
|
||||
|
|
@ -32,9 +32,26 @@ addTemplateColumnToNewsletterCollection( $session );
|
|||
addRecentColumnToNewsletterCollection( $session );
|
||||
renamespaceTemplates( $session );
|
||||
addSpecialStateTable( $session );
|
||||
addListNameColumn( $session );
|
||||
|
||||
finish($session);
|
||||
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub addListNameColumn {
|
||||
my $session = shift;
|
||||
my $db = $session->db;
|
||||
print "\tAdding list name column for subscribers...";
|
||||
|
||||
my @columns = $db->buildArray( 'desc assetAspectSubscriber' );
|
||||
|
||||
if ( none { $_ eq 'listName' } @columns ) {
|
||||
$db->write( 'alter table assetAspectSubscriber add column listName varchar(255)' );
|
||||
}
|
||||
|
||||
print "Done.\n";
|
||||
}
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
sub installMailableAspectTable {
|
||||
my $session = shift;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue