more wokr all around

This commit is contained in:
daviddelikat 2009-11-02 09:01:44 -06:00
parent b645d3e1b2
commit c8b97d83fe
7 changed files with 85 additions and 58 deletions

View file

@ -330,6 +330,29 @@ sub ems {
#-------------------------------------------------------------------
=head2 sendEmailUpdate
if the sendEmail on change is turned on then send email to the owner
=cut
sub sendEmailUpdate {
my $self = shift;
my $session = $self->session;
my $i18n = WebGUI::International->new( $session, "Asset_EMSSubmission" );
if( $self->get('sendEmailOnChange') ) {
WebGUI::Inbox->addMessage( $session,{
status => 'unread',
message => $i18n->get('your submission has been updated') . "\n\n" .
$self->get('title'),
userId => $self->createdBy,
sentBy => $session->userId,
});
}
}
#-------------------------------------------------------------------
=head2 www_editSubmission ( parent, params )
edit a submission
@ -448,6 +471,7 @@ sub www_editSubmissionSave {
$self->addRevision($formParams);
WebGUI::VersionTag->autoCommitWorkingIfEnabled($session, { override => 1, allowComments => 0 });
$self = $self->cloneFromDb;
$self->sendEmailUpdate;
return $self->www_view;
} else {
return $self->www_editSubmission($formParams);

View file

@ -698,9 +698,9 @@ sub view {
addBadgeUrl => $self->getUrl('func=add;class=WebGUI::Asset::Sku::EMSBadge'),
buildBadgeUrl => $self->getUrl('func=buildBadge'),
viewScheduleUrl => $self->getUrl('func=viewSchedule'),
addSubmissionUrl => $self->getUrl('func=addSubmission'),
addSubmissionUrl => $self->getUrl('func=viewSubmissionQueue#addSubmission'),
viewSubmissionQueueUrl => $self->getUrl('func=viewSubmissionQueue'),
addSubmissionFormUrl => $self->getUrl('func=addSubmissionForm'),
addSubmissionFormUrl => $self->getUrl('func=viewSubmissionQueue#addSubmissionForm'),
manageBadgeGroupsUrl=> $self->getUrl('func=manageBadgeGroups'),
getBadgesUrl => $self->getUrl('func=getBadgesAsJson'),
isRegistrationStaff => $self->isRegistrationStaff,
@ -1006,7 +1006,7 @@ calls editSubmissionForm in WebGUI::Asset::EMSSubmissionForm
sub www_editSubmissionForm {
my $self = shift;
return $self->session->privilege->insufficient() unless $self->isRegistrationStaff;
return $self->session->privilege->insufficient() unless $self->isRegistrationStaff || $self->canEdit;
return WebGUI::Asset::EMSSubmissionForm->www_editSubmissionForm($self,shift);
}
@ -2635,43 +2635,36 @@ sub www_viewSubmissionQueue {
# this map returns an array of hash refs with an id,url pair to describe the submissionForm assets
my @submissionFormUrls = map { {
id => $_->getId,
url => $_->getUrl('func=editSubmissionForm')
title => $_->get('title'),
linkUrl => $self->getUrl('func=viewSubmissionQueue#' . $_->getId ),
ajaxUrl => $_->getUrl('func=editSubmissionForm'),
} } (
@{$self->getLineage( ['children'],{ returnObjects => 1,
includeOnlyClasses => ['WebGUI::Asset::EMSSubmissionForm'],
} ) }
);
my $QueueTabData =
$self->processTemplate({
backUrl => $self->getUrl,
isRegistrationStaff => $isRegistrationStaff,
canEdit => $canEdit,
mainUrl => $self->getUrl,
canSubmit => $canSubmit,
hasSubmissionForms => $self->hasSubmissionForms,
getSubmissionQueueDataUrl => $self->getUrl('func=getAllSubmissions'),
addSubmissionFormUrl => $self->getUrl('func=addSubmissionForm'),
editSubmissionUrl => $self->getUrl('func=editSubmission'),
editSubmissionFormUrl => $self->getUrl('func=editSubmissionForm'),
addSubmissionUrl => $self->getUrl('func=addSubmission'),
submissionFormUrls => \@submissionFormUrls,
},$self->get('eventSubmissionQueueTemplateId'));
my $params = {
backUrl => $self->getUrl,
isRegistrationStaff => $isRegistrationStaff,
canEdit => $canEdit,
canSubmit => $canSubmit,
hasSubmissionForms => $self->hasSubmissionForms,
getSubmissionQueueDataUrl => $self->getUrl('func=getAllSubmissions'),
editSubmissionUrl => $self->getUrl('func=viewSubmissionQueue#editSubmission'),
editSubmissionFormUrl => $self->getUrl('func=viewSubmissionQueue#editSubmissionForm'),
addSubmissionFormUrl => $self->getUrl('func=viewSubmissionQueue#addSubmissionForm'),
addSubmissionUrl => $self->getUrl('func=viewSubmissionQueue#addSubmission'),
editSubmissionAjaxUrl => $self->getUrl('func=editSubmission'),
editSubmissionFormAjaxUrl => $self->getUrl('func=editSubmissionForm'),
addSubmissionFormAjaxUrl => $self->getUrl('func=addSubmissionForm'),
addSubmissionAjaxUrl => $self->getUrl('func=addSubmission'),
submissionFormUrls => \@submissionFormUrls,
queueTabTitle => $isRegistrationStaff ? $i18n->get('submission queue') : $i18n->get('my submissions'),
};
$params->{QueueTabData} = $self->processTemplate($params,$self->get('eventSubmissionQueueTemplateId'));
return $self->processStyle(
$self->processTemplate({
queueTabTitle => $isRegistrationStaff ? $i18n->get('submission queue') : $i18n->get('my submissions'),
queueTabData => $QueueTabData,
backUrl => $self->getUrl,
isRegistrationStaff => $isRegistrationStaff,
canEdit => $canEdit,
canSubmit => $canSubmit,
hasSubmissionForms => $self->hasSubmissionForms,
getSubmissionQueueDataUrl => $self->getUrl('func=getAllSubmissions'),
addSubmissionFormUrl => $self->getUrl('func=addSubmissionForm'),
editSubmissionFormUrl => $self->getUrl('func=editSubmissionForm'),
editSubmissionUrl => $self->getUrl('func=editSubmission'),
addSubmissionUrl => $self->getUrl('func=addSubmission'),
},$self->get('eventSubmissionMainTemplateId')));
$self->processTemplate( $params, $self->get('eventSubmissionMainTemplateId')));
}
1;

View file

@ -80,13 +80,14 @@ dav::log __PACKAGE__ . " executing\n";
my $limit = 2_500;
my $timeLimit = 120;
my $list = $root->getLineage( ['children'], { returnObjects => 1,
my $list = $root->getLineage( ['descendants'], { returnObjects => 1,
includeOnlyClasses => ['WebGUI::Asset::EMSSubmissionForm'],
} );
for my $emsf ( @$list ) {
my $whereClause = q{ submissionStatus='approved' };
my $res = $emsf->getLineage(['children'],{
my $res = $emsf->getLineage(['children'],{ returnObjects => 1,
joinClass => 'WebGUI::Asset::EMSSubmission',
includeOnlyClasses => ['WebGUI::Asset::EMSSubmission'],
whereClause => $whereClause,
} );

View file

@ -38,6 +38,12 @@ our $I18N = { ##hashref of hashes
context => q|Help text for the submission status field.|
},
'your submission has been updated' => {
message => q|Your event submission has been updated.|,
lastUpdated => 1131394072,
context => q|Message used to notify user when someone else changes their event submission.|
},
# 'TODO' => {
# message => q|TODO|,
# lastUpdated => 1131394072,

View file

@ -216,7 +216,7 @@ my $submission = {
};
$session->request->setup_body($submission);
my $sub1 = $frmA->addSubmission;
push @cleanup, sub { $sub1->delete; };
push @cleanup, sub { $sub1->puge; };
print join( "\n", @{$sub1->{errors}} ),"\n" if defined $sub1->{errors};
my $isa1 = isa_ok( $sub1, 'WebGUI::Asset::EMSSubmission', "userA/formA valid submission succeeded" );
ok( $ems->hasSubmissions, 'UserA has submissions on this ems' );
@ -234,7 +234,7 @@ my $submission = {
};
$session->request->setup_body($submission);
my $sub2 = $frmB->addSubmission;
push @cleanup, sub { $sub2->delete; };
push @cleanup, sub { $sub2->purge; };
my $isa2 = isa_ok( $sub2, 'WebGUI::Asset::EMSSubmission', "userB/FormB valid submission succeeded" );
loginUserC;
@ -337,11 +337,11 @@ is( $sub1->get('title'),'the new title','successfully changed the title');
loginRgstr;
$sub1->update({ status => 'approved' });
is($sub1->get('status'),'approved','set status to approved');
$sub1->update({ submissionStatus => 'approved' });
is($sub1->get('submissionStatus'),'approved','set status to approved');
$sub2->update({ status => 'denied' });
is($sub2->get('status'),'denied','set status to denied');
$sub2->update({ submissionStatus => 'denied' });
is($sub2->get('submissionStatus'),'denied','set status to denied');
SKIP: { skip "workflow activities not coded yet", 10 if 0;
@ -353,33 +353,33 @@ my $cleanupSubmissions = WebGUI::Test::Activity->create( $session,
"WebGUI::Workflow::Activity::CleanupEMSSubmissions"
);
push @cleanup, sub { $approveSubmissions->delete; $cleanupSubmissions->delete; };
push @cleanup, sub { $approveSubmissions->purge; $cleanupSubmissions->purge; };
#is($approveSubmissions->run, 'complete', 'approval complete');
is($approveSubmissions->run, 'complete', 'approval complete');
is($approveSubmissions->run, 'done', 'approval done');
$sub1 = $sub1->cloneFromDb;
is( $sub1->get('status'),'failed','submission failed to create');
is( $sub1->get('submissionStatus'),'failed','submission failed to create');
# TODO fill in the rest of the data required by EMSTicket
print "1\n";
$approveSubmissions->rerun;
print "2\n";
#is($approveSubmissions->run, 'complete', 'approval complete');
is($approveSubmissions->run, 'complete', 'approval complete');
is($approveSubmissions->run, 'done', 'approval done');
print "3\n";
$sub1 = $sub1->cloneFromDb;
print "4\n";
is( $sub1->get('status'),'created','approval successfull');
is( $sub1->get('submissionStatus'),'created','approval successfull');
print "5\n";
my $ticket = WebGUI::Asset->newByDynamicClass($session, $sub1->get('ticketId'));
print "6\n";
isa_ok( $ticket, 'WebGUI::Asset::Sku::EMSTicket', 'approval created a ticket');
print "7\n";
push @cleanup, sub { $ticket->delete; };
push @cleanup, sub { $ticket->purge; };
print "8\n";
$sub2->update({
@ -388,7 +388,7 @@ $sub2->update({
my $submissionId = $sub2->get('assetId');
$cleanupSubmissions->rerun;
#is($cleanupSubmissions->run, 'complete', 'cleanup complete');
is($cleanupSubmissions->run, 'complete', 'cleanup complete');
is($cleanupSubmissions->run, 'done', 'cleanup done');
$sub2 = WebGUI::Asset->newByDynamicClass($session, $submissionId);

View file

@ -82,16 +82,19 @@ sub run {
sub rerun {
my $self = shift;
my $session = $self->{session};
$self->{instance}->delete;
$self->{instance} = WebGUI::Workflow::Instance->create($self->{session},
$self->{instance} = WebGUI::Workflow::Instance->create($session,
{
workflowId => $self->{workflow}->getId,
skipSpectreNotification => 1,
}
);
my $tag = WebGUI::VersionTag->getWorking($session);
$tag->commit;
WebGUI::Test->tagsToRollback($tag);
my $tag = WebGUI::VersionTag->getWorking($session, 1);
if( $tag ) {
$tag->commit;
WebGUI::Test->tagsToRollback($tag);
}
}

View file

@ -95,7 +95,6 @@ WebGUI.EMS = function (configs) {
if( WebGUI.EMS.lastTab ) {
WebGUI.EMS.Tabs.set('activeTab',WebGUI.EMS.lastTab);
}
window.location.hash = "";
};
//***********************************************************************************
@ -155,8 +154,9 @@ WebGUI.EMS = function (configs) {
}
alert(message);
return;
} else if( typeof(WebGUI.EMS.Items[response.title]) == "undefined"
|| WebGUI.EMS.Items[response.title] == null ) {
// currently only one tab exists, so instead of checking we just delete it and recreate
} else { // if( typeof(WebGUI.EMS.Items[response.title]) == "undefined"
// || WebGUI.EMS.Items[response.title] == null ) {
// if there is a tab .. close it,
// at least until I can get the JS/HTML re-written to handle multiple tabs
// there should only be one
@ -172,9 +172,9 @@ WebGUI.EMS = function (configs) {
YAHOO.util.Event.on(myTab.getElementsByClassName('close')[0], 'click', WebGUI.EMS.closeTab , myTab);
WebGUI.EMS.Items[response.title] = new Object();
WebGUI.EMS.Items[response.title].Tab = myTab;
} else {
myTab = WebGUI.EMS.Items[response.title].Tab;
myTab.set('content', response.text);
//} else {
//myTab = WebGUI.EMS.Items[response.title].Tab;
//myTab.set('content', response.text);
}
// make sure the script on the ticket has run
// if( typeof( WebGUI.ticketJScriptRun ) == "undefined" ) {