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:
parent
9d23680e99
commit
2f3b8b8037
3 changed files with 89 additions and 91 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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}) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue