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

Reply via email to