details: /erp/devel/pi/rev/8a6fc6fe95f8
changeset: 7604:8a6fc6fe95f8
user: Stefan Hühner <stefan.huehner <at> openbravo.com>
date: Mon Jun 14 18:42:55 2010 +0200
summary: Issue 12981: Fix formatting
details: /erp/devel/pi/rev/713673c0d94d
changeset: 7605:713673c0d94d
user: Stefan Hühner <stefan.huehner <at> openbravo.com>
date: Mon Jun 14 18:46:15 2010 +0200
summary: Fixed 12981: Fix selecting multiple records with special characters
in data
Code change to add xml-cdata to the id#rowkey output of the getIdsInRange
request as the rowkey part of this reponse can contain special characters
like '&'.
diffstat:
src/org/openbravo/erpCommon/info/BusinessPartnerMultiple.java | 36 +++--
src/org/openbravo/erpCommon/info/ProductMultiple.java | 35 +++--
src/org/openbravo/erpCommon/info/ProjectMultiple.java | 68 ++++++----
3 files changed, 76 insertions(+), 63 deletions(-)
diffs (truncated from 317 to 300 lines):
diff -r 37271534c60d -r 713673c0d94d
src/org/openbravo/erpCommon/info/BusinessPartnerMultiple.java
--- a/src/org/openbravo/erpCommon/info/BusinessPartnerMultiple.java Mon Jun
14 16:18:28 2010 +0200
+++ b/src/org/openbravo/erpCommon/info/BusinessPartnerMultiple.java Mon Jun
14 18:46:15 2010 +0200
@@ -215,27 +215,27 @@
String strOrderBy = SelectorUtility.buildOrderByClause(strOrderCols,
strOrderDirs);
page = TableSQLData.calcAndGetBackendPage(vars,
"BusinessPartnerData.currentPage");
if (vars.getStringParameter("movePage", "").length() > 0) {
- // on movePage action force executing countRows again
- strNewFilter = "";
+ // on movePage action force executing countRows again
+ strNewFilter = "";
}
int oldOffset = offset;
offset = (page * TableSQLData.maxRowsPerGridPage) + offset;
log4j.debug("relativeOffset: " + oldOffset + " absoluteOffset: " +
offset);
// New filter or first load
if (strNewFilter.equals("1") || strNewFilter.equals("")) {
- String rownum = "0", oraLimit1 = null, oraLimit2 = null,
pgLimit = null;
- if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
- oraLimit1 = String.valueOf(offset +
TableSQLData.maxRowsPerGridPage);
- oraLimit2 = (offset + 1) + " AND " + oraLimit1;
- rownum = "ROWNUM";
- } else {
- pgLimit = TableSQLData.maxRowsPerGridPage + " OFFSET "
+ offset;
- }
- strNumRows = BusinessPartnerMultipleData.countRows(this,rownum,
Utility.getContext(this, vars,
- "#User_Client", "BusinessPartner"), Utility.getContext(this,
vars,
+ String rownum = "0", oraLimit1 = null, oraLimit2 = null, pgLimit =
null;
+ if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
+ oraLimit1 = String.valueOf(offset +
TableSQLData.maxRowsPerGridPage);
+ oraLimit2 = (offset + 1) + " AND " + oraLimit1;
+ rownum = "ROWNUM";
+ } else {
+ pgLimit = TableSQLData.maxRowsPerGridPage + " OFFSET " + offset;
+ }
+ strNumRows = BusinessPartnerMultipleData.countRows(this, rownum,
Utility.getContext(this,
+ vars, "#User_Client", "BusinessPartner"),
Utility.getContext(this, vars,
"#AccessibleOrgTree", "BusinessPartner"), strKey, strName,
strContact, strZIP,
strProvincia, (strBpartners.equals("costumer") ? "clients" :
""), (strBpartners
- .equals("vendor") ? "vendors" : ""), strCity,pgLimit,
oraLimit1, oraLimit2);
+ .equals("vendor") ? "vendors" : ""), strCity, pgLimit,
oraLimit1, oraLimit2);
vars.setSessionValue("BusinessPartnerMultipleInfo.numrows",
strNumRows);
} else {
strNumRows =
vars.getSessionValue("BusinessPartnerMultipleInfo.numrows");
@@ -302,7 +302,8 @@
strRowsData.append(" <title>").append(title).append("</title>\n");
strRowsData.append("
<description>").append(description).append("</description>\n");
strRowsData.append(" </status>\n");
- strRowsData.append(" <rows numRows=\"").append(strNumRows).append("\"
backendPage=\"" + page + "\">\n");
+ strRowsData.append(" <rows numRows=\"").append(strNumRows).append(
+ "\" backendPage=\"" + page + "\">\n");
if (data != null && data.length > 0) {
for (int j = 0; j < data.length; j++) {
strRowsData.append(" <tr>\n");
@@ -369,13 +370,13 @@
String strOrderBy = SelectorUtility.buildOrderByClause(strOrderCols,
strOrderDirs);
String strPage = vars.getSessionValue("ProductMultiple|currentPage",
"0");
int page = Integer.valueOf(strPage);
-
+
int oldMinOffset = minOffset;
int oldMaxOffset = maxOffset;
minOffset = (page * TableSQLData.maxRowsPerGridPage) + minOffset;
maxOffset = (page * TableSQLData.maxRowsPerGridPage) + maxOffset;
log4j.debug("relativeMinOffset: " + oldMinOffset + " absoluteMinOffset:
" + minOffset);
- log4j.debug("relativeMaxOffset: " + oldMaxOffset + " absoluteMaxOffset:
" + maxOffset);
+ log4j.debug("relativeMaxOffset: " + oldMaxOffset + " absoluteMaxOffset:
" + maxOffset);
// Filtering result
if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
String oraLimit1 = String.valueOf(maxOffset);
@@ -400,7 +401,8 @@
res = new FieldProvider[data.length];
for (int i = 0; i < data.length; i++) {
SQLReturnObject sqlReturnObject = new SQLReturnObject();
- sqlReturnObject.setData("id", data[i].getField("rowkey"));
+ String resValue = "<![CDATA[" + data[i].getField("rowkey") + "]]>";
+ sqlReturnObject.setData("id", resValue);
res[i] = sqlReturnObject;
}
} catch (Exception e) {
diff -r 37271534c60d -r 713673c0d94d
src/org/openbravo/erpCommon/info/ProductMultiple.java
--- a/src/org/openbravo/erpCommon/info/ProductMultiple.java Mon Jun 14
16:18:28 2010 +0200
+++ b/src/org/openbravo/erpCommon/info/ProductMultiple.java Mon Jun 14
18:46:15 2010 +0200
@@ -213,8 +213,8 @@
String strOrderBy = SelectorUtility.buildOrderByClause(strOrderCols,
strOrderDirs);
page = TableSQLData.calcAndGetBackendPage(vars,
"ProjectData.currentPage");
if (vars.getStringParameter("movePage", "").length() > 0) {
- // on movePage action force executing countRows again
- strNewFilter = "";
+ // on movePage action force executing countRows again
+ strNewFilter = "";
}
int oldOffset = offset;
offset = (page * TableSQLData.maxRowsPerGridPage) + offset;
@@ -224,17 +224,18 @@
// or
// first
// load
- String rownum = "0", oraLimit1 = null, oraLimit2 = null,
pgLimit = null;
- if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
- oraLimit1 = String.valueOf(offset +
TableSQLData.maxRowsPerGridPage);
- oraLimit2 = (offset + 1) + " AND " + oraLimit1;
- rownum = "ROWNUM";
- } else {
- pgLimit = TableSQLData.maxRowsPerGridPage + " OFFSET "
+ offset;
- }
- strNumRows = ProductMultipleData.countRows(this,rownum, strKey,
strName, strProductCategory,
+ String rownum = "0", oraLimit1 = null, oraLimit2 = null, pgLimit =
null;
+ if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
+ oraLimit1 = String.valueOf(offset +
TableSQLData.maxRowsPerGridPage);
+ oraLimit2 = (offset + 1) + " AND " + oraLimit1;
+ rownum = "ROWNUM";
+ } else {
+ pgLimit = TableSQLData.maxRowsPerGridPage + " OFFSET " + offset;
+ }
+ strNumRows = ProductMultipleData.countRows(this, rownum, strKey,
strName,
+ strProductCategory,
Utility.getContext(this, vars, "#User_Client",
"ProductMultiple"), Utility
- .getSelectorOrgs(this, vars, strOrg),pgLimit, oraLimit1,
oraLimit2);
+ .getSelectorOrgs(this, vars, strOrg), pgLimit, oraLimit1,
oraLimit2);
vars.setSessionValue("BusinessPartnerInfo.numrows", strNumRows);
} else {
strNumRows = vars.getSessionValue("BusinessPartnerInfo.numrows");
@@ -294,7 +295,8 @@
strRowsData.append(" <title>").append(title).append("</title>\n");
strRowsData.append("
<description>").append(description).append("</description>\n");
strRowsData.append(" </status>\n");
- strRowsData.append(" <rows numRows=\"").append(strNumRows).append("\"
backendPage=\"" + page + "\">\n");
+ strRowsData.append(" <rows numRows=\"").append(strNumRows).append(
+ "\" backendPage=\"" + page + "\">\n");
if (data != null && data.length > 0) {
for (int j = 0; j < data.length; j++) {
strRowsData.append(" <tr>\n");
@@ -354,13 +356,13 @@
String strOrderBy = SelectorUtility.buildOrderByClause(strOrderCols,
strOrderDirs);
String strPage = vars.getSessionValue("ProductMultiple|currentPage",
"0");
int page = Integer.valueOf(strPage);
-
+
int oldMinOffset = minOffset;
int oldMaxOffset = maxOffset;
minOffset = (page * TableSQLData.maxRowsPerGridPage) + minOffset;
maxOffset = (page * TableSQLData.maxRowsPerGridPage) + maxOffset;
log4j.debug("relativeMinOffset: " + oldMinOffset + " absoluteMinOffset:
" + minOffset);
- log4j.debug("relativeMaxOffset: " + oldMaxOffset + " absoluteMaxOffset:
" + maxOffset);
+ log4j.debug("relativeMaxOffset: " + oldMaxOffset + " absoluteMaxOffset:
" + maxOffset);
// Filtering result
if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
String oraLimit1 = String.valueOf(maxOffset);
@@ -382,7 +384,8 @@
res = new FieldProvider[data.length];
for (int i = 0; i < data.length; i++) {
SQLReturnObject sqlReturnObject = new SQLReturnObject();
- sqlReturnObject.setData("id", data[i].getField("rowkey"));
+ String resValue = "<![CDATA[" + data[i].getField("rowkey") + "]]>";
+ sqlReturnObject.setData("id", resValue);
res[i] = sqlReturnObject;
}
} catch (Exception e) {
diff -r 37271534c60d -r 713673c0d94d
src/org/openbravo/erpCommon/info/ProjectMultiple.java
--- a/src/org/openbravo/erpCommon/info/ProjectMultiple.java Mon Jun 14
16:18:28 2010 +0200
+++ b/src/org/openbravo/erpCommon/info/ProjectMultiple.java Mon Jun 14
18:46:15 2010 +0200
@@ -32,7 +32,6 @@
import org.openbravo.base.secureApp.HttpSecureAppServlet;
import org.openbravo.base.secureApp.VariablesSecureApp;
import org.openbravo.data.FieldProvider;
-import org.openbravo.erpCommon.utility.ComboTableData;
import org.openbravo.erpCommon.utility.OBError;
import org.openbravo.erpCommon.utility.SQLReturnObject;
import org.openbravo.erpCommon.utility.TableSQLData;
@@ -86,10 +85,11 @@
String strSortDirs = vars.getInStringParameter("sort_dirs",
directionFilter);
if (action.equalsIgnoreCase("getRows")) { // Asking for data rows
- printGridData(response, vars, strKey, strName, strOrg, strSortCols,
strSortDirs, strOffset, strPageSize, strNewFilter);
+ printGridData(response, vars, strKey, strName, strOrg, strSortCols,
strSortDirs, strOffset,
+ strPageSize, strNewFilter);
} else if (action.equalsIgnoreCase("getIdsInRange")) {
// asking for selected rows
- printGridDataSelectedRows(response, vars, strKey, strName, strOrg,
strSortCols, strSortDirs);
+ printGridDataSelectedRows(response, vars, strKey, strName, strOrg,
strSortCols, strSortDirs);
} else {
throw new ServletException("Unimplemented action in DATA request: " +
action);
}
@@ -170,8 +170,8 @@
}
private void printGridData(HttpServletResponse response, VariablesSecureApp
vars, String strKey,
- String strName, String strOrg, String strOrderCols, String strOrderDirs,
String strOffset, String strPageSize, String strNewFilter)
- throws IOException, ServletException {
+ String strName, String strOrg, String strOrderCols, String strOrderDirs,
String strOffset,
+ String strPageSize, String strNewFilter) throws IOException,
ServletException {
if (log4j.isDebugEnabled())
log4j.debug("Output: print page rows");
int page = 0;
@@ -190,8 +190,8 @@
String strOrderBy = SelectorUtility.buildOrderByClause(strOrderCols,
strOrderDirs);
page = TableSQLData.calcAndGetBackendPage(vars,
"BusinessPartnerData.currentPage");
if (vars.getStringParameter("movePage", "").length() > 0) {
- // on movePage action force executing countRows again
- strNewFilter = "";
+ // on movePage action force executing countRows again
+ strNewFilter = "";
}
int oldOffset = offset;
offset = (page * TableSQLData.maxRowsPerGridPage) + offset;
@@ -201,16 +201,17 @@
// or
// first
// load
- String rownum = "0", oraLimit1 = null, oraLimit2 = null,
pgLimit = null;
- if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
- oraLimit1 = String.valueOf(offset +
TableSQLData.maxRowsPerGridPage);
- oraLimit2 = (offset + 1) + " AND " + oraLimit1;
- rownum = "ROWNUM";
- } else {
- pgLimit = TableSQLData.maxRowsPerGridPage + " OFFSET "
+ offset;
- }
- strNumRows = ProjectMultipleData.countRows(this,rownum, strKey,
strName, Utility.getContext(this, vars, "#User_Client", "ProjectMultiple"),
Utility
- .getSelectorOrgs(this, vars, strOrg),pgLimit, oraLimit1,
oraLimit2);
+ String rownum = "0", oraLimit1 = null, oraLimit2 = null, pgLimit =
null;
+ if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
+ oraLimit1 = String.valueOf(offset +
TableSQLData.maxRowsPerGridPage);
+ oraLimit2 = (offset + 1) + " AND " + oraLimit1;
+ rownum = "ROWNUM";
+ } else {
+ pgLimit = TableSQLData.maxRowsPerGridPage + " OFFSET " + offset;
+ }
+ strNumRows = ProjectMultipleData.countRows(this, rownum, strKey,
strName, Utility
+ .getContext(this, vars, "#User_Client", "ProjectMultiple"),
Utility.getSelectorOrgs(
+ this, vars, strOrg), pgLimit, oraLimit1, oraLimit2);
vars.setSessionValue("ProjectInfo.numrows", strNumRows);
} else {
strNumRows = vars.getSessionValue("ProjectInfo.numrows");
@@ -220,12 +221,14 @@
if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
String oraLimit1 = String.valueOf(offset + pageSize);
String oraLimit2 = (offset + 1) + " AND " + oraLimit1;
- data = ProjectMultipleData.select(this, "ROWNUM", strKey, strName,
Utility.getContext(this, vars, "#User_Client", "ProjectMultiple"), Utility
- .getSelectorOrgs(this, vars, strOrg), strOrderBy, "",
oraLimit1, oraLimit2);
+ data = ProjectMultipleData.select(this, "ROWNUM", strKey, strName,
Utility.getContext(
+ this, vars, "#User_Client", "ProjectMultiple"),
Utility.getSelectorOrgs(this, vars,
+ strOrg), strOrderBy, "", oraLimit1, oraLimit2);
} else {
String pgLimit = pageSize + " OFFSET " + offset;
- data = ProjectMultipleData.select(this, "1", strKey, strName,
Utility.getContext(this, vars, "#User_Client", "ProjectMultiple"),
Utility.getSelectorOrgs(
- this, vars, strOrg), strOrderBy, pgLimit, "", "");
+ data = ProjectMultipleData.select(this, "1", strKey, strName,
Utility.getContext(this,
+ vars, "#User_Client", "ProjectMultiple"),
+ Utility.getSelectorOrgs(this, vars, strOrg), strOrderBy,
pgLimit, "", "");
}
} catch (ServletException e) {
log4j.error("Error in print page data: " + e);
@@ -268,7 +271,8 @@
strRowsData.append(" <title>").append(title).append("</title>\n");
strRowsData.append("
<description>").append(description).append("</description>\n");
strRowsData.append(" </status>\n");
- strRowsData.append(" <rows numRows=\"").append(strNumRows).append("\"
backendPage=\"" + page + "\">\n");
+ strRowsData.append(" <rows numRows=\"").append(strNumRows).append(
+ "\" backendPage=\"" + page + "\">\n");
if (data != null && data.length > 0) {
for (int j = 0; j < data.length; j++) {
strRowsData.append(" <tr>\n");
@@ -313,7 +317,8 @@
*
*/
private void printGridDataSelectedRows(HttpServletResponse response,
VariablesSecureApp vars,
- String strKey, String strName, String strOrg, String strOrderCols,
String strOrderDirs) throws IOException, ServletException {
+ String strKey, String strName, String strOrg, String strOrderCols,
String strOrderDirs)
+ throws IOException, ServletException {
int minOffset = new
Integer(vars.getStringParameter("minOffset")).intValue();
int maxOffset = new
Integer(vars.getStringParameter("maxOffset")).intValue();
log4j.debug("Output: print page ids, minOffset: " + minOffset + ",
maxOffset: " + maxOffset);
@@ -327,25 +332,27 @@
String strOrderBy = SelectorUtility.buildOrderByClause(strOrderCols,
strOrderDirs);
String strPage = vars.getSessionValue("ProductMultiple|currentPage",
"0");
int page = Integer.valueOf(strPage);
-
+
int oldMinOffset = minOffset;
int oldMaxOffset = maxOffset;
minOffset = (page * TableSQLData.maxRowsPerGridPage) + minOffset;
maxOffset = (page * TableSQLData.maxRowsPerGridPage) + maxOffset;
log4j.debug("relativeMinOffset: " + oldMinOffset + " absoluteMinOffset:
" + minOffset);
- log4j.debug("relativeMaxOffset: " + oldMaxOffset + " absoluteMaxOffset:
" + maxOffset);
+ log4j.debug("relativeMaxOffset: " + oldMaxOffset + " absoluteMaxOffset:
" + maxOffset);
// Filtering result
if (this.myPool.getRDBMS().equalsIgnoreCase("ORACLE")) {
String oraLimit1 = String.valueOf(maxOffset);
String oraLimit2 = (minOffset + 1) + " AND " + oraLimit1;
- data = ProjectMultipleData.select(this, "ROWNUM", strKey, strName,
Utility.getContext(this, vars, "#User_Client", "ProjectMultiple"), Utility
- .getSelectorOrgs(this, vars, strOrg), strOrderBy, "",
oraLimit1, oraLimit2);
+ data = ProjectMultipleData.select(this, "ROWNUM", strKey, strName,
Utility.getContext(this,
+ vars, "#User_Client", "ProjectMultiple"),
Utility.getSelectorOrgs(this, vars, strOrg),
+ strOrderBy, "", oraLimit1, oraLimit2);
} else {
// minOffset and maxOffset are zero based so pageSize is difference +1
int pageSize = maxOffset - minOffset + 1;
String pgLimit = pageSize + " OFFSET " + minOffset;
- data = ProjectMultipleData.select(this, "1", strKey, strName,
Utility.getContext(this, vars, "#User_Client", "ProjectMultiple"),
Utility.getSelectorOrgs(
------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
lucky parental unit. See the prize list and enter to win:
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits