diff --git a/lib/WebGUI/Asset/EMSSubmission.pm b/lib/WebGUI/Asset/EMSSubmission.pm
index df117efb8..b7fdc6ddd 100644
--- a/lib/WebGUI/Asset/EMSSubmission.pm
+++ b/lib/WebGUI/Asset/EMSSubmission.pm
@@ -329,7 +329,7 @@ sub www_editSubmission {
$session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId");
}
}
- my $url = ( $self | $parent )->getUrl('func=editSubmissionSave');
+ my $url = ( $self || $parent )->getUrl('func=editSubmissionSave');
my $newform = WebGUI::HTMLForm->new($session,action => $url);
my $formDescription = $parent->getFormDescription;
my @defs = reverse @{__PACKAGE__->definition($session)};
@@ -344,7 +344,7 @@ sub www_editSubmission {
}
}
# add the meta field
- for my $metaField ( @{$parent->getEventMetaFields} ) {
+ for my $metaField ( @{$parent->getParent->getEventMetaFields} ) {
if( defined $formDescription->{$metaField->{fieldId}} ) {
$fields->{$metaField->{fieldId}} = { %$metaField }; # a simple first level copy
# meta fields call it data type, we copy it to simplify later on
@@ -353,12 +353,12 @@ sub www_editSubmission {
}
# for each field
- for my $field ( keys %$fields ) {
+ for my $field ( values %$fields ) {
if( $formDescription->{$field->{fieldId}} ) {
$newform->dynamicField(%$field);
} else {
# TODO see that the data gets formatted
- $newform->readonly(
+ $newform->readOnly(
label => $field->{label},
value => $field->{value},
fieldId => $field->{fieldId},
diff --git a/lib/WebGUI/Asset/EMSSubmissionForm.pm b/lib/WebGUI/Asset/EMSSubmissionForm.pm
index b58e99aad..e99dcabc8 100644
--- a/lib/WebGUI/Asset/EMSSubmissionForm.pm
+++ b/lib/WebGUI/Asset/EMSSubmissionForm.pm
@@ -247,7 +247,7 @@ sub www_editSubmissionForm {
return qq{
$n} } ;
my $listOfLinks = join '', ( map {
$makeAnchorList->(
- $parent->getUrl('func=editSubmissionForm;assetId=' . $_->getId ),
+ $_->getUrl('func=editSubmissionForm' ),
$_->get('title'),
WebGUI::HTML::filter($_->get('description'),'all')
)
@@ -257,7 +257,7 @@ sub www_editSubmissionForm {
}
} elsif( $assetId ne 'new' ) {
$self &&= WebGUI::Asset->newByDynamicClass($session,$assetId);
- if (!defined $self) {
+ if (!defined($self)) {
$session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId");
}
}
@@ -554,26 +554,6 @@ dav::dump 'processForm::params:', $params;
return $params;
}
-=head TODO work on this code
-# this is a bunch of code that will likely be useful for this function...
-{
- for my $fieldName ( qw/title menuTitle url description canSubmitGroupId daysBeforeCleanup
- deleteCreatedItems submissionDeadline pastDeadlineMessage/ ) {
- if( defined $properties->{$fieldName} ) {
- my %param = %{$properties->{$fieldName}};
- $param{value} = $form->get($fieldName) || $self ? $self->get($fieldName) : $param{defaultValue} || '';
- $param{name} = $fieldName;
-dav::dump 'editSubmissionForm::properties for ', $fieldName, \%param ;
- $maintab->dynamicField(%param);
- }
- }
- }
-dav::dump 'editSubmissionForm::dump before generate:',$fields;
-}
-=cut
-
-}
-
#-------------------------------------------------------------------
=head2 update ( )
diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
index cea56a7d8..09122390f 100644
--- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
+++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
@@ -595,7 +595,7 @@ sub view {
addBadgeUrl => $self->getUrl('func=add;class=WebGUI::Asset::Sku::EMSBadge'),
buildBadgeUrl => $self->getUrl('func=buildBadge'),
viewScheduleUrl => $self->getUrl('func=viewSchedule'),
- newSubmissionUrl => $self->getUrl('func=newSubmission'),
+ addSubmissionUrl => $self->getUrl('func=addSubmission'),
viewSubmissionsUrl => $self->getUrl('func=viewSubmissions'),
viewSubmissionQueueUrl => $self->getUrl('func=viewSubmissionQueue'),
addSubmissionFormUrl => $self->getUrl('func=addSubmissionForm'),
@@ -644,40 +644,41 @@ display a form or links to forms to create a new submission
sub www_addSubmission {
my $self = shift;
my $params = shift || {};
- my $assetId = $params->{assetId} || $self->session->form->get('assetId');
- my $parent = $self->getParent;
+ my $formId = $params->{formId} || $self->session->form->get('formId');
my $session = $self->session;
my $i18n = WebGUI::International->new($session,'Asset_EventManagementSystem');
- my $asset;
+ my $form;
- if( ! defined $assetId ) {
- my $res = $parent->getLineage(['children'],{ returnObjects => 1,
+ if( ! defined $formId ) {
+ my $res = $self->getLineage(['children'],{ returnObjects => 1,
includeOnlyClasses => ['WebGUI::Asset::EMSSubmissionForm'],
} );
my @new = map { $_->canSubmit ? $_ : () } ( @$res);
- if( scalar(@new) == 1 ) {
- $asset = $new[0];
- $assetId = $asset->getId;
+ if( scalar(@new) == 0 ) {
+ return $self->www_view;
+ } elsif( scalar(@new) == 1 ) {
+ $form = $new[0];
+ $formId = $form->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=addSubmission;assetId=' . $_->getId ),
+ $self->getUrl('func=addSubmission;formId=' . $_->getId ),
$_->get('title'),
WebGUI::HTML::filter($_->get('description'),'all')
)
} ( @new ) );
- return $parent->processStyle( '' . $i18n->get('select form to submit') .
+ return $self->processStyle( '' . $i18n->get('select form to submit') .
'
' );
}
} else {
- $asset = WebGUI::Asset->newByDynamicClass($session,$assetId);
+ $form = WebGUI::Asset->newByDynamicClass($session,$formId);
}
- if (!defined $asset) {
- $session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId");
+ if (!defined $form) {
+ $session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $formId");
}
- return $asset->www_addSubmission;
+ return $form->www_addSubmission;
}
#-------------------------------------------------------------------
@@ -2187,22 +2188,6 @@ sub www_moveEventMetaFieldUp {
return $self->www_manageEventMetaFields;
}
-#---------------------------------------------
-=head2 www_newSubmission
-
-if only one form is available to this user:
-call the viewSubmission with class and assetID = 'new'
-else create a list of link that will distinguish the form the userdesires to use.
-the links should refer to this function and include a formId parameter
-
-=cut
-
-sub www_newSubmission {
-
-# call viewSubmission or create a list of links
-
-}
-
#-------------------------------------------------------------------
=head2 www_printBadge ( )
@@ -2358,10 +2343,11 @@ sub www_viewSubmissionQueue {
$self->processTemplate({
backUrl => $self->getUrl,
canEdit => $self->canEdit,
+ canSubmit => $self->canSubmit,
hasSubmissionForms => $self->hasSubmissionForms,
getSubmissionQueueDateUrl => $self->getUrl('func=getSubmissionQueueData'),
addSumissionFormUrl => $self->getUrl('func=addSubmissionForm'),
- editSubmissionFormUrl => self->getUrl('func=editSubmissionForm'),
+ editSubmissionFormUrl => $self->getUrl('func=editSubmissionForm'),
addSumissionUrl => $self->getUrl('func=addSubmission'),
},$self->get('eventSubmissionQueueTemplateId')));
}
diff --git a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm
index 07f83ac04..d9b160a06 100644
--- a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm
+++ b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm
@@ -1878,6 +1878,12 @@ normal templates.|,
context => q|help text for the columns per page field|,
},
+ 'edit submission form' => {
+ message => q|Edit Submission Form|,
+ lastUpdated => 1147050475,
+ context => q|Label for the link to edit a submission form.|,
+ },
+
'new submission form' => {
message => q|New Submission Form|,
lastUpdated => 1147050475,