You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jo...@apache.org on 2007/04/13 21:07:23 UTC

svn commit: r528595 - in /ofbiz/trunk/applications/product: src/org/ofbiz/product/product/ProductSearch.java src/org/ofbiz/product/product/ProductSearchSession.java webapp/catalog/find/advancedsearch.ftl webapp/catalog/find/keywordsearch.ftl

Author: jonesde
Date: Fri Apr 13 12:07:22 2007
New Revision: 528595

URL: http://svn.apache.org/viewvc?view=rev&rev=528595
Log:
A few improvements/fixes for the product search stuff; now processes feature and feature category parameters correctly, and outputs them in search strings correctly as well; also inclues patch from Anil Patel in OFBIZ-886 to add output of supplier constraint in search parameters string

Modified:
    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearch.java
    ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchSession.java
    ofbiz/trunk/applications/product/webapp/catalog/find/advancedsearch.ftl
    ofbiz/trunk/applications/product/webapp/catalog/find/keywordsearch.ftl

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearch.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearch.java?view=diff&rev=528595&r1=528594&r2=528595
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearch.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearch.java Fri Apr 13 12:07:22 2007
@@ -902,6 +902,13 @@
                 ppBuf.append(productFeatureType.getString("description") + ": ");
                 ppBuf.append(productFeature.getString("description"));
             }
+            if (this.exclude != null) {
+                if (Boolean.TRUE.equals(this.exclude)) {
+                    ppBuf.append(" (Exclude)");
+                } else {
+                    ppBuf.append(" (Always Include)");
+                }
+            }
             return (ppBuf.toString());
         }
 
@@ -973,6 +980,13 @@
                 }
                 
             } 
+            if (this.exclude != null) {
+                if (Boolean.TRUE.equals(this.exclude)) {
+                    ppBuf.append(" (Exclude)");
+                } else {
+                    ppBuf.append(" (Always Include)");
+                }
+            }
             return (ppBuf.toString());
         }
 

Modified: ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchSession.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchSession.java?view=diff&rev=528595&r1=528594&r2=528595
==============================================================================
--- ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchSession.java (original)
+++ ofbiz/trunk/applications/product/src/org/ofbiz/product/product/ProductSearchSession.java Fri Apr 13 12:07:22 2007
@@ -513,12 +513,13 @@
         Iterator parameterNameIter = parameters.keySet().iterator();
         while (parameterNameIter.hasNext()) {
             String parameterName = (String) parameterNameIter.next();
-            if (parameterName.startsWith("SEARCH_FEAT")) {
+            if (parameterName.startsWith("SEARCH_FEAT") && !parameterName.startsWith("SEARCH_FEAT_EXC")) {
                 String productFeatureId = (String) parameters.get(parameterName);
                 if (productFeatureId != null && productFeatureId.length() > 0) {
-                    String paramNameExt = parameterName.substring("SEARCH_FEAT".length() + 1);
+                    String paramNameExt = parameterName.substring("SEARCH_FEAT".length());
                     String searchCategoryExc = (String) parameters.get("SEARCH_FEAT_EXC" + paramNameExt);
                     Boolean exclude = UtilValidate.isEmpty(searchCategoryExc) ? null : new Boolean(!"N".equals(searchCategoryExc));
+                    //Debug.logInfo("parameterName=" + parameterName + ", paramNameExt=" + paramNameExt + ", searchCategoryExc=" + searchCategoryExc + ", exclude=" + exclude, module);
                     searchAddConstraint(new ProductSearch.FeatureConstraint(productFeatureId, exclude), session);
                 }
             }
@@ -535,10 +536,10 @@
         Iterator parameterProdFeatureCatNameIter = parameters.keySet().iterator();
         while (parameterProdFeatureCatNameIter.hasNext()) {
             String parameterName = (String) parameterProdFeatureCatNameIter.next();
-            if (parameterName.startsWith("SEARCH_PROD_FEAT_CAT")) {
+            if (parameterName.startsWith("SEARCH_PROD_FEAT_CAT") && !parameterName.startsWith("SEARCH_PROD_FEAT_CAT_EXC")) {
                 String productFeatureCategoryId = (String) parameters.get(parameterName);
                 if (productFeatureCategoryId != null && productFeatureCategoryId.length() > 0) {
-                    String paramNameExt = parameterName.substring("SEARCH_PROD_FEAT_CAT".length() + 1);
+                    String paramNameExt = parameterName.substring("SEARCH_PROD_FEAT_CAT".length());
                     String searchProdFeatureCategoryExc = (String) parameters.get("SEARCH_PROD_FEAT_CAT_EXC" + paramNameExt);
                     Boolean exclude = UtilValidate.isEmpty(searchProdFeatureCategoryExc) ? null : new Boolean(!"N".equals(searchProdFeatureCategoryExc));
                     searchAddConstraint(new ProductSearch.ProductFeatureCategoryConstraint(productFeatureCategoryId, exclude), session);
@@ -728,6 +729,7 @@
         Iterator constraintIter = constraintList.iterator();
         int categoriesCount = 0;
         int featuresCount = 0;
+        int featureCategoriesCount = 0;
         int keywordsCount = 0;
         boolean isNotFirst = false;
         while (constraintIter.hasNext()) {
@@ -768,7 +770,7 @@
                 searchParamString.append(fc.productFeatureId);
                 if (fc.exclude != null) {
                     searchParamString.append("&SEARCH_FEAT_EXC");
-                    searchParamString.append(categoriesCount);
+                    searchParamString.append(featuresCount);
                     searchParamString.append("=");
                     searchParamString.append(fc.exclude.booleanValue() ? "Y" : "N");
                 }
@@ -776,6 +778,24 @@
             } else if (psc instanceof ProductSearch.FeatureSetConstraint) {
                 ProductSearch.FeatureSetConstraint fsc = (ProductSearch.FeatureSetConstraint) psc;
              */   
+            } else if (psc instanceof ProductSearch.ProductFeatureCategoryConstraint) {
+                ProductSearch.ProductFeatureCategoryConstraint pfcc = (ProductSearch.ProductFeatureCategoryConstraint) psc;
+                featureCategoriesCount++;
+                if (isNotFirst) {
+                    searchParamString.append("&");
+                } else {
+                    isNotFirst = true;
+                }
+                searchParamString.append("SEARCH_PROD_FEAT_CAT");
+                searchParamString.append(featureCategoriesCount);
+                searchParamString.append("=");
+                searchParamString.append(pfcc.productFeatureCategoryId);
+                if (pfcc.exclude != null) {
+                    searchParamString.append("&SEARCH_PROD_FEAT_CAT_EXC");
+                    searchParamString.append(featureCategoriesCount);
+                    searchParamString.append("=");
+                    searchParamString.append(pfcc.exclude.booleanValue() ? "Y" : "N");
+                }
             } else if (psc instanceof ProductSearch.KeywordConstraint) {
                 ProductSearch.KeywordConstraint kc = (ProductSearch.KeywordConstraint) psc;
                 keywordsCount++;
@@ -810,6 +830,18 @@
                     if (lprc.lowPrice != null) searchParamString.append(lprc.lowPrice);
                     searchParamString.append("_");
                     if (lprc.highPrice != null) searchParamString.append(lprc.highPrice);
+                }
+            } else if (psc instanceof ProductSearch.SupplierConstraint) {
+                ProductSearch.SupplierConstraint suppc = (ProductSearch.SupplierConstraint) psc;
+                if (suppc.supplierPartyId != null) {
+                    if (isNotFirst) {
+                        searchParamString.append("&");
+                    } else {
+                        isNotFirst = true;
+                    }
+                    searchParamString.append("SEARCH_SUPPLIER_ID");
+                    searchParamString.append("=");
+                    searchParamString.append(suppc.supplierPartyId);
                 }
             }
         }

Modified: ofbiz/trunk/applications/product/webapp/catalog/find/advancedsearch.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/find/advancedsearch.ftl?view=diff&rev=528595&r1=528594&r2=528595
==============================================================================
--- ofbiz/trunk/applications/product/webapp/catalog/find/advancedsearch.ftl (original)
+++ ofbiz/trunk/applications/product/webapp/catalog/find/advancedsearch.ftl Fri Apr 13 12:07:22 2007
@@ -37,7 +37,7 @@
         </tr>
     <#else>
         <tr>
-           <td align="right" valign="middle">
+           <td align="right" valign="top">
              <div class="tabletext">${uiLabelMap.ProductCatalog}:</div>
            </td>
            <td valign="middle">
@@ -56,7 +56,7 @@
            </td>
         </tr>    
         <tr>
-          <td align="right" valign="middle">
+          <td align="right" valign="top">
             <div class="tabletext">${uiLabelMap.ProductCategory}:</div>
           </td>
           <td valign="middle">
@@ -74,7 +74,7 @@
         </tr>
     </#if>
     <tr>
-      <td align="right" valign="middle">
+      <td align="right" valign="top">
         <div class="tabletext">${uiLabelMap.ProductKeywords}:</div>
       </td>
       <td valign="middle">
@@ -86,7 +86,7 @@
       </td>
     </tr>
     <tr>
-      <td align="right" valign="middle">
+      <td align="right" valign="top">
         <div class="tabletext">${uiLabelMap.ProductFeatureCategory} ${uiLabelMap.CommonIds}:</div>
       </td>
       <td valign="middle">
@@ -112,7 +112,7 @@
     </tr>
     
     <tr>
-      <td align="right" valign="middle">
+      <td align="right" valign="top">
         <div class="tabletext">${uiLabelMap.ProductFeatures} ${uiLabelMap.CommonIds}:</div>
       </td>
       <td valign="middle">
@@ -137,7 +137,7 @@
       </td>
     </tr>
     <tr>
-      <td align="right" valign="middle">
+      <td align="right" valign="top">
         <div>${uiLabelMap.ListPriceRange}:</div>
       </td>
       <td valign="middle">
@@ -217,7 +217,7 @@
             </#list>
             <div class="tabletext">${uiLabelMap.CommonSortedBy}: ${searchSortOrderString}</div>
             <div class="tabletext">
-              ${uiLabelMap.ProductNewSearch}<input type="radio" name="clearSearch" value="Y" checked/>
+              ${uiLabelMap.ProductNewSearch}<input type="radio" name="clearSearch" value="Y" checked="checked"/>
               ${uiLabelMap.ProductRefineSearch}<input type="radio" name="clearSearch" value="N"/>
             </div>
         </td>

Modified: ofbiz/trunk/applications/product/webapp/catalog/find/keywordsearch.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/webapp/catalog/find/keywordsearch.ftl?view=diff&rev=528595&r1=528594&r2=528595
==============================================================================
--- ofbiz/trunk/applications/product/webapp/catalog/find/keywordsearch.ftl (original)
+++ ofbiz/trunk/applications/product/webapp/catalog/find/keywordsearch.ftl Fri Apr 13 12:07:22 2007
@@ -188,8 +188,8 @@
 <div class="tabletext">
 <form method="post" action="" name="searchShowParams">
   <#assign searchParams = Static["org.ofbiz.product.product.ProductSearchSession"].makeSearchParametersString(session)>
-  <b>Plain Search Parameters:</b><input type="text" size="60" name="searchParameters" value="${searchParams}" class="inputBox">
-  <b>HTML Search Parameters:</b><input type="text" size="60" name="searchParameters" value="${searchParams?html}" class="inputBox">
+  <div><b>Plain Search Parameters:</b><input type="text" size="60" name="searchParameters" value="${searchParams}" class="inputBox"></div>
+  <div><b>HTML Search Parameters:</b><input type="text" size="60" name="searchParameters" value="${searchParams?html}" class="inputBox"></div>
   <input type="hidden" name="clearSearch" value="N">
 </form>
 </div>