diff --git a/lib/WebGUI/Asset/Wobject/DataForm.pm b/lib/WebGUI/Asset/Wobject/DataForm.pm
index 33443da2a..2c2bb3007 100644
--- a/lib/WebGUI/Asset/Wobject/DataForm.pm
+++ b/lib/WebGUI/Asset/Wobject/DataForm.pm
@@ -1782,28 +1782,28 @@ sub www_editTab {
$tab = $self->getTabConfig($tabId);
}
- my $f = WebGUI::HTMLForm->new($self->session,-action=>$self->getUrl);
- $f->hidden(
+ my $f = WebGUI::FormBuilder->new($self->session,action=>$self->getUrl);
+ $f->addField( "hidden",
-name => "tabId",
-value => $tabId,
);
- $f->hidden(
+ $f->addField( "hidden",
-name => "func",
-value => "editTabSave"
);
- $f->text(
+ $f->addField( "text",
-name=>"label",
-label=>$i18n->get(101),
-value=>$tab->{label}
);
- $f->textarea(
+ $f->addField( "textarea",
-name=>"subtext",
-label=>$i18n->get(79),
-value=>$tab->{subtext},
-subtext=>""
);
if ($tabId eq "new") {
- $f->whatNext(
+ $f->addField( "whatNext",
options=>{
editTab=>$i18n->get(103),
""=>$i18n->get(745)
@@ -1811,10 +1811,9 @@ sub www_editTab {
-value=>"editTab"
);
}
- $f->submit;
- my $ac = $self->getAdminConsole;
- return $ac->render($f->print,$i18n->get('103')) if $tabId eq "new";
- return $ac->render($f->print,$i18n->get('102'));
+ $f->addField( "submit", name => "submit" );
+ return '
' . $i18n->get('103') . '
' . $f->toHtml if $tabId eq "new";
+ return '' . $i18n->get('102') . '
' . $f->toHtml;
}
#-------------------------------------------------------------------
diff --git a/t/Asset/Wobject/DataForm.t b/t/Asset/Wobject/DataForm.t
index a5bfa058d..300a00fa2 100644
--- a/t/Asset/Wobject/DataForm.t
+++ b/t/Asset/Wobject/DataForm.t
@@ -44,7 +44,7 @@ $dform->createField('gotCaptcha', { type => 'Captcha', name => 'humanCheck', });
#----------------------------------------------------------------------------
# Tests
-plan tests => 11; # Increment this number for each test you create
+plan tests => 18; # Increment this number for each test you create
#----------------------------------------------------------------------------
# _createForm
@@ -141,5 +141,51 @@ cmp_deeply(
);
+#----------------------------------------------------------------------------
+# www_editTab
+my $mech = WebGUI::Test::Mechanize->new( config => WebGUI::Test->file );
+$mech->get_ok('/');
+$mech->session->user({ userId => 3 });
+
+# Create a new tab
+$mech->get_ok( $df->getUrl( 'func=editTab' ) );
+$mech->submit_form_ok( {
+ fields => {
+ label => 'Request Info',
+ subtext => "We won't be reading it, but fill it out anyway or get fired.",
+ },
+}, "add a new tab" );
+
+$df = WebGUI::Asset->newById( $mech->session, $df->getId );
+# Figure out the ID
+my $tabId = ( keys %{$df->getTabConfig} )[0];
+cmp_deeply(
+ $df->getTabConfig( $tabId ),
+ superhashof( {
+ label => 'Request Info',
+ subtext => "We won't be reading it, but fill it out anyway or get fired.",
+ } ),
+ "tab exists with correct config",
+);
+
+# Edit that tab
+sleep 1; # stupid addRevision
+$mech->get_ok( $df->getUrl( 'func=editTab;tabId=' . $tabId ) );
+$mech->submit_form_ok( {
+ fields => {
+ label => 'Begging Info',
+ subtext => "Adding puppydog eyes may help your case, slightly",
+ },
+}, "edit the tab" );
+
+$df = WebGUI::Asset->newPending( $mech->session, $df->getId );
+cmp_deeply(
+ $df->getTabConfig( $tabId ),
+ superhashof( {
+ label => 'Begging Info',
+ subtext => "Adding puppydog eyes may help your case, slightly",
+ } ),
+ "tab config updated",
+);
#vim:ft=perl