migrate DataForm www_editField to FormBuilder
This commit is contained in:
parent
325dbad2a3
commit
8c01fdbc73
2 changed files with 66 additions and 32 deletions
|
|
@ -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'));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------
|
#-------------------------------------------------------------------
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue