diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index b69e75c82..b6b4f8cc2 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -200,7 +200,7 @@ use WebGUI::Asset::Sku::EMSRibbon; use WebGUI::Asset::Sku::EMSToken; use WebGUI::Exception; use WebGUI::FormValidator; -use WebGUI::HTMLForm; +use WebGUI::FormBuilder; use WebGUI::International; use WebGUI::Workflow::Instance; use Data::Dumper; @@ -995,20 +995,20 @@ sub www_editBadgeGroup { my $self = shift; return $self->session->privilege->insufficient() unless $self->canEdit; my ($form, $db) = $self->session->quick(qw(form db)); - my $f = WebGUI::HTMLForm->new($self->session, action=>$self->getUrl); + my $f = WebGUI::FormBuilder->new($self->session, action=>$self->getUrl); my $badgeGroup = $db->getRow("EMSBadgeGroup","badgeGroupId",$form->get('badgeGroupId')); $badgeGroup->{badgeList} = ($badgeGroup->{badgeList} ne "") ? JSON::from_json($badgeGroup->{badgeList}) : []; my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem"); - $f->hidden(name=>'func', value=>'editBadgeGroupSave'); - $f->hidden(name=>'badgeGroupId', value=>$form->get('badgeGroupId')); - $f->text( + $f->addField( "hidden", name=>'func', value=>'editBadgeGroupSave'); + $f->addField( "hidden", name=>'badgeGroupId', value=>$form->get('badgeGroupId')); + $f->addField( "text", name => 'name', value => $badgeGroup->{name}, label => $i18n->get('badge group name'), hoverHelp => $i18n->get('badge group name help'), ); - $f->submit; - return $self->processStyle('

'.$i18n->get('badge groups').'

'.$f->print); + $f->addField( "submit", name => "submit" ); + return $self->processStyle('

'.$i18n->get('badge groups').'

'.$f->toHtml); } diff --git a/t/Asset/Wobject/EventManagementSystem.t b/t/Asset/Wobject/EventManagementSystem.t index 3a15897db..5f710f9fc 100644 --- a/t/Asset/Wobject/EventManagementSystem.t +++ b/t/Asset/Wobject/EventManagementSystem.t @@ -16,6 +16,7 @@ use strict; use Test::More; use WebGUI::Test; # Must use this before any other WebGUI modules +use WebGUI::Test::Mechanize; use WebGUI::Test::MockAsset; use WebGUI::Session; use WebGUI::User; @@ -49,7 +50,7 @@ my %tag = ( tagId => $versionTag->getId, status => "pending" ); #---------------------------------------------------------------------------- # Tests -plan tests => 41; # Increment this number for each test you create +plan tests => 51; # Increment this number for each test you create #---------------------------------------------------------------------------- @@ -630,3 +631,47 @@ cmp_deeply( JSON::from_json($data), { 'Location page #2 looks good' ); +#---------------------------------------------------------------------------- +# www_editBadgeGroup +$ems = WebGUI::Test->asset( + className => 'WebGUI::Asset::Wobject::EventManagementSystem', + groupIdEdit => '3', +); + +my $mech = WebGUI::Test::Mechanize->new( config => WebGUI::Test->file ); +$mech->get_ok('/'); +$mech->session->user({ userId => 3 }); + +# Create a new one +$mech->get_ok( $ems->getUrl( 'func=editBadgeGroup;badgeGroupId=new' ), "Get form to create a new badge group" ); +$mech->submit_form_ok( { + fields => { + name => 'Inmate Training', + }, +}, "create a new badge group" ); + +my $bgroup = $session->db->quickHashRef( + "SELECT * FROM EMSBadgeGroup WHERE name=?", + [ "Inmate Training" ], +); +ok( $bgroup, "Badge group exists" ); +is( $bgroup->{emsAssetId}, $ems->getId, 'ems asset id set correctly' ); + +# Edit existing one +$mech->get_ok( + $ems->getUrl( 'func=editBadgeGroup;badgeGroupId=' . $bgroup->{badgeGroupId} ), + "Get form to edit our badge group", +); +$mech->submit_form_ok( { + fields => { + name => 'Inmate Beating', + }, +}, "Edit an existing badge group" ); + +$bgroup = $session->db->quickHashRef( + "SELECT * FROM EMSBadgeGroup WHERE badgeGroupId=?", + [ $bgroup->{badgeGroupId} ], +); +ok( $bgroup, "Badge group exists" ); +is( $bgroup->{emsAssetId}, $ems->getId, 'ems asset id set correctly' ); +is( $bgroup->{name}, "Inmate Beating", 'badge name set correctly' );