diff --git a/lib/WebGUI/Asset/EMSSubmission.pm b/lib/WebGUI/Asset/EMSSubmission.pm
index 22453d6d8..f0093cd5d 100644
--- a/lib/WebGUI/Asset/EMSSubmission.pm
+++ b/lib/WebGUI/Asset/EMSSubmission.pm
@@ -440,12 +440,15 @@ dav::log 'EMSSubmission::www_editSubmission: asseId ne new';
sub www_editSubmissionSave {
my $self = shift;
- return $self->session->privilege->insufficient() unless $self->canEdit;
+ my $session = $self->session;
+ return $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;
+ $self->addRevision($formParams);
+ WebGUI::VersionTag->autoCommitWorkingIfEnabled($session, { override => 1, allowComments => 0 });
+ $self = $self->cloneFromDb;
+ return $self->www_view;
} else {
return $self->www_editSubmission($formParams);
}
@@ -489,7 +492,7 @@ sub getEditForm {
=head2 getEditTabs ( )
-Not to be modified, just defines 2 new tabs.
+defines 2 new tabs.
the shop tab is created here to mimic the function of the sku-created
shop tab. this class holds data like Sku assets so that they can be assigned
in the future when the sku asset is created from this data.
diff --git a/lib/WebGUI/Asset/EMSSubmissionForm.pm b/lib/WebGUI/Asset/EMSSubmissionForm.pm
index a9738ad9a..b2bbefe88 100644
--- a/lib/WebGUI/Asset/EMSSubmissionForm.pm
+++ b/lib/WebGUI/Asset/EMSSubmissionForm.pm
@@ -41,12 +41,6 @@ and then become EMSTicket's.
use WebGUI::Asset::EMSSubmissionForm;
-=head1 TODO
-
-add a lastSubmissionDate -- after that the submission form will be closed
- the link will still exist but the form will just say '
submissions closed as of '
-
-
=head1 METHODS
These methods are available from this class:
@@ -75,7 +69,10 @@ sub addSubmission {
$newParams->{className} = 'WebGUI::Asset::EMSSubmission';
$newParams->{submissionStatus} = 'pending';
$newParams->{submissionId} = $self->ems->getNextSubmissionId;
- $self->addChild($newParams);
+ my $newAsset = $self->addChild($newParams);
+ WebGUI::VersionTag->autoCommitWorkingIfEnabled($self->session, { override => 1, allowComments => 0 });
+ $self = $self->cloneFromDb;
+ return $newAsset;
}
#-------------------------------------------------------------------
@@ -254,7 +251,7 @@ sub www_editSubmissionForm {
return qq{$n} } ;
my $listOfLinks = join '', ( map {
$makeAnchorList->(
- $_->getUrl('func=editSubmissionForm' ),
+ $_->getQueueUrl,
$_->get('title'),
WebGUI::HTML::filter($_->get('description'),'all')
)
@@ -361,7 +358,9 @@ sub www_editSubmissionFormSave {
my $formParams = $self->processForm();
if( $formParams->{_isValid} ) {
delete $formParams->{_isValid};
- $self->update($formParams);
+ $self->addRevision($formParams);
+ WebGUI::VersionTag->autoCommitWorkingIfEnabled($self->session);
+ $self = $self->cloneFromDb;
return $self->getParent->www_viewSubmissionQueue;
} else {
return $self->www_editSubmissionForm($formParams);
@@ -392,6 +391,19 @@ sub getFormDescription {
return JSON->new->decode($self->get('formDescription'));
}
+#-------------------------------------------------------------------
+=head2 getQueueUrl
+
+returns the URL for the submission queue page with the submisison id in the hash part
+
+=cut
+
+sub getQueueUrl {
+ my $self = shift;
+ return $self->ems->getUrl('func=viewSubmissionQueue#' . $self->getId );
+}
+
+
#-------------------------------------------------------------------
=head2 indexContent ( )
diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
index 4dbde6912..e43ba0396 100644
--- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
+++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
@@ -50,7 +50,7 @@ sub addGroupToSubmitList {
my @ids = split(' ', $self->get('eventSubmissionGroups'));
my %h;
@ids = map { $h{$_}++ == 0 ? $_ : () } ( $groupId, @ids );
- $self->addRevision({eventSubmissionGroups => join( ' ', @ids ) });
+ $self->update({eventSubmissionGroups => join( ' ', @ids ) });
}
#-------------------------------------------------------------------
@@ -94,7 +94,10 @@ sub addSubmissionForm {
$params->{className} = 'WebGUI::Asset::EMSSubmissionForm';
$params->{canSubmitGroupId} ||= 2;
$self->addGroupToSubmitList($params->{canSubmitGroupId});
- return $self->addChild($params);
+ my $newAsset = $self->addChild($params);
+ WebGUI::VersionTag->autoCommitWorkingIfEnabled($self->session);
+ $self = $self->cloneFromDb;
+ return $newAsset;
}
#-------------------------------------------------------------------
@@ -434,7 +437,7 @@ sub getNextSubmissionId {
my $self = shift;
#my $submissionId = $self->get('nextSubmissionId');
my ($submissionId) = $self->session->db->read('select nextSubmissionId from EventManagementSystem where assetId = ?', [ $self->getId ] )->array;
- $self->addRevision( { nextSubmissionId => ($submissionId + 1) } );
+ $self->update( { nextSubmissionId => ($submissionId + 1) } );
return $submissionId;
}
@@ -963,6 +966,27 @@ sub www_editBadgeGroupSave {
return $self->www_manageBadgeGroups;
}
+#-------------------------------------------------------------------
+
+=head2 www_editSubmission
+
+use getLineage to find the item to edit based on submissionId
+then call www_editSubmission on it
+
+=cut
+
+sub www_editSubmission {
+ my $self = shift;
+ my $submissionId = $self->session->form->get('submissionId');
+ my $asset = $self->getLineage(['descendants'], { returnObjects => 1,
+ joinClass => "WebGUI::Asset::EMSSubmission",
+ whereClause => 'submissionId = ' . int($submissionId),
+ includeOnlyClasses => ['WebGUI::Asset::EMSSubmission'],
+ } );
+ return $asset->[0]->www_editSubmission;
+}
+
+
#-------------------------------------------------------------------
=head2 www_editSubmissionForm
@@ -2545,6 +2569,15 @@ sub www_viewSubmissionQueue {
my $i18n = $self->i18n;
return $self->session->privilege->insufficient() unless $canSubmit || $isRegistrationStaff;
+ # 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')
+ } } (
+ @{$self->getLineage( ['children'],{ returnObjects => 1,
+ includeOnlyClasses => ['WebGUI::Asset::EMSSubmissionForm'],
+ } ) }
+ );
my $QueueTabData =
$self->processTemplate({
backUrl => $self->getUrl,
@@ -2555,8 +2588,10 @@ sub www_viewSubmissionQueue {
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'));
return $self->processStyle(
@@ -2571,6 +2606,7 @@ sub www_viewSubmissionQueue {
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')));
}
diff --git a/lib/WebGUI/Operation/Group.pm b/lib/WebGUI/Operation/Group.pm
index 2ebf7d6b7..e0f0ed571 100644
--- a/lib/WebGUI/Operation/Group.pm
+++ b/lib/WebGUI/Operation/Group.pm
@@ -337,7 +337,7 @@ A WebGUI::Session object
sub www_autoAddToGroup {
my $session = shift;
- return $self->session->privilege->noAccess() if ($session->user->isVisitor);
+ return $session->privilege->noAccess() if ($session->user->isVisitor);
my $group = WebGUI::Group->new($session,$session->form->process("groupId"));
if ($group && $group->autoAdd) {
$group->addUsers([$session->user->userId],[$session->form->process("groupId")]);
@@ -361,7 +361,7 @@ A WebGUI::Session object
sub www_autoDeleteFromGroup {
my $session = shift;
- return $self->session->privilege->noAccess() if ($session->user->isVisitor);
+ return $session->privilege->noAccess() if ($session->user->isVisitor);
my $group = WebGUI::Group->new($session,$session->form->process("groupId"));
if ($group && $group->autoDelete) {
$group->deleteUsers([$session->user->userId],[$session->form->process("groupId")]);
diff --git a/lib/WebGUI/Workflow/Activity/CleanupEMSSubmissions.pm b/lib/WebGUI/Workflow/Activity/CleanupEMSSubmissions.pm
index df8c8a85a..a9a29f1af 100644
--- a/lib/WebGUI/Workflow/Activity/CleanupEMSSubmissions.pm
+++ b/lib/WebGUI/Workflow/Activity/CleanupEMSSubmissions.pm
@@ -68,10 +68,13 @@ See WebGUI::Workflow::Activity::execute() for details.
=cut
+use lib '/root/pb/lib'; use dav;
+
sub execute {
my $self = shift;
my $session = $self->session;
my $root = WebGUI::Asset->getRoot($session);
+dav::log __PACKAGE__ . " executing\n";
# keep track of how much time it's taking
my $start = time;
@@ -83,12 +86,14 @@ sub execute {
} );
for my $emsf ( @$list ) {
- my whereClause = q{ ( submissionStatus='denied' }
+ my $daysBeforeCleanup = $emsf->get('daysBeforeCleanup') ;
+ next if ! $daysBeforeCleanup;
+ my $whereClause = q{ submissionStatus='denied' };
if( $emsf->get('deleteCreatedItems') ) {
- $whereClause .= q{ or submissionStatus='created'};
+ $whereClause = ' ( ' . $whereClause . q{ or submissionStatus='created' } . ' ) ';
}
- my $checkDate = time - ( 60*60*24* $emsf->get('daysBeforeCleanup') );
- $whereClause .= q{ ) and lastModifiedDate < } . $checkDate;
+ my $checkDate = time - ( 60*60*24* $daysBeforeCleanup );
+ $whereClause .= q{ and lastModifiedDate < } . $checkDate;
my $res = $emsf->getLineage(['children'],{
includeOnlyClasses => ['WebGUI::Asset::EMSSubmission'],
whereClause => $whereClause,
diff --git a/lib/WebGUI/Workflow/Activity/ProcessEMSApprovals.pm b/lib/WebGUI/Workflow/Activity/ProcessEMSApprovals.pm
index 5a73b4bda..b24bf1dfd 100644
--- a/lib/WebGUI/Workflow/Activity/ProcessEMSApprovals.pm
+++ b/lib/WebGUI/Workflow/Activity/ProcessEMSApprovals.pm
@@ -68,11 +68,13 @@ See WebGUI::Workflow::Activity::execute() for details.
=cut
+use lib '/root/pb/lib'; use dav;
+
sub execute {
my $self = shift;
my $session = $self->session;
my $root = WebGUI::Asset->getRoot($session);
-
+dav::log __PACKAGE__ . " executing\n";
# keep track of how much time it's taking
my $start = time;
my $limit = 2_500;
@@ -83,7 +85,7 @@ sub execute {
} );
for my $emsf ( @$list ) {
- my whereClause = q{ ( submissionStatus='approved' }
+ my $whereClause = q{ submissionStatus='approved' };
my $res = $emsf->getLineage(['children'],{
includeOnlyClasses => ['WebGUI::Asset::EMSSubmission'],
whereClause => $whereClause,
@@ -94,11 +96,15 @@ sub execute {
delete $properties{submissionStatus};
delete $properties{sendEmailOnChange};
delete $properties{ticketId};
- my $ticketId = $emsf->ems->addChild(
+ my $newAsset = $emsf->ems->addChild(
className => 'WebGUI::Asset::Sku::EMSTicket',
- %properties;
+ %properties,
);
- $submission->update({ ticketId => $ticketId });
+ if( defined $newAsset ) {
+ $submission->update({ ticketId => $newAsset->getId, submissionStatus => 'created' });
+ } else {
+ $submission->update({ submissionStatus => 'failed' });
+ }
$limit--;
return $self->WAITING(1) if ! $limit or time > $start + $timeLimit;
}
@@ -106,33 +112,6 @@ sub execute {
return $self->COMPLETE;
}
-sub execute {
- my $self = shift;
- my $session = $self->session;
- my $root = WebGUI::Asset->getRoot($session);
-return $self->ERROR;
-
- my $sth = $session->db->read("select assetId from asset where className='WebGUI::Asset::Wobject::HelpDesk'");
- while (my ($assetId) = $sth->array) {
- my $hd = WebGUI::Asset->new($session,$assetId,"WebGUI::Asset::Wobject::HelpDesk");
- next unless defined $hd;
-
- my $closeAfter = $hd->get("closeTicketsAfter");
-
- my $rules = {};
- $rules->{'joinClass' } = "WebGUI::Asset::Ticket";
- $rules->{'whereClause' } = qq{Ticket.ticketStatus = 'resolved' and (Ticket.resolvedDate + $closeAfter <= UNIX_TIMESTAMP(NOW()))};
- $rules->{'includeOnlyClasses'} = ['WebGUI::Asset::Ticket'];
- $rules->{'returnObjects' } = 1;
-
- my $tickets = $hd->getLineage(['children'], $rules);
- foreach my $ticket (@{$tickets}) {
- $ticket->setStatus("closed");
- }
- }
- return $self->COMPLETE;
-}
-
1;
diff --git a/lib/WebGUI/i18n/English/Asset_EMSSubmissionForm.pm b/lib/WebGUI/i18n/English/Asset_EMSSubmissionForm.pm
index 98a13e115..58fd5517e 100644
--- a/lib/WebGUI/i18n/English/Asset_EMSSubmissionForm.pm
+++ b/lib/WebGUI/i18n/English/Asset_EMSSubmissionForm.pm
@@ -9,16 +9,6 @@ our $I18N = { ##hashref of hashes
lastUpdated => 1131394072,
context => q|Then name of the Asset ( Event Management System - Event Submission Form ).|
},
- 'next submission id label' => {
- message => q|Next Submission Id|,
- lastUpdated => 1131394072,
- context => q|Label for the field which indicates the next id used to create a submission.|
- },
- 'next submission id label help' => {
- message => q|This is the value that will be used to fill in the first submission, do not edit it.|,
- lastUpdated => 1131394072,
- context => q|This is the help text for the 'next submission id' field, the user should be reminded not to edit this field.|
- },
'can submit group label' => {
message => q|User Group Allowed to create Submissions|,
lastUpdated => 1131394072,
diff --git a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm
index 42c227564..3d04e6300 100644
--- a/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm
+++ b/lib/WebGUI/i18n/English/Asset_EventManagementSystem.pm
@@ -2034,6 +2034,16 @@ normal templates.|,
context => q|Label for the submission list tab for event submitters.|,
},
+ 'next submission id label' => {
+ message => q|Next Submission Id|,
+ lastUpdated => 1131394072,
+ context => q|Label for the field which indicates the next id used to create a submission.|
+ },
+ 'next submission id label help' => {
+ message => q|This is the value that will be used to fill in the first submission, do not edit it.|,
+ lastUpdated => 1131394072,
+ context => q|This is the help text for the 'next submission id' field, the user should be reminded not to edit this field.|
+ },
# 'TODO' => {
# message => q|TODO|,
# lastUpdated => 1147050475,
diff --git a/t/Asset/EMSSubmissionForm.t b/t/Asset/EMSSubmissionForm.t
index 10a0438fb..99915144d 100644
--- a/t/Asset/EMSSubmissionForm.t
+++ b/t/Asset/EMSSubmissionForm.t
@@ -69,8 +69,10 @@ sub logout { $session->user({userId => 1}); }
#----------------------------------------------------------------------------
# put your tests here
eval {
-my $use = use_ok 'WebGUI::Asset::EMSSubmissionForm';
-$use &&= use_ok 'WebGUI::Asset::EMSSubmission';
+my $use = use_ok( 'WebGUI::Asset::EMSSubmissionForm' )
+ && use_ok( 'WebGUI::Asset::EMSSubmission' )
+ && use_ok( 'WebGUI::Workflow::Activity::CleanupEMSSubmissions' )
+ && use_ok( 'WebGUI::Workflow::Activity::ProcessEMSApprovals' );
SKIP: { skip 'package compile failed!', 1 unless $use;
@@ -120,13 +122,14 @@ my $ems = $node->addChild({
},1,1);
my $i18n = $ems->i18n;
+
$versionTag->commit;
+$versionTag = WebGUI::VersionTag->getWorking($session);
+WebGUI::Test->tagsToRollback($versionTag);
my $id1 = $ems->getNextSubmissionId;
my $id2 = $ems->getNextSubmissionId;
-my $id3 = $ems->getNextSubmissionId;
-my $id4 = $ems->getNextSubmissionId;
-is( $id1 +3, $id4, ' test getNextSubmissionId' );
+is( $id1 +1, $id2, ' test getNextSubmissionId' );
# quick test of addGroupToSubmitList
is($ems->get('eventSubmissionGroups'),'', 'event submission groups is blank');
@@ -139,13 +142,12 @@ is($ems->get('eventSubmissionGroups'),'joe frank', 'event submission groups stil
$ems->update({eventSubmissionGroups => ''});
is($ems->get('eventSubmissionGroups'),'', 'event submission groups is reset to blank');
+
is_deeply($ems->getSubmissionLocations, \@submissionLocations, 'test getSubmissionLocations' );
is_deeply( $ems->getSubmissionStatus, {
map { $_ => $i18n->get($_) } ( qw/pending feedback failed approved created denied/ )
}, 'test getSubmissionStatus' );
-$versionTag = WebGUI::VersionTag->getWorking($session);
-WebGUI::Test->tagsToRollback($versionTag);
loginRgstr;
@@ -190,7 +192,7 @@ my $formBdesc = {
my $frmB = $ems->addSubmissionForm({
className => 'WebGUI::Asset::EMSSubmissionForm',
title => 'test B -- short',
- daysBeforeCleanup => 0,
+ daysBeforeCleanup => 1,
canSubmitGroupId => $submitGroupB->getId,
formDescription => $formBdesc,
});
@@ -248,10 +250,10 @@ cmp_deeply( from_json($ems->www_getAllSubmissions), {
records => [
{
lastReplyDate => '',
- submissionId => '5',
+ submissionId => '3',
creationDate => ignore(),
createdBy => 'userA',
- url => '/test-ems?func=viewSubmissionQueue#5',
+ url => '/test-ems?func=viewSubmissionQueue#3',
submissionStatus => $i18n->get('pending'),
title => 'my favorite thing to talk about',
lastReplyBy => ''
@@ -262,10 +264,10 @@ cmp_deeply( from_json($ems->www_getAllSubmissions), {
dir => 'DESC',
}, 'test getAllSubmissions for UserA' );
-$session->request->setup_body({submissionId => 5});
+$session->request->setup_body({submissionId => 3});
cmp_deeply( from_json($ems->www_getSubmissionById), {
- submissionId => 5,
- itemText => ignore(),
+ title => 3,
+ text => ignore(),
}, 'test getSubmissionById');
loginUserC;
@@ -287,20 +289,20 @@ cmp_deeply( from_json($ems->www_getAllSubmissions), {
records => [
{
lastReplyDate => '',
- submissionId => '6',
+ submissionId => '4',
creationDate => ignore(),
createdBy => 'userB',
- url => '/test-ems?func=viewSubmissionQueue#6',
+ url => '/test-ems?func=viewSubmissionQueue#4',
submissionStatus => $i18n->get('pending'),
title => 'why i like to be important',
lastReplyBy => ''
},
{
lastReplyDate => '',
- submissionId => '5',
+ submissionId => '3',
creationDate => ignore(),
createdBy => 'userA',
- url => '/test-ems?func=viewSubmissionQueue#5',
+ url => '/test-ems?func=viewSubmissionQueue#3',
submissionStatus => $i18n->get('pending'),
title => 'my favorite thing to talk about',
lastReplyBy => ''
@@ -353,34 +355,46 @@ my $cleanupSubmissions = WebGUI::Test::Activity->create( $session,
push @cleanup, sub { $approveSubmissions->delete; $cleanupSubmissions->delete; };
-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');
# TODO fill in the rest of the data required by EMSTicket
-is($approveSubmissions->run, 'complete', 'approval complete');
+print "1\n";
+$approveSubmissions->rerun;
+print "2\n";
+#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');
+print "5\n";
my $ticket = WebGUI::Asset->newByDynamicClass($session, $sub1->get('ticketId'));
-isa_ok( $ticket, 'WebGUI::Asset::Sku::EMS_Ticket', 'approval created a ticket');
+print "6\n";
+isa_ok( $ticket, 'WebGUI::Asset::Sku::EMSTicket', 'approval created a ticket');
+print "7\n";
push @cleanup, sub { $ticket->delete; };
+print "8\n";
$sub2->update({
lastModified => time - ( 60 * 60 * 72 ), # last modified 3 days ago
});
my $submissionId = $sub2->get('assetId');
-is($cleanupSubmissions->run, 'complete', 'cleanup complete');
+$cleanupSubmissions->rerun;
+#is($cleanupSubmissions->run, 'complete', 'cleanup complete');
is($cleanupSubmissions->run, 'done', 'cleanup done');
$sub2 = WebGUI::Asset->newByDynamicClass($session, $submissionId);
-is( $sub2, undef, 'approval created a ticket');
+is( $sub2, undef, 'ticket deleted');
-# TODO add a test to cleanup denied and created entries
+# TODO add a test to cleanup created entries
} # end of workflow skip
diff --git a/t/lib/WebGUI/Test/Activity.pm b/t/lib/WebGUI/Test/Activity.pm
index 51294e5b7..173f787ed 100644
--- a/t/lib/WebGUI/Test/Activity.pm
+++ b/t/lib/WebGUI/Test/Activity.pm
@@ -66,6 +66,11 @@ sub create {
skipSpectreNotification => 1,
}
);
+
+ my $tag = WebGUI::VersionTag->getWorking($session);
+ $tag->commit;
+ WebGUI::Test->tagsToRollback($tag);
+
return bless { instance => $instance,
session => $session,
workflow => $workflow }, __PACKAGE__;
@@ -84,6 +89,10 @@ sub rerun {
skipSpectreNotification => 1,
}
);
+ my $tag = WebGUI::VersionTag->getWorking($session);
+ $tag->commit;
+ WebGUI::Test->tagsToRollback($tag);
+
}
sub delete {
diff --git a/www/extras/wobject/EMS/submission.js b/www/extras/wobject/EMS/submission.js
index 9aebca2fe..7d3efe19f 100644
--- a/www/extras/wobject/EMS/submission.js
+++ b/www/extras/wobject/EMS/submission.js
@@ -36,13 +36,14 @@ WebGUI.EMS = function (configs) {
this._configs = {};
if(configs) {
this._configs = configs;
+ WebGUI.EMS.url = configs.url;
+ WebGUI.EMS.tabContent = configs.tabContent;
}
- this.url = this._configs.url;
+ WebGUI.EMS.Items = new Object();
if(!this._configs.initRequestString) {
this._configs.initRequestString = ';startIndex=0';
}
- WebGUI.EMS.Items = new Object();
///////////////////////////////////////////////////////////////
// Internationalization
@@ -94,7 +95,7 @@ WebGUI.EMS = function (configs) {
if( WebGUI.EMS.lastTab ) {
WebGUI.EMS.Tabs.set('activeTab',WebGUI.EMS.lastTab);
}
- window.location.hash = '';
+ window.location.hash = "";
};
//***********************************************************************************
@@ -172,7 +173,7 @@ WebGUI.EMS = function (configs) {
WebGUI.EMS.Items[response.title] = new Object();
WebGUI.EMS.Items[response.title].Tab = myTab;
} else {
- myTab = WebGUI.EMS.Tickets[response.title].Tab;
+ myTab = WebGUI.EMS.Items[response.title].Tab;
myTab.set('content', response.text);
}
// make sure the script on the ticket has run
@@ -242,12 +243,24 @@ WebGUI.EMS = function (configs) {
//***********************************************************************************
// This method does the actual work of loading an item into a tab
//
- WebGUI.EMS.loadItem = function ( submissionId, pathname ) {
- if( typeof(pathname) == "undefined" ) {
- pathname = WebGUI.EMS.url ;
- }
- var url = pathname + "?func=getSubmissionById;submissionId=" + submissionId;
- WebGUI.EMS.newTab(submissionId, url );
+ WebGUI.EMS.loadItem = function ( contentId ) {
+ var submissionId = parseInt( contentId, 10 );
+ var url;
+ // compare contentId with submissionId incase we get an assetId that starts with numeric chars
+ if( contentId == submissionId ) {
+ url = WebGUI.EMS.tabContent['editSubmission'] + ";submissionId=" + submissionId;
+ } else {
+ url = WebGUI.EMS.tabContent[contentId];
+ }
+ WebGUI.EMS.newTab(url);
+ };
+
+ //***********************************************************************************
+ // Load an item when the user clicks on an anchor html element
+ //
+ WebGUI.EMS.loadItemFromAnchor = function ( anchorObject ) {
+ var tabContent = anchorObject.hash.substring(1);
+ WebGUI.EMS.loadItem(tabContent);
};
//***********************************************************************************
@@ -270,12 +283,13 @@ WebGUI.EMS = function (configs) {
var elCell = this.getTdEl(target);
if(elCell) {
var oRecord = this.getRecord(elCell);
+ var submissionId = oRecord.getData('submissionId');
- if( typeof( WebGUI.EMS.Items[oRecord.submissionId] ) != "undefined" ) {
- WebGUI.EMS.Tabs.set('activeTab',WebGUI.EMS.Items[oRecord.submissionId].Tab);
+ if( typeof( WebGUI.EMS.Items[submissionId] ) != "undefined" ) {
+ WebGUI.EMS.Tabs.set('activeTab',WebGUI.EMS.Items[submissionId].Tab);
WebGUI.EMS.loadingIndicator.hide();
} else {
- WebGUI.EMS.loadItem( oRecord.submissionId );
+ WebGUI.EMS.loadItem( submissionId );
}
} else {
alert("Could not get table cell for " + target);