details: https://code.openbravo.com/erp/devel/pi/rev/82d330104113
changeset: 15174:82d330104113
user: Asier Lostalé <asier.lostale <at> openbravo.com>
date: Mon Jan 23 09:29:23 2012 +0100
summary: fixed bug 19322: Refresh subject and body when changing poc template
diffstat:
src/org/openbravo/erpCommon/utility/reporting/printing/EmailOptions.html |
35 +++++-
src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java |
52 +++++++++-
2 files changed, 81 insertions(+), 6 deletions(-)
diffs (155 lines):
diff -r b05447dc9ed7 -r 82d330104113
src/org/openbravo/erpCommon/utility/reporting/printing/EmailOptions.html
--- a/src/org/openbravo/erpCommon/utility/reporting/printing/EmailOptions.html
Fri Jan 20 12:03:26 2012 +0100
+++ b/src/org/openbravo/erpCommon/utility/reporting/printing/EmailOptions.html
Mon Jan 23 09:29:23 2012 +0100
@@ -13,7 +13,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
- * All portions are Copyright (C) 2008-2011 Openbravo SLU
+ * All portions are Copyright (C) 2008-2012 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************
@@ -135,8 +135,35 @@
}
object.style.display = '';
}
-
- </script>
+
+ function templateChanged() {
+ var callback = function (paramXMLParticular, XMLHttpRequestObj) {
+ var o, fileName;
+ if (getReadyStateHandler(XMLHttpRequestObj)) {
+ try {
+ if (XMLHttpRequestObj.responseText) {
+ strText = XMLHttpRequestObj.responseText;
+ }
+ } catch (e) {}
+ o = eval('('+strText+')');
+ if (!o.error) {
+ document.getElementById('emailSubject').value = o.subject;
+ document.getElementById('emailBody').innerHTML = o.body;
+
+ if (o.filename){
+ fileName = document.getElementById('fileDocName');
+ fileName.removeChild(fileName.childNodes[0]);
+ fileName.appendChild(document.createTextNode(o.filename));
+ }
+ }
+ }
+ return true;
+ },
+ frm = document.frmMain;
+
+ return submitXmlHttpRequest(callback, frm, 'UPDATE_TEMPLATE',
'PrintOptions.html', false);
+ }
+</script>
</head>
@@ -269,7 +296,7 @@
<tr id="discardSelect">
<td class="TitleCell"><span
class="LabelText">Template to use</span></td>
<td colspan="2">
- <select style="width: 55%;"
name="templates" id="templates" class="ComboKey Combo_TwoCells_width"
required="true" onchange="displayLogic();return true;">
+ <select style="width: 55%;"
name="templates" id="templates" class="ComboKey Combo_TwoCells_width"
required="true" onchange="templateChanged();return true;">
<div id="reportEmail"></div>
</select>
</td>
diff -r b05447dc9ed7 -r 82d330104113
src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java
---
a/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java
Fri Jan 20 12:03:26 2012 +0100
+++
b/src/org/openbravo/erpCommon/utility/reporting/printing/PrintController.java
Mon Jan 23 09:29:23 2012 +0100
@@ -54,6 +54,8 @@
import net.sf.jasperreports.engine.JasperPrint;
import org.apache.commons.fileupload.FileItem;
+import org.codehaus.jettison.json.JSONException;
+import org.codehaus.jettison.json.JSONObject;
import org.openbravo.base.exception.OBException;
import org.openbravo.base.secureApp.HttpSecureAppServlet;
import org.openbravo.base.secureApp.VariablesSecureApp;
@@ -334,8 +336,13 @@
if (log4j.isDebugEnabled())
log4j.debug("Processing document with id: " + documentId);
+ String templateInUse = "default";
+ if (differentDocTypes.size() == 1) {
+ templateInUse = vars.getRequestGlobalVariable("templates",
"templates");
+ }
+
final Report report = buildReport(response, vars, documentId,
reportManager,
- documentType, OutputTypeEnum.EMAIL);
+ documentType, OutputTypeEnum.EMAIL, templateInUse);
// if there is only one document type id the user should be
// able to choose between different templates
@@ -349,6 +356,7 @@
throw new ServletException("Error trying to get template
information", e);
}
}
+
if (report == null)
throw new ServletException(Utility.messageBD(this, "NoDataReport",
vars.getLanguage())
+ documentId);
@@ -387,6 +395,39 @@
}
request.getSession().removeAttribute("files");
createPrintStatusPage(response, vars, nrOfEmailsSend);
+ } else if (vars.commandIn("UPDATE_TEMPLATE")) {
+ JSONObject o = new JSONObject();
+ try {
+ final String templateId = vars.getRequestGlobalVariable("templates",
"templates");
+ final String documentId = pocData[0].documentId;
+ for (final PocData documentData : pocData) {
+ final Report report = new Report(this, documentType, documentId,
vars.getLanguage(),
+ templateId, multiReports, OutputTypeEnum.DEFAULT);
+ o.put("templateId", templateId);
+ o.put("subject", report.getEmailDefinition().getSubject());
+ o.put("body", report.getEmailDefinition().getBody());
+ if (!multiReports) {
+ o.put("filename", report.getFilename());
+ }
+ reports = new HashMap<String, Report>();
+ reports.put(documentId, report);
+ }
+ vars.setSessionObject(sessionValuePrefix + ".Documents", reports);
+
+ } catch (Exception e) {
+ log4j.error("Error in change template ajax", e);
+ o = new JSONObject();
+ try {
+ o.put("error", true);
+ } catch (JSONException e1) {
+ log4j.error("Error in change template ajax", e1);
+ }
+ }
+
+ response.setContentType("application/json");
+ final PrintWriter out = response.getWriter();
+ out.println(o.toString());
+ out.close();
}
pageError(response);
@@ -508,12 +549,19 @@
private Report buildReport(HttpServletResponse response, VariablesSecureApp
vars,
String strDocumentId, final ReportManager reportManager, DocumentType
documentType,
OutputTypeEnum outputType) {
+ return buildReport(response, vars, strDocumentId, reportManager,
documentType, outputType,
+ "default");
+ }
+
+ private Report buildReport(HttpServletResponse response, VariablesSecureApp
vars,
+ String strDocumentId, final ReportManager reportManager, DocumentType
documentType,
+ OutputTypeEnum outputType, String templateId) {
Report report = null;
if (strDocumentId != null) {
strDocumentId = strDocumentId.replaceAll("\\(|\\)|'", "");
}
try {
- report = new Report(this, documentType, strDocumentId,
vars.getLanguage(), "default",
+ report = new Report(this, documentType, strDocumentId,
vars.getLanguage(), templateId,
multiReports, outputType);
} catch (final ReportingException e) {
log4j.error(e);
------------------------------------------------------------------------------
Try before you buy = See our experts in action!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-dev2
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits