PayDriver now does dynamic form building through Definition.
This commit is contained in:
parent
4dde0e3e07
commit
ee1e896ef8
2 changed files with 82 additions and 74 deletions
|
|
@ -423,7 +423,6 @@ Returns the configuration form for the options of this plugin.
|
||||||
sub getEditForm {
|
sub getEditForm {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
|
|
||||||
my $definition = $self->definition($self->session);
|
|
||||||
my $form = WebGUI::HTMLForm->new($self->session);
|
my $form = WebGUI::HTMLForm->new($self->session);
|
||||||
$form->submit;
|
$form->submit;
|
||||||
|
|
||||||
|
|
@ -432,6 +431,15 @@ sub getEditForm {
|
||||||
name => 'className',
|
name => 'className',
|
||||||
value => $self->className,
|
value => $self->className,
|
||||||
);
|
);
|
||||||
|
tie my %form_options, 'Tie::IxHash';
|
||||||
|
foreach my $property_name ($self->getProperties) {
|
||||||
|
my $property = $self->meta->find_attribute_by_name($property_name);
|
||||||
|
$form_options{$property_name} = {
|
||||||
|
value => $self->$property_name,
|
||||||
|
%{ $self->getFormProperties($property_name)},
|
||||||
|
};
|
||||||
|
}
|
||||||
|
my $definition = [ { properties => \%form_options }, ];
|
||||||
$form->dynamicForm($definition, 'properties', $self);
|
$form->dynamicForm($definition, 'properties', $self);
|
||||||
|
|
||||||
return $form;
|
return $form;
|
||||||
|
|
@ -535,9 +543,9 @@ sub processPayment {
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
=head2 processPropertiesFromFormPost ( )
|
=head2 processTemplate ( )
|
||||||
|
|
||||||
Updates pay driver with data from Form.
|
Common code for processing a template and doing exception handling.
|
||||||
|
|
||||||
=cut
|
=cut
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -176,77 +176,77 @@ isa_ok ($cart, 'WebGUI::Shop::Cart', 'getCart returns an instantiated WebGU
|
||||||
#
|
#
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
||||||
#my $form = $driver->getEditForm;
|
my $form = $driver->getEditForm;
|
||||||
#
|
|
||||||
#isa_ok ($form, 'WebGUI::HTMLForm', 'getEditForm returns an HTMLForm object');
|
isa_ok ($form, 'WebGUI::HTMLForm', 'getEditForm returns an HTMLForm object');
|
||||||
#
|
|
||||||
#my $html = $form->print;
|
my $html = $form->print;
|
||||||
#
|
|
||||||
###Any URL is fine, really
|
##Any URL is fine, really
|
||||||
#my @forms = HTML::Form->parse($html, 'http://www.webgui.org');
|
my @forms = HTML::Form->parse($html, 'http://www.webgui.org');
|
||||||
#is (scalar @forms, 1, 'getEditForm generates just 1 form');
|
is (scalar @forms, 1, 'getEditForm generates just 1 form');
|
||||||
#
|
|
||||||
#my @inputs = $forms[0]->inputs;
|
my @inputs = $forms[0]->inputs;
|
||||||
#is (scalar @inputs, 11, 'getEditForm: the form has 11 controls');
|
is (scalar @inputs, 11, 'getEditForm: the form has 11 controls');
|
||||||
#
|
|
||||||
#my @interestingFeatures;
|
my @interestingFeatures;
|
||||||
#foreach my $input (@inputs) {
|
foreach my $input (@inputs) {
|
||||||
# my $name = $input->name;
|
my $name = $input->name;
|
||||||
# my $type = $input->type;
|
my $type = $input->type;
|
||||||
# push @interestingFeatures, { name => $name, type => $type };
|
push @interestingFeatures, { name => $name, type => $type };
|
||||||
#}
|
}
|
||||||
#
|
|
||||||
#cmp_deeply(
|
cmp_deeply(
|
||||||
# \@interestingFeatures,
|
\@interestingFeatures,
|
||||||
# [
|
[
|
||||||
# {
|
{
|
||||||
# name => 'webguiCsrfToken',
|
name => 'webguiCsrfToken',
|
||||||
# type => 'hidden',
|
type => 'hidden',
|
||||||
# },
|
},
|
||||||
# {
|
{
|
||||||
# name => undef,
|
name => undef,
|
||||||
# type => 'submit',
|
type => 'submit',
|
||||||
# },
|
},
|
||||||
# {
|
{
|
||||||
# name => 'shop',
|
name => 'shop',
|
||||||
# type => 'hidden',
|
type => 'hidden',
|
||||||
# },
|
},
|
||||||
# {
|
{
|
||||||
# name => 'method',
|
name => 'method',
|
||||||
# type => 'hidden',
|
type => 'hidden',
|
||||||
# },
|
},
|
||||||
# {
|
{
|
||||||
# name => 'do',
|
name => 'do',
|
||||||
# type => 'hidden',
|
type => 'hidden',
|
||||||
# },
|
},
|
||||||
# {
|
{
|
||||||
# name => 'paymentGatewayId',
|
name => 'paymentGatewayId',
|
||||||
# type => 'hidden',
|
type => 'hidden',
|
||||||
# },
|
},
|
||||||
# {
|
{
|
||||||
# name => 'className',
|
name => 'className',
|
||||||
# type => 'hidden',
|
type => 'hidden',
|
||||||
# },
|
},
|
||||||
# {
|
{
|
||||||
# name => 'label',
|
name => 'label',
|
||||||
# type => 'text',
|
type => 'text',
|
||||||
# },
|
},
|
||||||
# {
|
{
|
||||||
# name => 'enabled',
|
name => 'enabled',
|
||||||
# type => 'radio',
|
type => 'radio',
|
||||||
# },
|
},
|
||||||
# {
|
{
|
||||||
# name => 'groupToUse',
|
name => 'groupToUse',
|
||||||
# type => 'option',
|
type => 'option',
|
||||||
# },
|
},
|
||||||
# {
|
{
|
||||||
# name => '__groupToUse_isIn',
|
name => '__groupToUse_isIn',
|
||||||
# type => 'hidden',
|
type => 'hidden',
|
||||||
# },
|
},
|
||||||
# ],
|
],
|
||||||
# 'getEditForm made the correct form with all the elements'
|
'getEditForm made the correct form with all the elements'
|
||||||
#
|
|
||||||
#);
|
);
|
||||||
|
|
||||||
|
|
||||||
#######################################################################
|
#######################################################################
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue