Persist form data in the Files and Images.

Reformat lots of AdSku code, and change it to persist the storage for uploading an Image ad.
This commit is contained in:
Colin Kuskie 2009-08-28 22:56:17 +00:00
parent 9d23680e99
commit 2f3b8b8037
3 changed files with 89 additions and 91 deletions

View file

@ -1,4 +1,5 @@
7.7.19 7.7.19
- fixed #10839: Ad Sales: Uploaded Images Disappear
- fixed #10851: Search Template Pagination - fixed #10851: Search Template Pagination
- fixed #10850: Unable to check out with Sales Ad asset - fixed #10850: Unable to check out with Sales Ad asset
- fixed #10845: Shop 'Who can manage' denied access - fixed #10845: Shop 'Who can manage' denied access

View file

@ -28,7 +28,7 @@ use Data::Dumper;
=head1 NAME =head1 NAME
Package WebGUI::Asset::Sku::Ad Package WebGUI::Asset::Sku::Ad
=head1 DESCRIPTION =head1 DESCRIPTION
@ -53,29 +53,29 @@ Adds purchaseTemplate, manageTemplate, adSpace, priority, pricePerClick, pricePe
=cut =cut
sub definition { sub definition {
my $class = shift; my $class = shift;
my $session = shift; my $session = shift;
my $definition = shift; my $definition = shift;
my %properties; my %properties;
tie %properties, 'Tie::IxHash'; tie %properties, 'Tie::IxHash';
my $i18n = WebGUI::International->new($session, "Asset_AdSku"); my $i18n = WebGUI::International->new($session, "Asset_AdSku");
%properties = ( %properties = (
purchaseTemplate => { purchaseTemplate => {
tab => "display", tab => "display",
fieldType => "template", fieldType => "template",
namespace => "AdSku/Purchase", namespace => "AdSku/Purchase",
defaultValue => 'AldPGu0u-jm_5xK13atCSQ', defaultValue => 'AldPGu0u-jm_5xK13atCSQ',
label => $i18n->get("property purchase template"), label => $i18n->get("property purchase template"),
hoverHelp => $i18n->get("property purchase template help"), hoverHelp => $i18n->get("property purchase template help"),
}, },
manageTemplate => { manageTemplate => {
tab => "display", tab => "display",
fieldType => "template", fieldType => "template",
namespace => "AdSku/Manage", namespace => "AdSku/Manage",
defaultValue => 'ohjyzab5i-yW6GOWTeDUHg', defaultValue => 'ohjyzab5i-yW6GOWTeDUHg',
label => $i18n->get("property manage template"), label => $i18n->get("property manage template"),
hoverHelp => $i18n->get("property manage template help"), hoverHelp => $i18n->get("property manage template help"),
}, },
adSpace => { adSpace => {
tab => "properties", tab => "properties",
fieldType => "AdSpace", fieldType => "AdSpace",
@ -85,36 +85,36 @@ sub definition {
priority => { priority => {
tab => "properties", tab => "properties",
defaultValue => '1', defaultValue => '1',
fieldType => "integer", fieldType => "integer",
label => $i18n->get("property priority"), label => $i18n->get("property priority"),
hoverHelp => $i18n->get("property priority help"), hoverHelp => $i18n->get("property priority help"),
}, },
pricePerClick => { pricePerClick => {
tab => "shop", tab => "shop",
defaultValue => '0.00', defaultValue => '0.00',
fieldType => "float", fieldType => "float",
label => $i18n->get("property price per click"), label => $i18n->get("property price per click"),
hoverHelp => $i18n->get("property price per click help"), hoverHelp => $i18n->get("property price per click help"),
}, },
pricePerImpression => { pricePerImpression => {
tab => "shop", tab => "shop",
defaultValue => '0.00', defaultValue => '0.00',
fieldType => "float", fieldType => "float",
label => $i18n->get("property price per impression"), label => $i18n->get("property price per impression"),
hoverHelp => $i18n->get("property price per impression help"), hoverHelp => $i18n->get("property price per impression help"),
}, },
clickDiscounts => { clickDiscounts => {
tab => "shop", tab => "shop",
fieldType => 'textarea', fieldType => 'textarea',
label => $i18n->get('property click discounts'), label => $i18n->get('property click discounts'),
hoverHelp => $i18n->get('property click discounts help'), hoverHelp => $i18n->get('property click discounts help'),
defaultValue => '', defaultValue => '',
}, },
impressionDiscounts => { impressionDiscounts => {
tab => "shop", tab => "shop",
fieldType => 'textarea', fieldType => 'textarea',
label => $i18n->get('property impression discounts'), label => $i18n->get('property impression discounts'),
hoverHelp => $i18n->get('property impression discounts help'), hoverHelp => $i18n->get('property impression discounts help'),
defaultValue => '', defaultValue => '',
}, },
); );
@ -125,19 +125,19 @@ sub definition {
type => 'integer', type => 'integer',
label => $i18n->get('property adsku karma'), label => $i18n->get('property adsku karma'),
hoverHelp => $i18n->get('property adsku karma description'), hoverHelp => $i18n->get('property adsku karma description'),
defaultvalue => 0, defaultvalue => 0,
}; };
} }
push(@{$definition}, { push(@{$definition}, {
assetName => $i18n->get('assetName'), assetName => $i18n->get('assetName'),
icon => 'adsku.gif', icon => 'adsku.gif',
autoGenerateForms => 1, autoGenerateForms => 1,
tableName => 'AdSku', tableName => 'AdSku',
className => 'WebGUI::Asset::Sku::AdSku', className => 'WebGUI::Asset::Sku::AdSku',
properties => \%properties, properties => \%properties,
}); });
return $class->SUPER::definition($session, $definition); return $class->SUPER::definition($session, $definition);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -207,7 +207,7 @@ sub getDiscountAmount {
my $previousDiscount = 0; my $previousDiscount = 0;
foreach my $discountSet ( @discounts ) { foreach my $discountSet ( @discounts ) {
last if $count < $discountSet->[1]; last if $count < $discountSet->[1];
$previousDiscount = $discountSet->[0]; $previousDiscount = $discountSet->[0];
} }
return $previousDiscount; return $previousDiscount;
} }
@ -288,20 +288,20 @@ sub manage {
my %var; my %var;
$var{purchaseLink} = $self->getUrl; $var{purchaseLink} = $self->getUrl;
my $iterator = WebGUI::AssetCollateral::Sku::Ad::Ad->getAllIterator($session,{ my $iterator = WebGUI::AssetCollateral::Sku::Ad::Ad->getAllIterator($session,{
constraints => [ { "adSkuPurchase.userId = ?" => $self->session->user->userId } ], constraints => [ { "adSkuPurchase.userId = ?" => $self->session->user->userId } ],
orderBy => 'dateOfPurchase', orderBy => 'dateOfPurchase',
}); });
my %ads; my %ads;
while( my $object = $iterator->() ) { OBJECT: while( my $object = $iterator->() ) {
next if $object->get('isDeleted'); next OBJECT if $object->get('isDeleted');
next if exists $ads{$object->get('adId')}; next OBJECT if exists $ads{$object->get('adId')};
my $ad = $ads{$object->get('adId')} = WebGUI::AdSpace::Ad->new($session,$object->get('adId')); my $ad = $ads{$object->get('adId')} = WebGUI::AdSpace::Ad->new($session,$object->get('adId'));
push @{$var{myAds}}, { push @{$var{myAds}}, {
rowTitle => $ad->get('title'), rowTitle => $ad->get('title'),
rowClicks => $ad->get('clicks') . '/' . $ad->get('clicksBought'), rowClicks => $ad->get('clicks') . '/' . $ad->get('clicksBought'),
rowImpressions => $ad->get('impressions') . '/' . $ad->get('impressionsBought'), rowImpressions => $ad->get('impressions') . '/' . $ad->get('impressionsBought'),
rowRenewLink => $self->getUrl('func=renew;Id=' . $object->get('adSkuPurchaseId') ), rowRenewLink => $self->getUrl('func=renew;Id=' . $object->get('adSkuPurchaseId') ),
}; };
} }
return $self->processTemplate(\%var,undef,$self->{_viewTemplate}); return $self->processTemplate(\%var,undef,$self->{_viewTemplate});
} }
@ -391,7 +391,7 @@ sub onRefund {
my $item = shift; my $item = shift;
my $iterator = WebGUI::AssetCollateral::Sku::Ad::Ad->getAllIterator($self->session,{ my $iterator = WebGUI::AssetCollateral::Sku::Ad::Ad->getAllIterator($self->session,{
constraints => [ { "transactionItemId = ?" => $item->getId } ], constraints => [ { "transactionItemId = ?" => $item->getId } ],
}); });
my $crud = $iterator->(); my $crud = $iterator->();
@ -399,8 +399,8 @@ sub onRefund {
my $clicks = $ad->get('clicksBought') - $crud->get('clicksPurchased'); my $clicks = $ad->get('clicksBought') - $crud->get('clicksPurchased');
my $impressions = $ad->get('impressionsBought') - $crud->get('impressionsPurchased') ; my $impressions = $ad->get('impressionsBought') - $crud->get('impressionsPurchased') ;
$ad->set({ $ad->set({
clicksBought => $clicks, clicksBought => $clicks,
impressionsBought => $impressions, impressionsBought => $impressions,
}); });
$crud->delete; $crud->delete;
@ -419,9 +419,9 @@ sub parseDiscountText {
my @lines = split "\n", $discountDescription; my @lines = split "\n", $discountDescription;
my @discounts; my @discounts;
foreach my $line ( @lines ) { foreach my $line ( @lines ) {
if( $line =~ /^(\d+)\@(\d+)/ ) { if( $line =~ /^(\d+)\@(\d+)/ ) {
push @discounts, [ $1, $2 ]; push @discounts, [ $1, $2 ];
} }
} }
return sort { $a->[1] <=> $b->[1] } @discounts; return sort { $a->[1] <=> $b->[1] } @discounts;
} }
@ -435,12 +435,12 @@ Prepares the template.
=cut =cut
sub prepareManage { sub prepareManage {
my $self = shift; my $self = shift;
$self->SUPER::prepareView(); $self->SUPER::prepareView();
my $templateId = $self->get("manageTemplate"); my $templateId = $self->get("manageTemplate");
my $template = WebGUI::Asset::Template->new($self->session, $templateId); my $template = WebGUI::Asset::Template->new($self->session, $templateId);
$template->prepare($self->getMetaDataAsTemplateVariables); $template->prepare($self->getMetaDataAsTemplateVariables);
$self->{_viewTemplate} = $template; $self->{_viewTemplate} = $template;
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -452,12 +452,12 @@ Prepares the template.
=cut =cut
sub prepareView { sub prepareView {
my $self = shift; my $self = shift;
$self->SUPER::prepareView(); $self->SUPER::prepareView();
my $templateId = $self->get("purchaseTemplate"); my $templateId = $self->get("purchaseTemplate");
my $template = WebGUI::Asset::Template->new($self->session, $templateId); my $template = WebGUI::Asset::Template->new($self->session, $templateId);
$template->prepare($self->getMetaDataAsTemplateVariables); $template->prepare($self->getMetaDataAsTemplateVariables);
$self->{_viewTemplate} = $template; $self->{_viewTemplate} = $template;
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -474,7 +474,7 @@ sub view {
my $options = $self->getOptions(); my $options = $self->getOptions();
my $form = $session->form; my $form = $session->form;
my $i18n = WebGUI::International->new($session, "Asset_AdSku"); my $i18n = WebGUI::International->new($session, "Asset_AdSku");
my $adSpace = $self->getAdSpace; my $adSpace = $self->getAdSpace;
my %var = ( my %var = (
formHeader => WebGUI::Form::formHeader($session, { action=>$self->getUrl }) formHeader => WebGUI::Form::formHeader($session, { action=>$self->getUrl })
@ -499,10 +499,10 @@ sub view {
-size=>40 -size=>40
}), }),
formImage => WebGUI::Form::Image($session, { formImage => WebGUI::Form::Image($session, {
-name=>"formImage", -name => "formImage",
-value=>$form->get('formImage','image'), -value => $options->{image} || $form->get('formImage','image'),
-size=>40 -size => 40
-forceImageOnly=>1, -forceImageOnly => 1,
}), }),
formClicks => WebGUI::Form::Integer($session, { formClicks => WebGUI::Form::Integer($session, {
-name=>"formClicks", -name=>"formClicks",
@ -544,10 +544,7 @@ sub www_addToCart {
my $form = $session->form; my $form = $session->form;
my @errors; my @errors;
#my $imageStorage = $self->getOptions->{image} || WebGUI::Storage->create($session); # LATER should be createTemp #my $imageStorage = $self->getOptions->{image} || WebGUI::Storage->create($session); # LATER should be createTemp
$session->log->warn(Dumper($self->getOptions));
my $imageStorageId = $form->process('formImage', 'image'); # , $self->getOptions->{image}); my $imageStorageId = $form->process('formImage', 'image'); # , $self->getOptions->{image});
$session->log->warn("storageId: $imageStorageId");
$session->log->warn("storageText: ". $form->process('formImage'));
my $imageStorage = WebGUI::Storage->get($session,$imageStorageId); my $imageStorage = WebGUI::Storage->get($session,$imageStorageId);
my $code; my $code;
if( not defined $imageStorage ) { if( not defined $imageStorage ) {
@ -644,18 +641,18 @@ renew an ad
=cut =cut
sub www_renew { sub www_renew {
my $self = shift; my $self = shift;
my $session = $self->session; my $session = $self->session;
my $id = $session->form->get('Id'); my $id = $session->form->get('Id');
my $crud = WebGUI::AssetCollateral::Sku::Ad::Ad->new($session,$id); my $crud = WebGUI::AssetCollateral::Sku::Ad::Ad->new($session,$id);
my $ad = WebGUI::AdSpace::Ad->new($session,$crud->get('adId')); my $ad = WebGUI::AdSpace::Ad->new($session,$crud->get('adId'));
$self->applyOptions({ $self->applyOptions({
adtitle => $ad->get('title'), adtitle => $ad->get('title'),
clicks => $crud->get('clicksPurchased'), clicks => $crud->get('clicksPurchased'),
impressions => $crud->get('impressionsPurchased'), impressions => $crud->get('impressionsPurchased'),
link => $ad->get('url'), link => $ad->get('url'),
image => $ad->get('storageId'), image => $ad->get('storageId'),
adId => $crud->get('adId'), adId => $crud->get('adId'),
}); });
return $self->www_view; return $self->www_view;
} }

View file

@ -181,7 +181,7 @@ deleting the file if it was specified.
sub getValue { sub getValue {
my $self = shift; my $self = shift;
my $value = $self->get("value"); my $value = $self->SUPER::getValue(@_);
my $storage = WebGUI::Storage->get($self->session,$value); my $storage = WebGUI::Storage->get($self->session,$value);
if (defined $storage) { if (defined $storage) {
foreach my $file (@{$storage->getFiles}) { foreach my $file (@{$storage->getFiles}) {