diff --git a/lib/WebGUI/Asset/EMSSubmission.pm b/lib/WebGUI/Asset/EMSSubmission.pm
index c201a902f..7d457bd76 100644
--- a/lib/WebGUI/Asset/EMSSubmission.pm
+++ b/lib/WebGUI/Asset/EMSSubmission.pm
@@ -420,12 +420,20 @@ dav::log 'EMSSubmission::www_editSubmission: asseId ne new';
}
# TODO add the comment form
$newform->submit;
- return $asset->processStyle(
+ my $title = $assetId eq 'new' ? $i18n->get('new submission') || 'new' : $asset->get('submissionId');
+ my $content = $asset->processStyle(
$asset->processTemplate({
errors => $params->{errors} || [],
backUrl => $parent->getUrl,
pageForm => $newform->print,
},$parent->getParent->get('eventSubmissionTemplateId')));
+ if( $session->form->get('asJson') ) {
+ $session->http->setMimeType( 'application/json' );
+ return JSON->new->encode( { text => $content, title => $title } );
+ } else {
+ $session->http->setMimeType( 'text/html' );
+ return $content;
+ }
}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Asset/EMSSubmissionForm.pm b/lib/WebGUI/Asset/EMSSubmissionForm.pm
index 79cbf8d27..6f3cee7a0 100644
--- a/lib/WebGUI/Asset/EMSSubmissionForm.pm
+++ b/lib/WebGUI/Asset/EMSSubmissionForm.pm
@@ -322,12 +322,21 @@ dav::dump 'editSubmissionForm::dump before generate:',$fields;
);
}
$newform->submit;
- return $asset->processStyle(
+ my $title = $assetId eq 'new' ? $i18n->get('new form') || 'new' : $asset->get('title');
+ my $content = $asset->processStyle(
$asset->processTemplate({
errors => $params->{errors} || [],
backUrl => $parent->getUrl,
pageForm => $newform->print,
},$parent->get('eventSubmissionTemplateId')));
+ if( $session->form->get('asJson') ) {
+ $session->http->setMimeType( 'application/json' );
+ return JSON->new->encode( { text => $content, title => $title } );
+ } else {
+ $session->http->setMimeType( 'text/html' );
+ return $content;
+ }
+
}
#-------------------------------------------------------------------
diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
index c6f7662cf..41d92c347 100644
--- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
+++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm
@@ -1349,8 +1349,8 @@ sub www_getSubmissionById {
$result->{hasError} = 1;
$result->{errors} = [ 'failed to load submission' ];
} else {
- $result->{itemText} = $res->[0]->www_editSubmission;
- $result->{submissionId} = $submissionId;
+ $result->{text} = $res->[0]->www_editSubmission;
+ $result->{title} = $submissionId;
}
$self->session->http->setMimeType('application/json');
return JSON->new->encode($result);
diff --git a/www/extras/wobject/EMS/submission.js b/www/extras/wobject/EMS/submission.js
index 5ac5a0e9e..ac16f820e 100644
--- a/www/extras/wobject/EMS/submission.js
+++ b/www/extras/wobject/EMS/submission.js
@@ -126,6 +126,72 @@ WebGUI.EMS = function (configs) {
dt.getDataSource().sendRequest(WebGUI.EMS.buildQueryString(newState, dt), oCallback);
};
+ //***********************************************************************************
+ //This method is out here so it can be overridden. The datatable uses this method to sort it's columns
+ WebGUI.EMS.newTab = function(url) {
+ // the 'loading' 'indicator'
+ if( typeof(WebGUI.EMS.loadingIndicator) == "undefined" ) {
+ WebGUI.EMS.loadingIndicator = new YAHOO.widget.Overlay( "loadingIndicator", {
+ fixedcenter : true,
+ visible : false
+ } );
+ WebGUI.EMS.loadingIndicator.setBody( "Loading ..." +
+ "
"
+ );
+ WebGUI.EMS.loadingIndicator.render(document.body);
+ }
+ WebGUI.EMS.loadingIndicator.show();
+
+ // Create callback object for the request
+ var oCallback = {
+ success: function(o) {
+ var response = eval('(' + o.responseText + ')');
+ var myTab;
+ if(response.hasError){
+ var message = "";
+ for(var i = 0; i < response.errors.length; i++) {
+ message += response.errors[i];
+ }
+ alert(message);
+ return;
+ } else if( typeof(WebGUI.EMS.Items[response.submissionId]) == "undefined"
+ || WebGUI.EMS.Items[response.submissionId] == 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
+ for( var ticketId in WebGUI.EMS.Tickets ) { WebGUI.EMS.closeTab(ticketId) }
+ var myContent = document.createElement("div");
+ myContent.innerHTML = response.itemText;
+ myTab = new YAHOO.widget.Tab({
+ label: response.submissionId + '
',
+ contentEl: myContent
+ });
+ WebGUI.EMS.Tabs.addTab( myTab );
+ YAHOO.util.Event.on(myTab.getElementsByClassName('close')[0], 'click', WebGUI.EMS.closeTab , myTab);
+ WebGUI.EMS.Items[response.submissionId] = new Object();
+ WebGUI.EMS.Items[response.submissionId].Tab = myTab;
+ } else {
+ myTab = WebGUI.EMS.Tickets[response.submissionId].Tab;
+ myTab.set('content', response.itemText);
+ }
+ // make sure the script on the ticket has run
+ // if( typeof( WebGUI.ticketJScriptRun ) == "undefined" ) {
+ // eval( document.getElementById("ticketJScript").innerHTML );
+ // }
+ // delete WebGUI.ticketJScriptRun;
+ WebGUI.EMS.loadingIndicator.hide();
+ WebGUI.EMS.lastTab = WebGUI.EMS.Tabs.get('activeTab');
+ WebGUI.EMS.Tabs.set('activeTab',myTab);
+ },
+ failure: function(o) {
+ WebGUI.EMS.loadingIndicator.hide();
+ alert("AJAX call failed");
+ }
+ };
+ var request = YAHOO.util.Connect.asyncRequest('GET', url + ';asJson=1' , oCallback);
+ };
+
//***********************************************************************************
//This method is out here so it can be overridden. The datatable uses this method to sort it's columns
WebGUI.EMS.sortColumn = function(oColumn,sDir) {
@@ -177,72 +243,11 @@ WebGUI.EMS = function (configs) {
// This method does the actual work of loading an item into a tab
//
WebGUI.EMS.loadItem = function ( submissionId, pathname ) {
- // the 'loading' 'indicator'
- if( typeof(WebGUI.EMS.loadingIndicator) == "undefined" ) {
- WebGUI.EMS.loadingIndicator = new YAHOO.widget.Overlay( "loadingIndicator", {
- fixedcenter : true,
- visible : false
- } );
- WebGUI.EMS.loadingIndicator.setBody( "Loading ..." +
- "
"
- );
- WebGUI.EMS.loadingIndicator.render(document.body);
- }
- WebGUI.EMS.loadingIndicator.show();
-
if( typeof(pathname) == "undefined" ) {
pathname = WebGUI.EMS.url ;
}
var url = pathname + "?func=getSubmissionById;submissionId=" + submissionId;
-
- // Create callback object for the request
- var oCallback = {
- success: function(o) {
- var response = eval('(' + o.responseText + ')');
- var myTab;
- if(response.hasError){
- var message = "";
- for(var i = 0; i < response.errors.length; i++) {
- message += response.errors[i];
- }
- alert(message);
- return;
- } else if( typeof(WebGUI.EMS.Items[response.submissionId]) == "undefined"
- || WebGUI.EMS.Items[response.submissionId] == 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
- for( var ticketId in WebGUI.EMS.Tickets ) { WebGUI.EMS.closeTab(ticketId) }
- var myContent = document.createElement("div");
- myContent.innerHTML = response.itemText;
- myTab = new YAHOO.widget.Tab({
- label: response.submissionId + '
',
- contentEl: myContent
- });
- WebGUI.EMS.Tabs.addTab( myTab );
- YAHOO.util.Event.on(myTab.getElementsByClassName('close')[0], 'click', WebGUI.EMS.closeTab , myTab);
- WebGUI.EMS.Items[response.submissionId] = new Object();
- WebGUI.EMS.Items[response.submissionId].Tab = myTab;
- } else {
- myTab = WebGUI.EMS.Tickets[response.submissionId].Tab;
- myTab.set('content', response.itemText);
- }
- // make sure the script on the ticket has run
- // if( typeof( WebGUI.ticketJScriptRun ) == "undefined" ) {
- // eval( document.getElementById("ticketJScript").innerHTML );
- // }
- // delete WebGUI.ticketJScriptRun;
- WebGUI.EMS.loadingIndicator.hide();
- WebGUI.EMS.lastTab = WebGUI.EMS.Tabs.get('activeTab');
- WebGUI.EMS.Tabs.set('activeTab',myTab);
- },
- failure: function(o) {
- WebGUI.EMS.loadingIndicator.hide();
- alert("AJAX call failed");
- }
- };
- var request = YAHOO.util.Connect.asyncRequest('GET', url, oCallback);
+ WebGUI.EMS.newTab(submissionId, url );
};
//***********************************************************************************