migrate DataForm www_editField to FormBuilder

This commit is contained in:
Doug Bell 2011-01-26 16:05:39 -06:00
parent 325dbad2a3
commit 8c01fdbc73
2 changed files with 66 additions and 32 deletions

View file

@ -17,7 +17,7 @@ http://www.plainblack.com info@plainblack.com
use strict; use strict;
use Tie::IxHash; use Tie::IxHash;
use WebGUI::Form; use WebGUI::Form;
use WebGUI::HTMLForm; use WebGUI::FormBuilder;
use WebGUI::International; use WebGUI::International;
use WebGUI::Mail::Send; use WebGUI::Mail::Send;
use WebGUI::Macro; use WebGUI::Macro;
@ -1489,23 +1489,23 @@ sub www_editField {
else { else {
$field = {}; $field = {};
} }
my $f = WebGUI::HTMLForm->new($self->session, action => $self->getUrl); my $f = WebGUI::FormBuilder->new($self->session, action => $self->getUrl);
$f->hidden( $f->addField( "hidden",
name => "fieldName", name => "fieldName",
value => $field->{name}, value => $field->{name},
); );
$f->hidden( $f->addField( "hidden",
name => "func", name => "func",
value => "editFieldSave" value => "editFieldSave"
); );
$f->text( $f->addField( "text",
name=>"label", name=>"label",
label=>$i18n->get(77), label=>$i18n->get(77),
hoverHelp=>$i18n->get('77 description'), hoverHelp=>$i18n->get('77 description'),
value=>$field->{label} value=>$field->{label}
); );
if ($field->{isMailField}) { if ($field->{isMailField}) {
$f->readOnly( $f->addField( "readOnly",
name => "newName", name => "newName",
label => $i18n->get(21), label => $i18n->get(21),
hoverHelp => $i18n->get('21 description'), hoverHelp => $i18n->get('21 description'),
@ -1513,7 +1513,7 @@ sub www_editField {
); );
} }
else { else {
$f->text( $f->addField( "text",
name => "newName", name => "newName",
label => $i18n->get(21), label => $i18n->get(21),
hoverHelp => $i18n->get('21 description'), hoverHelp => $i18n->get('21 description'),
@ -1525,14 +1525,14 @@ sub www_editField {
0 => $i18n->get("no tab"), 0 => $i18n->get("no tab"),
map { $_ => $self->getTabConfig($_)->{label} } @{ $self->getTabOrder }, map { $_ => $self->getTabConfig($_)->{label} } @{ $self->getTabOrder },
); );
$f->selectBox( $f->addField( "selectBox",
name => "tabId", name => "tabId",
options => \%tabs, options => \%tabs,
label => $i18n->get(104), label => $i18n->get(104),
hoverHelp => $i18n->get('104 description'), hoverHelp => $i18n->get('104 description'),
value => [ $field->{tabId} ] value => [ $field->{tabId} ]
); );
$f->text( $f->addField( "text",
name => "subtext", name => "subtext",
value => $field->{subtext}, value => $field->{subtext},
label => $i18n->get(79), label => $i18n->get(79),
@ -1545,62 +1545,62 @@ sub www_editField {
"editable" => $i18n->get(6), "editable" => $i18n->get(6),
"required" => $i18n->get(75), "required" => $i18n->get(75),
); );
$f->selectBox( $f->addField( "selectBox",
name => "status", name => "status",
options => \%fieldStatus, options => \%fieldStatus,
label => $i18n->get(22), label => $i18n->get(22),
hoverHelp => $i18n->get('22 description'), hoverHelp => $i18n->get('22 description'),
value => [ $field->{status} || "editable" ], value => [ $field->{status} || "editable" ],
); );
$f->fieldType( $f->addField( "fieldType",
name => "type", name => "type",
label => $i18n->get(23), label => $i18n->get(23),
hoverHelp => $i18n->get('23 description'), hoverHelp => $i18n->get('23 description'),
value => "\u$field->{type}" || "Text", value => "\u$field->{type}" || "Text",
types => [qw(DateTime TimeField Float Zipcode Text Textarea HTMLArea Url Date Email Phone Integer YesNo SelectList RadioList CheckList SelectBox File)], types => [qw(DateTime TimeField Float Zipcode Text Textarea HTMLArea Url Date Email Phone Integer YesNo SelectList RadioList CheckList SelectBox File)],
); );
$f->integer( $f->addField( "integer",
name => "width", name => "width",
label => $i18n->get(8), label => $i18n->get(8),
hoverHelp => $i18n->get('8 description'), hoverHelp => $i18n->get('8 description'),
value => ($field->{width} || 0), value => ($field->{width} || 0),
); );
$f->integer( $f->addField( "integer",
name => "rows", name => "rows",
value => $field->{rows} || 0, value => $field->{rows} || 0,
label => $i18n->get(27), label => $i18n->get(27),
hoverHelp => $i18n->get('27 description'), hoverHelp => $i18n->get('27 description'),
subtext => $i18n->get(28), subtext => $i18n->get(28),
); );
$f->yesNo( $f->addField( "yesNo",
name=>"vertical", name=>"vertical",
value=>$field->{vertical}, value=>$field->{vertical},
label=>$i18n->get('editField vertical label'), label=>$i18n->get('editField vertical label'),
hoverHelp=>$i18n->get('editField vertical label description'), hoverHelp=>$i18n->get('editField vertical label description'),
subtext=>$i18n->get('editField vertical subtext') subtext=>$i18n->get('editField vertical subtext')
); );
$f->text( $f->addField( "text",
name=>"extras", name=>"extras",
value=>$field->{extras}, value=>$field->{extras},
label=>$i18n->get('editField extras label'), label=>$i18n->get('editField extras label'),
hoverHelp=>$i18n->get('editField extras label description'), hoverHelp=>$i18n->get('editField extras label description'),
); );
$f->textarea( $f->addField( "textarea",
-name=>"options", name=>"options",
-label=>$i18n->get(24), label=>$i18n->get(24),
-hoverHelp=>$i18n->get('24 description'), hoverHelp=>$i18n->get('24 description'),
-value=>$field->{options}, value=>$field->{options},
-subtext=>'<br />'.$i18n->get(85) subtext=>'<br />'.$i18n->get(85)
); );
$f->textarea( $f->addField( "textarea",
-name=>"defaultValue", name=>"defaultValue",
-label=>$i18n->get(25), label=>$i18n->get(25),
-hoverHelp=>$i18n->get('25 description'), hoverHelp=>$i18n->get('25 description'),
-value=>$field->{defaultValue}, value=>$field->{defaultValue},
-subtext=>'<br />'.$i18n->get(85) subtext=>'<br />'.$i18n->get(85)
); );
if (!$fieldName) { if (!$fieldName) {
$f->whatNext( $f->addField( "whatNext",
options => { options => {
"editField" => $i18n->get(76), "editField" => $i18n->get(76),
"viewDataForm" => $i18n->get(745), "viewDataForm" => $i18n->get(745),
@ -1608,9 +1608,8 @@ sub www_editField {
value => "editField" value => "editField"
); );
} }
$f->submit; $f->addField( "submit", name => "submit" );
my $ac = $self->getAdminConsole; return '<h1>' . $i18n->get('20') . '</h1>' . $f->toHtml;
return $ac->render($f->print,$i18n->get('20'));
} }
#------------------------------------------------------------------- #-------------------------------------------------------------------

View file

@ -17,6 +17,7 @@ use strict;
use Test::More; use Test::More;
use Test::Deep; use Test::Deep;
use WebGUI::Test; # Must use this before any other WebGUI modules use WebGUI::Test; # Must use this before any other WebGUI modules
use WebGUI::Test::Mechanize;
use WebGUI::Asset; use WebGUI::Asset;
use WebGUI::Asset::Wobject::DataForm; use WebGUI::Asset::Wobject::DataForm;
use WebGUI::VersionTag; use WebGUI::VersionTag;
@ -43,7 +44,7 @@ $dform->createField('gotCaptcha', { type => 'Captcha', name => 'humanCheck', });
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# Tests # Tests
plan tests => 4; # Increment this number for each test you create plan tests => 8; # Increment this number for each test you create
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
# _createForm # _createForm
@ -84,4 +85,38 @@ cmp_ok(
'... form with a captcha does not return lastModified, even in form mode' '... form with a captcha does not return lastModified, even in form mode'
); );
#----------------------------------------------------------------------------
# www_editField
my $mech = WebGUI::Test::Mechanize->new( config => WebGUI::Test->file );
$mech->get_ok('/');
$mech->session->user({ userId => 3 });
# Create a new field
$mech->get_ok( $df->getUrl( 'func=editField;fieldName=new' ) );
$mech->submit_form_ok( {
fields => {
label => 'Request',
newName => 'request',
tabId => 0,
subtext => 'Submit your request to the circular file',
type => "Textarea",
},
}, "add a new field" );
$df = WebGUI::Asset->newById( $mech->session, $df->getId );
cmp_deeply(
$df->getFieldConfig( "request" ),
superhashof( {
label => 'Request',
name => 'request',
tabId => undef,
subtext => 'Submit your request to the circular file',
type => 'Textarea',
} ),
"field exists with correct config",
);
# Edit that field
#vim:ft=perl #vim:ft=perl