migrated webgui product

This commit is contained in:
JT Smith 2006-01-12 18:21:47 +00:00
parent cfa77c82fa
commit 388cd8f306
4 changed files with 43 additions and 26 deletions

View file

@ -796,6 +796,13 @@ WebGUI::Paginator API was changed to use the new session API.
perl -pi.bak -e 's!WebGUI\:\:Paginator\-\>new\(!WebGUI::Paginator->new(\$self->session,!g' fileNameGoesHere perl -pi.bak -e 's!WebGUI\:\:Paginator\-\>new\(!WebGUI::Paginator->new(\$self->session,!g' fileNameGoesHere
5.23.19 WebGUI::Product API Refactored
WebGUI::Product now accepts session in the constructor.
perl -pi.bak -e 's!WebGUI\:\:Product\-\>new\(!WebGUI::Product->new(\$self->session,!g' fileNameGoesHere
6. Automatic list of Assets in Help System. 6. Automatic list of Assets in Help System.
------------------------------------- -------------------------------------

View file

@ -40,7 +40,7 @@ sub process {
return WebGUI::International::get('cannot find product','Macro_Product') unless ($productId); return WebGUI::International::get('cannot find product','Macro_Product') unless ($productId);
$product = WebGUI::Product->new($productId); $product = WebGUI::Product->new($self->session,$productId);
if ($variantId) { if ($variantId) {
$variant = [ $product->getVariant($variantId) ]; $variant = [ $product->getVariant($variantId) ];

View file

@ -71,7 +71,7 @@ sub www_deleteProduct {
return $session->privilege->insufficient unless ($session->user->isInGroup(14)); return $session->privilege->insufficient unless ($session->user->isInGroup(14));
WebGUI::Product->new($productId)->delete; WebGUI::Product->new($session,$productId)->delete;
return WebGUI::Operation::execute('listProducts'); return WebGUI::Operation::execute('listProducts');
} }
@ -87,7 +87,7 @@ sub www_editProduct {
$productId = $session->form->process("productId"); $productId = $session->form->process("productId");
unless ($productId eq 'new') { unless ($productId eq 'new') {
$product = WebGUI::Product->new($productId)->get; $product = WebGUI::Product->new($session,$productId)->get;
} }
$f = WebGUI::HTMLForm->new($session); $f = WebGUI::HTMLForm->new($session);
@ -169,7 +169,7 @@ sub www_editProductSave {
return '<ul><li>'.join('</li><li>', @error).'</li></ul><br />'.WebGUI::Operation::execute('editProduct') if (@error); return '<ul><li>'.join('</li><li>', @error).'</li></ul><br />'.WebGUI::Operation::execute('editProduct') if (@error);
$productId = $session->form->process("productId"); $productId = $session->form->process("productId");
$product = WebGUI::Product->new($productId); $product = WebGUI::Product->new($session,$productId);
$product->set({ $product->set({
title => $session->form->process("title"), title => $session->form->process("title"),
description => $session->form->process("description"), description => $session->form->process("description"),
@ -247,7 +247,7 @@ sub www_editProductParameterSave {
return "<ul><li>".join('</li><li>', @error)."</li></ul>".WebGUI::Operation::execute('editProductParameter') if (@error); return "<ul><li>".join('</li><li>', @error)."</li></ul>".WebGUI::Operation::execute('editProductParameter') if (@error);
$product = WebGUI::Product->new($session->form->process("productId")); $product = WebGUI::Product->new($session,$session->form->process("productId"));
$skuTemplate = $product->get('skuTemplate'); $skuTemplate = $product->get('skuTemplate');
if ($parameterId eq 'new') { if ($parameterId eq 'new') {
@ -437,7 +437,7 @@ sub www_editSkuTemplate {
$i18n = WebGUI::International->new($session, "ProductManager"); $i18n = WebGUI::International->new($session, "ProductManager");
$productId = $session->form->process("productId"); $productId = $session->form->process("productId");
$product = WebGUI::Product->new($productId); $product = WebGUI::Product->new($session,$productId);
$output .= "Available are: <br />\n"; $output .= "Available are: <br />\n";
$output .= "<ul><li>base</li>\n"; $output .= "<ul><li>base</li>\n";
@ -474,7 +474,7 @@ sub www_editSkuTemplateSave {
return $session->privilege->insufficient unless ($session->user->isInGroup(14)); return $session->privilege->insufficient unless ($session->user->isInGroup(14));
WebGUI::Product->new($productId)->set({ WebGUI::Product->new($session,$productId)->set({
skuTemplate => $session->form->process("skuTemplate"), skuTemplate => $session->form->process("skuTemplate"),
}); });
@ -522,7 +522,7 @@ sub www_listProductVariants {
return WebGUI::Operation::execute('listProducts') if ($productId eq 'new' || !$productId); return WebGUI::Operation::execute('listProducts') if ($productId eq 'new' || !$productId);
$product = WebGUI::Product->new($productId); $product = WebGUI::Product->new($session,$productId);
@variants = sort {$a->{composition} cmp $b->{composition}} @{$product->getVariant}; @variants = sort {$a->{composition} cmp $b->{composition}} @{$product->getVariant};
tie %parameters, "Tie::IxHash"; tie %parameters, "Tie::IxHash";
@ -580,7 +580,7 @@ sub www_listProductVariantsSave {
my %availableVariants = map {$_ => 1} $session->form->selectList('available'); my %availableVariants = map {$_ => 1} $session->form->selectList('available');
my $product = WebGUI::Product->new($session->form->process("productId")); my $product = WebGUI::Product->new($session,$session->form->process("productId"));
my @variants = @{$product->getVariant}; my @variants = @{$product->getVariant};
foreach (@variants) { foreach (@variants) {
@ -604,7 +604,7 @@ sub www_manageProduct {
return WebGUI::Operation::execute('listProducts') if ($productId eq 'new' || !$productId); return WebGUI::Operation::execute('listProducts') if ($productId eq 'new' || !$productId);
$session->scratch->set('managingProduct', $productId); $session->scratch->set('managingProduct', $productId);
$product = WebGUI::Product->new($productId); $product = WebGUI::Product->new($session,$productId);
$output .= "<h1>".$product->get('title')."</h1>"; $output .= "<h1>".$product->get('title')."</h1>";
$output .= "<h2>".$i18n->get('properties').$session->icon->edit('op=editProduct;productId='.$productId)."</h2>"; $output .= "<h2>".$i18n->get('properties').$session->icon->edit('op=editProduct;productId='.$productId)."</h2>";

View file

@ -1,8 +1,6 @@
package WebGUI::Product; package WebGUI::Product;
use strict; use strict;
use WebGUI::SQL;
use WebGUI::Id;
use WebGUI::Asset::Template; use WebGUI::Asset::Template;
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -139,7 +137,7 @@ sub getByOptionId {
return undef unless ($productId); return undef unless ($productId);
return WebGUI::Product->new($productId); return WebGUI::Product->new($self->session,$productId);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -150,7 +148,7 @@ sub getByParameterId {
($productId) = $self->session->db->quickArray("select productId from productParameters where parameterId=".$self->session->db->quote($parameterId)); ($productId) = $self->session->db->quickArray("select productId from productParameters where parameterId=".$self->session->db->quote($parameterId));
return WebGUI::Product->new($productId); return WebGUI::Product->new($self->session,$productId);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -161,7 +159,7 @@ sub getByVariantId {
($productId) = $self->session->db->quickArray("select productId from productVariants where variantId=".$self->session->db->quote($variantId)); ($productId) = $self->session->db->quickArray("select productId from productVariants where variantId=".$self->session->db->quote($variantId));
return WebGUI::Product->new($productId); return WebGUI::Product->new($self->session,$productId);
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------
@ -201,24 +199,22 @@ sub getVariant {
sub new { sub new {
my ($class, $productId, $properties, $parameters, $variants, $options, $sth, %row, $option, $new); my ($class, $productId, $properties, $parameters, $variants, $options, $sth, %row, $option, $new);
$class = shift; $class = shift;
my $session = shift;
$productId = shift; $productId = shift;
$session->errorHandler->fatal('no productId') unless ($productId);
$self->session->errorHandler->fatal('no productId') unless ($productId);
$parameters = {}; $parameters = {};
$variants = {}; $variants = {};
$options = {}; $options = {};
if ($productId eq 'new') { if ($productId eq 'new') {
$productId = $self->session->id->generate; $productId = $session->id->generate;
$properties = {productId => $productId}; $properties = {productId => $productId};
$self->session->db->write("insert into products (productId) values (".$self->session->db->quote($productId).")"); $session->db->write("insert into products (productId) values (".$session->db->quote($productId).")");
} else { } else {
$properties = $self->session->db->quickHashRef("select * from products where productId=".$self->session->db->quote($productId)); $properties = $self->session->db->quickHashRef("select * from products where productId=".$session->db->quote($productId));
# fetch parameters and options # fetch parameters and options
$sth = $self->session->db->read("select opt.*, param.* from productParameters as param left join productParameterOptions as opt ". $sth = $session->db->read("select opt.*, param.* from productParameters as param left join productParameterOptions as opt ".
"on param.parameterId=opt.parameterId where param.productId=".$self->session->db->quote($productId)); "on param.parameterId=opt.parameterId where param.productId=".$session->db->quote($productId));
while (%row = $sth->hash) { while (%row = $sth->hash) {
$parameters->{$row{parameterId}} = { $parameters->{$row{parameterId}} = {
name => $row{name}, name => $row{name},
@ -240,7 +236,7 @@ sub new {
} }
# fetch variants # fetch variants
$sth = $self->session->db->read("select * from productVariants where productId=".$self->session->db->quote($productId)); $sth = $session->db->read("select * from productVariants where productId=".$session->db->quote($productId));
while (%row = $sth->hash) { while (%row = $sth->hash) {
$variants->{$row{variantId}} = {%row}; $variants->{$row{variantId}} = {%row};
} }
@ -248,9 +244,23 @@ sub new {
$new = 0; $new = 0;
} }
bless {_properties => $properties, _parameters => $parameters, _options => $options, _variants => $variants, _new => $new}, $class; bless {_session=> $session, _properties => $properties, _parameters => $parameters, _options => $options, _variants => $variants, _new => $new}, $class;
} }
#-------------------------------------------------------------------
=head3 session
Returns a reference to the session.
=cut
sub session {
my $self = shift;
return $self->{_session};
}
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub set { sub set {
my ($self, $properties); my ($self, $properties);