diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index 280bf935a..afbcef36a 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -191,7 +191,7 @@ sub definition { hoverHelp => $i18n->get('event submission template help'), namespace => 'EMS/Submission', }, - viewEventSubmissionQueueTemplateId => { + eventSubmissionQueueTemplateId => { fieldType => 'template', defaultValue => 'ktSvKU8riGimhcsxXwqvPQ', tab => 'display', @@ -599,7 +599,7 @@ sub view { newSubmissionUrl => $self->getUrl('func=newSubmission'), viewSubmissionsUrl => $self->getUrl('func=viewSubmissions'), viewSubmissionQueueUrl => $self->getUrl('func=viewSubmissionQueue'), - addSubmissionFormUrl => $self->getUrl('func=addSubmissionForm'), + addSubmissionFormUrl => $self->getUrl('func=editSubmissionForm'), manageBadgeGroupsUrl=> $self->getUrl('func=manageBadgeGroups'), getBadgesUrl => $self->getUrl('func=getBadgesAsJson'), canEdit => $self->canEdit, @@ -638,15 +638,16 @@ sub www_addRibbonToBadge { =head2 www_addSubmissionForm () -this will call the www_editSubmissionForm function with assetId == 'new' +call www_editSubmissionForm with assetId == new =cut sub www_addSubmissionForm { my $self = shift; - $self->www_editSubmiossionForm( { assetId => 'new' } ); + $self->www_editSubmissionForm( 'new' ); } + my $params = shift || { }; #------------------------------------------------------------------- =head2 www_addTicketsToBadge () @@ -832,28 +833,46 @@ is assetId is 'new' edit a blank form, else edit a form with stuff filled in... =cut sub www_editSubmissionForm { - my $self = shift; + my $self = shift; return $self->session->privilege->insufficient() unless $self->canEdit; -# TODO add code to send a list of links if we are not creating a new form and trhere exist more -# than one form -# -- getlineage for forms in this EMS -# if there is one form, then edit that form -# if there are more than one form then create a simple page with a link to each form that can be editted - -# this stuff below needs to be converted to use a template... - my ($form, $db) = $self->session->quick(qw(form db)); - my $f = WebGUI::HTMLForm->new($self->session, action=>$self->getUrl); - $f->hidden(name=>'func', value=>'editSubmissionFormSave'); + my $session = $self->session; + my $form = $session->form; + my $assetId = shift || $form->get('assetId'); + my $asset; my $i18n = WebGUI::International->new($self->session, "Asset_EventManagementSystem"); - $f->hidden(name=>'assetId', value=>$form => 'new' ); - $f->text( - name => 'name', - value => '', - label => 'junk', - hoverHelp => 'help with junk', - ); - $f->submit; - return $self->processStyle('

the title

'.$f->print); + + if( ! defined( $assetId ) ) { + my $res = $self->getLineage(['children'],{ returnObjects => 1, + includeOnlyClasses => ['WebGUI::Asset::EMSSubmissionForm'], + } ); + if( scalar(@$res) == 1 ) { + $asset = $res->[0]; + $assetId = $asset->getId; + } else { + my $makeAnchorList =sub{ my $u=shift; my $n=shift; my $d=shift; + return qq{
  • $n
  • } } ; + my $listOfLinks = join '', ( map { + $makeAnchorList->( + $self->getUrl('func=editSubmissionForm;assetId=' . $_->getId ), + $_->get('title'), + WebGUI::HTML::filter($_->get('description'),'all') + ) + } ( @$res ) ); + return $self->processStyle( '

    ' . $i18n->get('select form to edit') . + '

    ' ); + } + } elsif( $assetId ne 'new' ) { + $asset = WebGUI::Asset->newByDynamicClass($session,$assetId); + if (!defined $asset) { # won't catch everything, but it will help some if an asset blows up + $self->session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId"); + } + } + # TODO for new assets fill with blanks, otherwise get asset info to fill in template vars + + return $self->processStyle( + $self->processTemplate({ + backUrl => $self->getUrl, + },$self->get('eventSubmissionFormTemplateId'))); } #------------------------------------------------------------------- @@ -2310,25 +2329,13 @@ sub www_viewSubmission { # fill the view submission template my $self = shift; - return $self->session->privilege->insufficient() unless $self->canView; + return $self->session->privilege->insufficient() unless $self->canSubmit or $self->canEdit; my $db = $self->session->db; - my $rowsPerPage = 25; - my $locationsPerPage = $self->get('scheduleColumnsPerPage'); - - my @columnNames = map { "'col" . $_ . "'" } ( 1..$locationsPerPage ); - my $fieldList = join ',', @columnNames; - my $dataColumns = join ",\n", map { - '{key:' . $_ . ',sortable:false,label:"",formatter:formatViewScheduleItem}' - } @columnNames; return $self->processStyle( $self->processTemplate({ backUrl => $self->getUrl, - rowsPerPage => $rowsPerPage, - dataColumns => $dataColumns, - fieldList => $fieldList, - dataSourceUrl => $self->getUrl('func=getScheduleDataJSON'), - },$self->get('scheduleTemplateId'))); + },$self->get('eventSubmissionTemplateId'))); } @@ -2339,34 +2346,13 @@ sub www_viewSubmission { =cut sub www_viewSubmissionQueue { - -# fill the view submission queue template - - -# fill the view submission template my $self = shift; return $self->session->privilege->insufficient() unless $self->canView; - my $db = $self->session->db; - my $rowsPerPage = 25; - my $locationsPerPage = $self->get('scheduleColumnsPerPage'); - - my @columnNames = map { "'col" . $_ . "'" } ( 1..$locationsPerPage ); - my $fieldList = join ',', @columnNames; - my $dataColumns = join ",\n", map { - '{key:' . $_ . ',sortable:false,label:"",formatter:formatViewScheduleItem}' - } @columnNames; return $self->processStyle( $self->processTemplate({ backUrl => $self->getUrl, - rowsPerPage => $rowsPerPage, - dataColumns => $dataColumns, - fieldList => $fieldList, - dataSourceUrl => $self->getUrl('func=getScheduleDataJSON'), - },$self->get('scheduleTemplateId'))); - - - + },$self->get('eventSubmissionQueueTemplateId'))); } diff --git a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm index 75379f085..7eee9db47 100644 --- a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm +++ b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm @@ -1938,6 +1938,12 @@ normal templates.|, context => q|Help text for the event submission form template.| }, + 'select form to edit' => { + message => q|Select a Form to Edit|, + lastUpdated => 1147050475, + context => q|Label for list of submission forms; user must choose one to edit.|, + }, + # 'TODO' => { # message => q|TODO|, # lastUpdated => 1147050475, diff --git a/t/Asset/EMSSubmissionForm.t b/t/Asset/EMSSubmissionForm.t index d277a8216..1abfb24e7 100644 --- a/t/Asset/EMSSubmissionForm.t +++ b/t/Asset/EMSSubmissionForm.t @@ -348,7 +348,7 @@ is( $sub2, undef, 'approval created a ticket'); $versionTag->commit; #done_testing(); -print 'press return to complete test' ; <>; +#print 'press return to complete test' ; <>; #---------------------------------------------------------------------------- # Cleanup END {