diff --git a/lib/WebGUI/AssetMetaData.pm b/lib/WebGUI/AssetMetaData.pm index 450637e12..2b04dc549 100644 --- a/lib/WebGUI/AssetMetaData.pm +++ b/lib/WebGUI/AssetMetaData.pm @@ -246,52 +246,53 @@ sub www_editMetaDataField { $fieldInfo = $self->getMetaDataFields($self->session->form->process("fid")); } my $fid = $self->session->form->process("fid") || "new"; - my $f = WebGUI::HTMLForm->new($self->session,-action=>$self->getUrl); - $f->hidden( - -name => "func", - -value => "editMetaDataFieldSave" + my $f = WebGUI::FormBuilder->new($self->session,action=>$self->getUrl); + $f->addField( "hidden", + name => "func", + value => "editMetaDataFieldSave" ); - $f->hidden( - -name => "fid", - -value => $fid + $f->addField( "hidden", + name => "fid", + value => $fid ); - $f->readOnly( - -value=>$fid, - -label=>$i18n->get('Field Id'), + $f->addField( "readOnly", + name => 'fid_display', + value=>$fid, + label=>$i18n->get('Field Id'), ); - $f->text( - -name=>"fieldName", - -label=>$i18n->get('Field name'), - -hoverHelp=>$i18n->get('Field Name description'), - -value=>$fieldInfo->{fieldName} + $f->addField( "text", + name=>"fieldName", + label=>$i18n->get('Field name'), + hoverHelp=>$i18n->get('Field Name description'), + value=>$fieldInfo->{fieldName} ); - $f->textarea( - -name=>"description", - -label=>$i18n->get(85), - -hoverHelp=>$i18n->get('Metadata Description description'), - -value=>$fieldInfo->{description} + $f->addField( "textarea", + name=>"description", + label=>$i18n->get(85), + hoverHelp=>$i18n->get('Metadata Description description'), + value=>$fieldInfo->{description} ); - $f->fieldType( - -name=>"fieldType", - -label=>$i18n->get(486), - -hoverHelp=>$i18n->get('Data Type description'), - -value=>$fieldInfo->{fieldType} || "text", - -types=> [ qw /text integer yesNo selectBox radioList checkList/ ] + $f->addField( "fieldType", + name=>"fieldType", + label=>$i18n->get(486), + hoverHelp=>$i18n->get('Data Type description'), + value=>$fieldInfo->{fieldType} || "text", + types=> [ qw /text integer yesNo selectBox radioList checkList/ ] ); - $f->textarea( - -name=>"possibleValues", - -label=>$i18n->get(487), - -hoverHelp=>$i18n->get('Possible Values description'), - -value=>$fieldInfo->{possibleValues} + $f->addField( "textarea", + name=>"possibleValues", + label=>$i18n->get(487), + hoverHelp=>$i18n->get('Possible Values description'), + value=>$fieldInfo->{possibleValues} ); - $f->textarea( - -name=>"defaultValue", - -label=>$i18n->get('default value'), - -hoverHelp=>$i18n->get('default value description'), - -value=>$fieldInfo->{defaultValue} + $f->addField( "textarea", + name=>"defaultValue", + label=>$i18n->get('default value'), + hoverHelp=>$i18n->get('default value description'), + value=>$fieldInfo->{defaultValue} ); - $f->submit(); - return $ac->render($f->print, $i18n->get('Edit Metadata')); + $f->addField( "submit", name => "submit" ); + return '

' . $i18n->get('Edit Metadata') . '

' . $f->toHtml; } #------------------------------------------------------------------- diff --git a/t/Asset/AssetMetaData.t b/t/Asset/AssetMetaData.t index efdfaf46b..bee169a7c 100644 --- a/t/Asset/AssetMetaData.t +++ b/t/Asset/AssetMetaData.t @@ -17,10 +17,11 @@ use WebGUI::Test; use WebGUI::Session; use WebGUI::Asset; use WebGUI::VersionTag; +use WebGUI::Test::Mechanize; use Test::More; # increment this value for each test you create use Test::Deep; -plan tests => 13; +plan tests => 22; my $session = WebGUI::Test->session; $session->user({userId => 3}); @@ -232,4 +233,47 @@ sub buildNameIndex { return $nameStruct; } +#---------------------------------------------------------------------------- +# www_editMetaDataField + +my $mech = WebGUI::Test::Mechanize->new( config => WebGUI::Test->file ); +$mech->get_ok( '/' ); +$mech->session->user({userId => 3}); + +my %fieldInfo = ( + fieldName => 'rsi_type', + description => 'What type of RSI this content will inflict upon you', + fieldType => 'text', +); +$mech->get_ok( $folder->getUrl( 'func=editMetaDataField' ) ); +$mech->submit_form_ok({ + fields => \%fieldInfo, + }, + "add a new field", +); + +my $field = ( grep { $_->{fieldName} eq $fieldInfo{fieldName} } values %{$folder->getMetaDataFields} )[0]; +ok( $field ); +cmp_deeply( + $field, + superhashof( \%fieldInfo ), + "Field info saved correctly", +); + +$mech->get_ok( $folder->getUrl( 'func=editMetaDataField;fid=' . $field->{fieldId} ) ); +$fieldInfo{ description } = 'What type of RSI this content will protect you from'; +$mech->submit_form_ok({ + fields => \%fieldInfo, + }, + "edit an existing field", +); + +$field = $folder->getMetaDataFields( $field->{fieldId} ); +ok( $field ); +cmp_deeply( + $field, + superhashof( \%fieldInfo ), + "Field info saved correctly", +); + #vim:ft=perl