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>