details: https://code.openbravo.com/erp/devel/pi/rev/bd2758c81cc4 changeset: 13776:bd2758c81cc4 user: Martin Taal <martin.taal <at> openbravo.com> date: Thu Sep 15 12:57:40 2011 +0200 summary: Made Advanced QueryBuilder handle or/and expressions
details: https://code.openbravo.com/erp/devel/pi/rev/dcf84616ed83 changeset: 13777:dcf84616ed83 user: Martin Taal <martin.taal <at> openbravo.com> date: Thu Sep 15 12:57:56 2011 +0200 summary: solve failing jenkins test diffstat: modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java | 20 ++++++++-- modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js | 12 +++++- 2 files changed, 27 insertions(+), 5 deletions(-) diffs (85 lines): diff -r d250f92b1db1 -r dcf84616ed83 modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java --- a/modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java Wed Sep 14 18:38:01 2011 +0200 +++ b/modules/org.openbravo.service.json/src/org/openbravo/service/json/AdvancedQueryBuilder.java Thu Sep 15 12:57:56 2011 +0200 @@ -261,12 +261,20 @@ private String parseCriteria(JSONObject jsonCriteria) throws JSONException { // a constructor so the content is an advanced criteria - if (jsonCriteria.has("_constructor")) { + if (jsonCriteria.has("_constructor") || hasOrAndOperator(jsonCriteria)) { return parseAdvancedCriteria(jsonCriteria); } return parseSingleClause(jsonCriteria); } + private boolean hasOrAndOperator(JSONObject jsonCriteria) throws JSONException { + if (!jsonCriteria.has("operator")) { + return false; + } + return OPERATOR_OR.equals(jsonCriteria.get("operator")) + || OPERATOR_AND.equals(jsonCriteria.get("operator")); + } + private String parseSingleClause(JSONObject jsonCriteria) throws JSONException { String operator = jsonCriteria.getString("operator"); @@ -384,7 +392,7 @@ clause = clause + ".id"; } - if (ignoreCase(operator)) { + if (ignoreCase(property, operator)) { clause = "upper(" + clause + ")"; } return clause; @@ -401,7 +409,7 @@ localValue = localValue.toString().substring(0, separatorIndex); } - if (ignoreCase(operator)) { + if (ignoreCase(property, operator)) { localValue = localValue.toString().toUpperCase(); } @@ -606,7 +614,11 @@ throw new IllegalArgumentException("Operator not supported " + operator); } - private boolean ignoreCase(String operator) { + private boolean ignoreCase(Property property, String operator) { + if (property.isPrimitive() + && (property.isNumericType() || property.isDate() || property.isDatetime())) { + return false; + } return operator.equals(OPERATOR_IEQUALS) || operator.equals(OPERATOR_INOTEQUAL) || operator.equals(OPERATOR_CONTAINS) || operator.equals(OPERATOR_ENDSWITH) || operator.equals(OPERATOR_STARTSWITH) || operator.equals(OPERATOR_ICONTAINS) diff -r d250f92b1db1 -r dcf84616ed83 modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js --- a/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js Wed Sep 14 18:38:01 2011 +0200 +++ b/modules/org.openbravo.userinterface.selector/web/org.openbravo.userinterface.selector/js/ob-selector-item.js Thu Sep 15 12:57:56 2011 +0200 @@ -154,7 +154,7 @@ }, setFilterEditorProperties: function(gridFields){ - var selectorWindow = this; + var type, selectorWindow = this; var keyPressFunction = function(item, form, keyName, characterValue){ if (keyName === 'Escape') { selectorWindow.hide(); @@ -172,6 +172,16 @@ var i; for (i = 0; i < gridFields.length; i++) { var gridField = gridFields[i]; + + type = isc.SimpleType.getType(gridField.type); + + if (type.filterEditorType) { + gridField.filterEditorType = type.filterEditorType; + } + + gridField.canFilter = (fld.canFilter === false ? false : true); + gridField.filterOnKeypress = (fld.filterOnKeypress === false ? false : true); + if (!gridField.filterEditorProperties) { gridField.filterEditorProperties = { required: false ------------------------------------------------------------------------------ Doing More with Less: The Next Generation Virtual Desktop What are the key obstacles that have prevented many mid-market businesses from deploying virtual desktops? How do next-generation virtual desktops provide companies an easier-to-deploy, easier-to-manage and more affordable virtual desktop model.http://www.accelacomm.com/jaw/sfnl/114/51426474/ _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
