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' );
|
my $i18n = WebGUI::International->new( $session,'AssetAspect_Subscriber' );
|
||||||
|
|
||||||
tie my %properties, 'Tie::IxHash', (
|
tie my %properties, 'Tie::IxHash', (
|
||||||
|
listName => {
|
||||||
|
fieldType => 'text',
|
||||||
|
label => $i18n->echo("List name"),
|
||||||
|
tab => 'subscription',
|
||||||
|
},
|
||||||
subscriptionGroupId => {
|
subscriptionGroupId => {
|
||||||
fieldType => 'subscriptionGroup',
|
fieldType => 'subscriptionGroup',
|
||||||
label => $i18n->get( 'Subscription group' ),
|
label => $i18n->get( 'Subscription group' ),
|
||||||
|
|
@ -264,6 +269,45 @@ sub getEmailVars {
|
||||||
return $var;
|
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 {
|
sub sendSubscriptionConfirmation {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@ use strict;
|
||||||
use Pod::Usage;
|
use Pod::Usage;
|
||||||
use Getopt::Long;
|
use Getopt::Long;
|
||||||
use WebGUI::Session;
|
use WebGUI::Session;
|
||||||
use List::MoreUtils qw{ insert_after_string };
|
use List::MoreUtils qw{ insert_after_string none };
|
||||||
|
|
||||||
# Get parameters here, including $help
|
# Get parameters here, including $help
|
||||||
GetOptions(
|
GetOptions(
|
||||||
|
|
@ -32,9 +32,26 @@ addTemplateColumnToNewsletterCollection( $session );
|
||||||
addRecentColumnToNewsletterCollection( $session );
|
addRecentColumnToNewsletterCollection( $session );
|
||||||
renamespaceTemplates( $session );
|
renamespaceTemplates( $session );
|
||||||
addSpecialStateTable( $session );
|
addSpecialStateTable( $session );
|
||||||
|
addListNameColumn( $session );
|
||||||
|
|
||||||
finish($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 {
|
sub installMailableAspectTable {
|
||||||
my $session = shift;
|
my $session = shift;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue