svn commit: r980348 - in /ofbiz/trunk/framework: common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy images/webapp/images/selectall.js

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r980348 - in /ofbiz/trunk/framework: common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy images/webapp/images/selectall.js

jonesde
Author: jonesde
Date: Thu Jul 29 07:53:06 2010
New Revision: 980348

URL: http://svn.apache.org/viewvc?rev=980348&view=rev
Log:
Fixed two bugs with autocomplete functionality: init script in selectall.js was not doing the search/replace properly for ampersands, in the FindAutocompleteOptions.groovy script the andExprs were not really anded together so split into the or and main and lists and assembled the conditions properly, which will fix the conditionFields and the andCondition fields

Modified:
    ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy
    ofbiz/trunk/framework/images/webapp/images/selectall.js

Modified: ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy?rev=980348&r1=980347&r2=980348&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy (original)
+++ ofbiz/trunk/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy Thu Jul 29 07:53:06 2010
@@ -27,16 +27,21 @@ import org.ofbiz.entity.condition.Entity
 import org.ofbiz.entity.condition.EntityFunction;
 import org.ofbiz.entity.condition.EntityOperator;
 
-def andExprs = [];
+def mainAndConds = [];
+def orExprs = [];
 def entityName = context.entityName;
 def searchFields = context.searchFields;
 def displayFields = context.displayFields ?: searchFields;
+
 def searchValueFieldName = parameters.searchValueField;
+def fieldValue = null;
 if (searchValueFieldName) fieldValue = parameters.get(searchValueFieldName);
+
 def searchType = context.searchType;
+def displayFieldsSet = null;
 
 if (searchFields && fieldValue) {
-    searchFieldsList = StringUtil.toList(searchFields);
+    def searchFieldsList = StringUtil.toList(searchFields);
     displayFieldsSet = StringUtil.toSet(displayFields);
     returnField = searchFieldsList[0]; //default to first element of searchFields
     displayFieldsSet.add(returnField); //add it to select fields, in case it is missing
@@ -51,10 +56,10 @@ if (searchFields && fieldValue) {
     }
     searchFieldsList.each { fieldName ->
         if ("EQUALS".equals(searchType)) {
-            andExprs.add(EntityCondition.makeCondition(EntityFieldValue.makeFieldValue(returnField), EntityOperator.EQUALS, searchValue));    
+            orExprs.add(EntityCondition.makeCondition(EntityFieldValue.makeFieldValue(returnField), EntityOperator.EQUALS, searchValue));    
             return;//in case of EQUALS, we search only a match for the returned field
         } else {
-            andExprs.add(EntityCondition.makeCondition(EntityFunction.UPPER(EntityFieldValue.makeFieldValue(fieldName)), EntityOperator.LIKE, searchValue));
+            orExprs.add(EntityCondition.makeCondition(EntityFunction.UPPER(EntityFieldValue.makeFieldValue(fieldName)), EntityOperator.LIKE, searchValue));
         }        
     }
 }
@@ -67,17 +72,19 @@ def conditionFields = context.conditionF
 if (conditionFields) {
     // these fields are for additonal conditions, this is a Map of name/value pairs
     for (conditionFieldEntry in conditionFields.entrySet()) {
-        andExprs.add(EntityCondition.makeCondition(EntityFieldValue.makeFieldValue(conditionFieldEntry.getKey()), EntityOperator.EQUALS, conditionFieldEntry.getValue()));    
+        mainAndConds.add(EntityCondition.makeCondition(EntityFieldValue.makeFieldValue(conditionFieldEntry.getKey()), EntityOperator.EQUALS, conditionFieldEntry.getValue()));    
     }
 }
 
-if (andExprs && entityName && displayFieldsSet) {
-    entityConditionList = EntityCondition.makeCondition(andExprs, EntityOperator.OR);
+if (orExprs && entityName && displayFieldsSet) {
+    mainAndConds.add(EntityCondition.makeCondition(orExprs, EntityOperator.OR));
 
-    //if there is an extra condition, add it to main condition
-    if (context.andCondition && context.andCondition  instanceof EntityCondition) {
-        entityConditionList = EntityCondition.makeCondition(context.andCondition, entityConditionList);
+    //if there is an extra condition, add it to main condition list
+    if (context.andCondition && context.andCondition instanceof EntityCondition) {
+        mainAndConds.add(context.andCondition);
     }
+    
+    def entityConditionList = EntityCondition.makeCondition(mainAndConds, EntityOperator.AND);
 
     Integer autocompleterViewSize = Integer.valueOf(context.autocompleterViewSize ?: 10);
     EntityFindOptions findOptions = new EntityFindOptions();

Modified: ofbiz/trunk/framework/images/webapp/images/selectall.js
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/images/webapp/images/selectall.js?rev=980348&r1=980347&r2=980348&view=diff
==============================================================================
--- ofbiz/trunk/framework/images/webapp/images/selectall.js (original)
+++ ofbiz/trunk/framework/images/webapp/images/selectall.js Thu Jul 29 07:53:06 2010
@@ -353,7 +353,7 @@ function ajaxSubmitFormUpdateAreas(form,
   * form of: areaId, target, target parameters [, areaId, target, target parameters...].
 */
 function ajaxAutoCompleter(areaCsvString, showDescription) {
-    var areaArray = areaCsvString.replace('&','&').split(",");
+    var areaArray = areaCsvString.replace(/&/g,'&').split(",");
     var numAreas = parseInt(areaArray.length / 3);
     for (var i = 0; i < numAreas * 3; i = i + 3) {
         var optionsDivId = areaArray[i] + "_autoCompleterOptions";