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