details:   https://code.openbravo.com/erp/devel/pi/rev/56bae435ed54
changeset: 23948:56bae435ed54
user:      Shankar Balachandran <shankar.balachandran <at> openbravo.com>
date:      Tue Jul 01 17:30:28 2014 +0530
summary:   Related to issue 26696 : Backout changeset 4ccdae6e5989

details:   https://code.openbravo.com/erp/devel/pi/rev/d651b9fbdd85
changeset: 23949:d651b9fbdd85
user:      Shankar Balachandran <shankar.balachandran <at> openbravo.com>
date:      Tue Jul 01 17:30:56 2014 +0530
summary:   Related to issue 26696 : Backout changeset 391fdc807c26

details:   https://code.openbravo.com/erp/devel/pi/rev/27996e18590d
changeset: 23950:27996e18590d
user:      Shankar Balachandran <shankar.balachandran <at> openbravo.com>
date:      Tue Jul 01 17:32:24 2014 +0530
summary:   Related to issue 26696 : Backout changeset e3da458ad088

Backout all changes related to this issue.
The issue will be fixed completely on the server side, instead of having logic 
in both client and server.

diffstat:

 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-fk-filter.js
 |   4 -
 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-grid.js
                        |   4 -
 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/FKComboUIDefinition.java
                  |  22 ++++++-
 
modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java
                           |  22 -------
 
modules/org.openbravo.service.json/src/org/openbravo/service/json/JsonConstants.java
                                    |   1 -
 
modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js
        |  30 ----------
 6 files changed, 19 insertions(+), 64 deletions(-)

diffs (162 lines):

diff -r d3054799cfcc -r 27996e18590d 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-fk-filter.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-fk-filter.js
   Tue Jul 01 13:23:59 2014 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/form/formitem/ob-formitem-fk-filter.js
   Tue Jul 01 17:32:24 2014 +0530
@@ -72,10 +72,6 @@
         if (gridView) {
           requestProperties.params.tabId = gridView.tabId || 
(gridView.sourceView && gridView.sourceView.tabId);
         }
-        //send the display field in request params to add it to the list of 
fields to be fetched.
-        if (this.formItem && this.formItem.displayField) {
-          requestProperties.params.displayField = this.formItem.displayField;
-        }
         delete me.forceReload;
       },
 
diff -r d3054799cfcc -r 27996e18590d 
modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-grid.js
--- 
a/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-grid.js
  Tue Jul 01 13:23:59 2014 +0200
+++ 
b/modules/org.openbravo.client.application/web/org.openbravo.client.application/js/grid/ob-grid.js
  Tue Jul 01 17:32:24 2014 +0530
@@ -597,10 +597,6 @@
           field.filterEditorProperties.criteriaField = field.criteriaField;
         }
 
