diff --git a/lib/WebGUI/Asset/Wobject/InOutBoard.pm b/lib/WebGUI/Asset/Wobject/InOutBoard.pm index 5bf56e86b..fd9bee953 100644 --- a/lib/WebGUI/Asset/Wobject/InOutBoard.pm +++ b/lib/WebGUI/Asset/Wobject/InOutBoard.pm @@ -352,26 +352,24 @@ sub www_selectDelegates { $self->session->db->quote($self->session->user->userId), $self->session->db->quote($self->getId); my $delegates = $self->session->db->buildArrayRef($sql); my $i18n = WebGUI::International->new($self->session,"Asset_InOutBoard"); - my $f = WebGUI::HTMLForm->new($self->session,-action=>$self->getUrl); - $f->hidden( - -name => "func", - -value => "selectDelegatesEditSave" + my $f = WebGUI::FormBuilder->new($self->session,action=>$self->getUrl); + $f->addField( "hidden", + name => "func", + value => "selectDelegatesEditSave" ); - $f->selectList( - -name => "delegates", - -label => $i18n->get('in/out status delegates'), - -hoverHelp => $i18n->get('in/out status delegates description','Asset_InOutBoard'), - -options => \%userNames, - -multiple => 1, ##Multiple select - -size => 10, ##Multiple select - -sortByValue => 1, - -value => $delegates, ##My current delegates, if any - -subtext => $i18n->get('in/out status delegates subtext'), + $f->addField( "selectList", + name => "delegates", + label => $i18n->get('in/out status delegates'), + hoverHelp => $i18n->get('in/out status delegates description','Asset_InOutBoard'), + options => \%userNames, + multiple => 1, ##Multiple select + size => 10, ##Multiple select + sortByValue => 1, + value => $delegates, ##My current delegates, if any + subtext => $i18n->get('in/out status delegates subtext'), ); - $f->submit; - my $ac = $self->getAdminConsole; - return $ac->render($f->print, - $i18n->get('select delegate')); + $f->addField( "submit", name => "submit" ); + return '

' . $i18n->get('select delegate') . '

' . $f->toHtml; } #------------------------------------------------------------------- diff --git a/t/Asset/Wobject/InOutBoard.t b/t/Asset/Wobject/InOutBoard.t index 73fd798ef..f6a7a5186 100644 --- a/t/Asset/Wobject/InOutBoard.t +++ b/t/Asset/Wobject/InOutBoard.t @@ -18,7 +18,7 @@ use WebGUI::Test; use WebGUI::Test::MockAsset; use WebGUI::Test::Mechanize; use WebGUI::Session; -use Test::More tests => 15; # increment this value for each test you create +use Test::More tests => 19; # increment this value for each test you create use Test::Deep; use Data::Dumper; @@ -172,3 +172,30 @@ $count = $session->db->quickScalar('select count(*) from InOutBoard_status where is ($count, 0, 'purge: cleans up status table'); $count = $session->db->quickScalar('select count(*) from InOutBoard_statusLog where assetId=?',[$boardId]); is ($count, 0, '... cleans up statusLog table'); + + +#---------------------------------------------------------------------------- +# selectDelegates +$board = WebGUI::Test->asset( + className => 'WebGUI::Asset::Wobject::InOutBoard', + inOutGroup => '7', # everyone +); + +my $mech = WebGUI::Test::Mechanize->new( config => WebGUI::Test->file ); +$mech->get_ok( '/' ); +$mech->session->user({ user => $users[0] }); + +$mech->get_ok( $board->getUrl( 'func=selectDelegates' ) ); +$mech->submit_form_ok({ + fields => { + delegates => $users[1]->getId, + }, +}, "add a delegate" ); + +my $hasDelegate = $session->db->quickScalar( + "SELECT COUNT(*) FROM InOutBoard_delegates WHERE userId=? AND + delegateUserId=? AND assetId=?", + [ $users[0]->getId, $users[1]->getId, $board->getId ], + ); +ok( $hasDelegate, "delegate saved in db" ); +