From 9f08ea7e3251031dfe5d25735342edd6a43a18aa Mon Sep 17 00:00:00 2001 From: daviddelikat Date: Sun, 25 Oct 2009 10:00:20 -0500 Subject: [PATCH] working on queue and such --- lib/WebGUI/Asset/EMSSubmission.pm | 46 ++++++++++++++----- lib/WebGUI/Asset/EMSSubmissionForm.pm | 15 ++++-- .../Asset/Wobject/EventManagementSystem.pm | 10 ++-- 3 files changed, 50 insertions(+), 21 deletions(-) diff --git a/lib/WebGUI/Asset/EMSSubmission.pm b/lib/WebGUI/Asset/EMSSubmission.pm index b7fdc6ddd..fac9d0aaa 100644 --- a/lib/WebGUI/Asset/EMSSubmission.pm +++ b/lib/WebGUI/Asset/EMSSubmission.pm @@ -1,5 +1,6 @@ package WebGUI::Asset::EMSSubmission; +use lib '/root/pb/lib'; use dav; =head1 LEGAL ------------------------------------------------------------------- @@ -191,11 +192,6 @@ sub definition { label => $i18n->get("send email label"), hoverHelp => $i18n->get("send email label help") }, - adminOverride => { - noFormPost => 1, - fieldType => "hidden", - defaultValue => '{}', - }, ticketId => { noFormPost => 1, fieldType => "hidden", @@ -247,7 +243,7 @@ sub drawRelatedBadgeGroupsField { name => $params->{name}, value => $self->get($params->{name}), vertical => 1, - options => $self->getParent->getBadgeGroups, + options => $self->getParent->getParent->getBadgeGroups, }); } @@ -262,7 +258,7 @@ Draws the field for the relatedRibbons property. sub drawRelatedRibbonsField { my ($self, $params) = @_; my %ribbons = (); - foreach my $ribbon (@{$self->getParent->getRibbons}) { + foreach my $ribbon (@{$self->getParent->getParent->getRibbons}) { $ribbons{$ribbon->getId} = $ribbon->getTitle; } return WebGUI::Form::checkList($self->session, { @@ -305,15 +301,18 @@ parameters for the submission =cut + sub www_editSubmission { my $this = shift; my $self; my $parent; if( $this eq __PACKAGE__ ) { # called as a constructor $parent = shift; +dav::log 'EMSSubmission::www_editSubmission: got class/parent params'; } else { $self = $this; $parent = $self->getParent; +dav::log 'EMSSubmission::www_editSubmission: got self param'; } my $params = shift || { }; my $session = $parent->session; @@ -322,15 +321,19 @@ sub www_editSubmission { if( ! defined( $assetId ) ) { # if somebody calls without an assetId then display the queue for the EMS (grandparent) +dav::log 'EMSSubmission::www_editSubmission: asseId not defined'; return $parent->getParent->www_viewSubmissionQueue; } elsif( $assetId ne 'new' ) { - $self = WebGUI::Asset->newByDynamicClass($session,$assetId); +dav::log 'EMSSubmission::www_editSubmission: asseId ne new'; + $self ||= WebGUI::Asset->newByDynamicClass($session,$assetId); if (!defined $self) { $session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId"); } } - my $url = ( $self || $parent )->getUrl('func=editSubmissionSave'); + my $asset = $self || $parent; + my $url = $asset->getUrl('func=editSubmissionSave'); my $newform = WebGUI::HTMLForm->new($session,action => $url); + $newform->hidden(name => 'assetId', value => $assetId); my $formDescription = $parent->getFormDescription; my @defs = reverse @{__PACKAGE__->definition($session)}; my $fields; @@ -367,12 +370,31 @@ sub www_editSubmission { } # TODO add the comment form $newform->submit; - return $parent->processStyle( - $parent->processTemplate({ + return $asset->processStyle( + $asset->processTemplate({ errors => $params->{errors} || [], backUrl => $parent->getUrl, pageForm => $newform->print, - },$parent->get('eventSubmissionFormTemplateId'))); + },$parent->getParent->get('eventSubmissionTemplateId'))); +} + +#------------------------------------------------------------------- + +=head2 www_editSubmissionSave + +=cut + +sub www_editSubmissionSave { + my $self = shift; + return $self->session->privilege->insufficient() unless $self->canEdit; + my $formParams = WebGUI::Asset::EMSSubmission->processForm($self); + if( $formParams->{_isValid} ) { + delete $formParams->{_isValid}; + $self->update($formParams); + return $self->getParent->getParent->www_viewSubmissionQueue; + } else { + return $self->www_editSubmission($formParams); + } } #------------------------------------------------------------------- diff --git a/lib/WebGUI/Asset/EMSSubmissionForm.pm b/lib/WebGUI/Asset/EMSSubmissionForm.pm index e99dcabc8..13d94d943 100644 --- a/lib/WebGUI/Asset/EMSSubmissionForm.pm +++ b/lib/WebGUI/Asset/EMSSubmissionForm.pm @@ -1,5 +1,7 @@ package WebGUI::Asset::EMSSubmissionForm; +use lib '/root/pb/lib'; use dav; + =head1 LEGAL ------------------------------------------------------------------- @@ -256,12 +258,13 @@ sub www_editSubmissionForm { '' ); } } elsif( $assetId ne 'new' ) { - $self &&= WebGUI::Asset->newByDynamicClass($session,$assetId); + $self ||= WebGUI::Asset->newByDynamicClass($session,$assetId); if (!defined($self)) { $session->errorHandler->error(__PACKAGE__ . " - failed to instanciate asset with assetId $assetId"); } } - my $url = ( $self || $parent )->getUrl('func=editSubmissionFormSave'); + my $asset = $self || $parent; + my $url = $asset->getUrl('func=editSubmissionFormSave'); my $newform = WebGUI::HTMLForm->new( $session, action => $url ); $newform->hidden(name => 'assetId', value => $assetId); my @fieldNames = qw/title description startDate duration seatsAvailable location/; @@ -313,8 +316,8 @@ dav::dump 'editSubmissionForm::dump before generate:',$fields; ); } $newform->submit; - return $parent->processStyle( - $parent->processTemplate({ + return $asset->processStyle( + $asset->processTemplate({ errors => $params->{errors} || [], backUrl => $parent->getUrl, pageForm => $newform->print, @@ -455,6 +458,7 @@ calls www_editSubmission with assetId == new =cut sub www_addSubmission { +dav::log __PACKAGE__ . '::www_addSubmission'; my $self = shift; $self->www_editSubmission( { assetId => 'new' } ); } @@ -487,6 +491,7 @@ calls WebGUI::Asset::EMSSubmission->editSubmission =cut sub www_editSubmission { +dav::log __PACKAGE__ . '::www_addSubmission'; my $self = shift; return $self->session->privilege->insufficient() unless $self->canEdit; return WebGUI::Asset::EMSSubmission->www_editSubmission($self,shift); @@ -507,7 +512,7 @@ sub www_editSubmissionSave { if( $formParams->{_isValid} ) { delete $formParams->{_isValid}; $self->addSubmission($formParams); - return $self->www_viewSubmissionQueue; + return $self->getParent->www_viewSubmissionQueue; } else { return $self->www_editSubmission($formParams); } diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index fe42193c1..7b32ce68f 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -1,5 +1,7 @@ package WebGUI::Asset::Wobject::EventManagementSystem; +use lib '/root/pb/lib'; use dav; + =head1 LEGAL ------------------------------------------------------------------- @@ -596,7 +598,6 @@ sub view { buildBadgeUrl => $self->getUrl('func=buildBadge'), viewScheduleUrl => $self->getUrl('func=viewSchedule'), addSubmissionUrl => $self->getUrl('func=addSubmission'), - viewSubmissionsUrl => $self->getUrl('func=viewSubmissions'), viewSubmissionQueueUrl => $self->getUrl('func=viewSubmissionQueue'), addSubmissionFormUrl => $self->getUrl('func=addSubmissionForm'), manageBadgeGroupsUrl=> $self->getUrl('func=manageBadgeGroups'), @@ -642,6 +643,7 @@ display a form or links to forms to create a new submission =cut sub www_addSubmission { +dav::log __PACKAGE__ . '::www_addSubmission'; my $self = shift; my $params = shift || {}; my $session = $self->session; @@ -664,7 +666,7 @@ sub www_addSubmission { return qq{
  • $n
  • } } ; my $listOfLinks = join '', ( map { $makeAnchorList->( - $self->getUrl('func=addSubmission;formId=' . $_->getId ), + $_->getUrl('func=addSubmission' ), $_->get('title'), WebGUI::HTML::filter($_->get('description'),'all') ) @@ -2346,9 +2348,9 @@ sub www_viewSubmissionQueue { canSubmit => $self->canSubmit, hasSubmissionForms => $self->hasSubmissionForms, getSubmissionQueueDateUrl => $self->getUrl('func=getSubmissionQueueData'), - addSumissionFormUrl => $self->getUrl('func=addSubmissionForm'), + addSubmissionFormUrl => $self->getUrl('func=addSubmissionForm'), editSubmissionFormUrl => $self->getUrl('func=editSubmissionForm'), - addSumissionUrl => $self->getUrl('func=addSubmission'), + addSubmissionUrl => $self->getUrl('func=addSubmission'), },$self->get('eventSubmissionQueueTemplateId'))); }