-        if (field.criteriaDisplayField) {
-          field.filterEditorProperties.criteriaDisplayField = 
field.criteriaDisplayField;
-        }
-
         if (field.editorType && new Function('return isc.' + field.editorType 
+ '.getPrototype().isAbsoluteTime')()) {
           // In the case of an absolute time, the time needs to be converted 
in order to avoid the UTC conversion
           // http://forums.smartclient.com/showthread.php?p=116135
diff -r d3054799cfcc -r 27996e18590d 
modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/FKComboUIDefinition.java
--- 
a/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/FKComboUIDefinition.java
    Tue Jul 01 13:23:59 2014 +0200
+++ 
b/modules/org.openbravo.client.kernel/src/org/openbravo/client/kernel/reference/FKComboUIDefinition.java
    Tue Jul 01 17:32:24 2014 +0530
@@ -25,6 +25,7 @@
 import org.openbravo.client.kernel.KernelUtils;
 import org.openbravo.dal.core.DalUtil;
 import org.openbravo.model.ad.datamodel.Column;
+import org.openbravo.model.ad.datamodel.Table;
 import org.openbravo.model.ad.domain.Reference;
 import org.openbravo.model.ad.domain.ReferencedTable;
 import org.openbravo.model.ad.ui.Field;
@@ -59,9 +60,8 @@
       Reference referenceSearchKey = column.getReferenceSearchKey();
       if (referenceSearchKey != null && 
referenceSearchKey.getADReferencedTableList().size() > 0) {
         ReferencedTable referencedTable = 
referenceSearchKey.getADReferencedTableList().get(0);
-        // set the criteriaDisplayField in all cases, as the display column 
need not be part of
-        // identifier. Refer issue 
https://issues.openbravo.com/view.php?id=26696
-        if (referencedTable != null) {
+        if (referencedTable != null
+            && 
isTableWithMultipleIdentifierColumns(referencedTable.getTable())) {
           Property prop = 
KernelUtils.getInstance().getPropertyFromColumn(column);
           Property referencedProp = 
KernelUtils.getInstance().getPropertyFromColumn(
               referencedTable.getDisplayedColumn());
@@ -76,6 +76,22 @@
     return super.getGridFieldProperties(field) + criteriaField;
   }
 
+  /* Returns true if the identifier of the table is composed of more than one 
column */
+  private Boolean isTableWithMultipleIdentifierColumns(Table relatedTable) {
+    int nIdentifiers = 0;
+    for (Column curColumn : relatedTable.getADColumnList()) {
+      if (curColumn.isIdentifier()) {
+        nIdentifiers += 1;
+        if (nIdentifiers > 1) {
+          // if there is more than one identifier return true
+          return true;
+        }
+      }
+    }
+    // there is only one identifier column
+    return false;
+  }
+
   @Override
   public String getFieldProperties(Field field, boolean getValueFromSession) {
     JSONObject value;
diff -r d3054799cfcc -r 27996e18590d 
modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java
--- 
a/modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java
     Tue Jul 01 13:23:59 2014 +0200
+++ 
b/modules/org.openbravo.service.json/src/org/openbravo/service/json/DefaultJsonDataService.java
     Tue Jul 01 17:32:24 2014 +0530
@@ -84,33 +84,11 @@
    */
   public String fetch(Map<String, String> parameters) {
     try {
-      boolean propertyPresent = false;
       final String entityName = parameters.get(JsonConstants.ENTITYNAME);
       Check.isNotNull(entityName, "The name of the service/entityname should 
not be null");
       Check.isNotNull(parameters, "The parameters should not be null");
 
       String selectedProperties = 
parameters.get(JsonConstants.SELECTEDPROPERTIES_PARAMETER);
-      String displayField = 
parameters.get(JsonConstants.DISPLAYFIELD_PARAMETER);
-      /**
-       * if displayField parameter is present, combo field's filter method is 
being called. in this
-       * case if the field is a table reference, add the displayed column to 
list of columns to be
-       * retrieved. Refer issue https://issues.openbravo.com/view.php?id=26696
-       */
-      if (StringUtils.isNotEmpty(displayField) && 
StringUtils.isNotEmpty(selectedProperties)) {
-        for (String selectedProp : selectedProperties.split(",")) {
-          if (selectedProp.equals(displayField)) {
-            propertyPresent = true;
-            break;
-          }
-        }
-        if (!propertyPresent) {
-          if (StringUtils.isNotEmpty(selectedProperties)) {
-            selectedProperties = selectedProperties.concat("," + displayField);
-          } else {
-            selectedProperties = displayField;
-          }
-        }
-      }
 
       final JSONObject jsonResult = new JSONObject();
       final JSONObject jsonResponse = new JSONObject();
diff -r d3054799cfcc -r 27996e18590d 
modules/org.openbravo.service.json/src/org/openbravo/service/json/JsonConstants.java
--- 
a/modules/org.openbravo.service.json/src/org/openbravo/service/json/JsonConstants.java
      Tue Jul 01 13:23:59 2014 +0200
+++ 
b/modules/org.openbravo.service.json/src/org/openbravo/service/json/JsonConstants.java
      Tue Jul 01 17:32:24 2014 +0530
@@ -69,7 +69,6 @@
   public static final String TEXTMATCH_EXACT = "exact";
   public static final String TEXTMATCH_STARTSWITH = "startsWith";
   public static final String TEXTMATCH_SUBSTRING = "substring";
-  public static final String DISPLAYFIELD_PARAMETER = "displayField";
 
   // if this parameter is passed then if a new object already has an id then
   // that id is set back in the json which is returned together with the
diff -r d3054799cfcc -r 27996e18590d 
modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js
--- 
a/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js
  Tue Jul 01 13:23:59 2014 +0200
+++ 
b/modules/org.openbravo.userinterface.smartclient/web/org.openbravo.userinterface.smartclient/js/ob-smartclient.js
  Tue Jul 01 17:32:24 2014 +0530
@@ -166,36 +166,6 @@
     } else {
       return this._original_shouldUseClientSorting();
     }
-  },
-  _original_filterLocalData: isc.ResultSet.getPrototype().filterLocalData,
-  // when filtering locally use identifier as the fieldName as the grid 
contains only identifier property.
-  // refer issue https://issues.openbravo.com/view.php?id=26696.
-  filterLocalData: function () {
-    var newProperty, i, j, localCriteria, fieldName;
-    if (this.criteria && this.criteria.criteria) {
-      for (i = 0; i < this.criteria.criteria.length; i++) {
-        if (this.criteria.criteria[i].fieldName) {
-          fieldName = this.criteria.criteria[i].fieldName;
-          if (fieldName.indexOf(OB.Constants.FIELDSEPARATOR) !== -1) {
-            newProperty = fieldName.substring(0, 
fieldName.indexOf(OB.Constants.FIELDSEPARATOR) + 1);
-            newProperty = newProperty + OB.Constants.IDENTIFIER;
-            this.criteria.criteria[i].fieldName = newProperty;
-          }
-          //when more than one records are selected, update the subcriteria 
also
-          if (this.criteria.criteria[i].criteria) {
-            localCriteria = this.criteria.criteria[i].criteria;
-            for (j = 0; j < localCriteria.length; j++) {
-              if (localCriteria[j].fieldName && 
localCriteria[j].fieldName.indexOf(OB.Constants.FIELDSEPARATOR) !== -1) {
-                newProperty = localCriteria[j].fieldName.substring(0, 
fieldName.indexOf(OB.Constants.FIELDSEPARATOR) + 1);
-                newProperty = newProperty + OB.Constants.IDENTIFIER;
-                localCriteria[j].fieldName = newProperty;
-              }
-            }
-          }
-        }
-      }
-    }
-    return this._original_filterLocalData();
   }
 });
 

------------------------------------------------------------------------------
Open source business process management suite built on Java and Eclipse
Turn processes into business applications with Bonita BPM Community Edition
Quickly connect people, data, and systems into organized workflows
Winner of BOSSIE, CODIE, OW2 and Gartner awards
http://p.sf.net/sfu/Bonitasoft
_______________________________________________
Openbravo-commits mailing list
Openbravo-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbravo-commits

Reply via email to