Author: jleroux
Date: Sat Oct 26 12:47:04 2013
New Revision: 1535984
URL: http://svn.apache.org/r1535984
Log:
Merges trunk HEAD
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/ (props changed)
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/CategoryDetail.groovy
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/entry/catalog/categorydetail.ftl
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/price/PriceServices.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/servicedef/services_email.xml
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/src/org/ofbiz/common/email/NotificationServices.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/dtd/site-conf.xsd
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/OfbizUrlBuilder.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/website/WebSiteProperties.java
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/cart/microcart.ftl
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/shoppinglist/editShoppingList.ftl
Propchange: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/
------------------------------------------------------------------------------
Merged /ofbiz/trunk:r1535431-1535982
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/CategoryDetail.groovy
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/CategoryDetail.groovy?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/CategoryDetail.groovy
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/CategoryDetail.groovy
Sat Oct 26 12:47:04 2013
@@ -39,7 +39,7 @@ viewIndex = parameters.VIEW_INDEX;
currentCatalogId = CatalogWorker.getCurrentCatalogId(request);
// set the default view size
-defaultViewSize = request.getAttribute("defaultViewSize") ?: 20;
+defaultViewSize = request.getAttribute("defaultViewSize") ?:
UtilProperties.getPropertyValue("widget", "widget.form.defaultViewSize", "20");
context.defaultViewSize = defaultViewSize;
// set the limit view
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/WEB-INF/actions/entry/catalog/ProductDetail.groovy
Sat Oct 26 12:47:04 2013
@@ -539,10 +539,10 @@ if (product) {
BigDecimal calculatedPrice =
(BigDecimal)virtualPriceMap.get("price");
// Get the minimum quantity for variants if
MINIMUM_ORDER_PRICE is set for variants.
virtualVariantPriceList.add(virtualPriceMap);
- variantPriceJS.append(" if (sku == \"" +
virtual.productId + "\") return \"" +
UtilFormatOut.formatCurrency(variantPriceMap.basePrice, currencyUomId, locale,
10) + "\"; ");
+ variantPriceJS.append(" if (sku == \"" +
virtual.productId + "\") return \"" +
UtilFormatOut.formatCurrency(virtualPriceMap.basePrice, currencyUomId, locale,
10) + "\"; ");
} else {
virtualPriceMap =
dispatcher.runSync("calculatePurchasePrice", priceContext);
- variantPriceJS.append(" if (sku == \"" +
virtual.productId + "\") return \"" +
UtilFormatOut.formatCurrency(variantPriceMap.price, currencyUomId, locale, 10)
+ "\"; ");
+ variantPriceJS.append(" if (sku == \"" +
virtual.productId + "\") return \"" +
UtilFormatOut.formatCurrency(virtualPriceMap.price, currencyUomId, locale, 10)
+ "\"; ");
}
}
variantPriceJS.append(" } ");
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/entry/catalog/categorydetail.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/entry/catalog/categorydetail.ftl?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/entry/catalog/categorydetail.ftl
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/order/webapp/ordermgr/entry/catalog/categorydetail.ftl
Sat Oct 26 12:47:04 2013
@@ -44,29 +44,22 @@ under the License.
<#assign viewIndexMax = Static["java.lang.Math"].ceil((listSize -
1)?double / viewSize?double)>
<#if (viewIndexMax?int > 0)>
<div class="product-prevnext">
- <#-- Start Page Select Drop-Down -->
- <#-- select name="pageSelect"
onchange="window.location=this[this.selectedIndex].value;">
- <option value="#">${uiLabelMap.CommonPage} ${viewIndex?int}
${uiLabelMap.CommonOf} ${viewIndexMax + 1}</option>
- <#list 0..viewIndexMax as curViewNum>
- <option value="<@ofbizCatalogAltUrl
productCategoryId=productCategoryId viewSize=viewSize viewIndex=(curViewNum?int
+ 1)/>">${uiLabelMap.CommonGotoPage} ${curViewNum + 1}</option>
- </#list>
- </select -->
<select name="pageSelect"
onchange="callDocumentByPaginate(this[this.selectedIndex].value);">
- <option value="#">${uiLabelMap.CommonPage} ${viewIndex?int +
1} ${uiLabelMap.CommonOf} ${viewIndexMax + 1}</option>
- <#list 0..viewIndexMax as curViewNum>
- <option
value="${productCategoryId}~${viewSize}~${curViewNum?int}">${uiLabelMap.CommonGotoPage}
${curViewNum + 1}</option>
- </#list>
+ <option value="#">${uiLabelMap.CommonPage} ${viewIndex?int +
1} ${uiLabelMap.CommonOf} ${viewIndexMax}</option>
+ <#if (viewIndex?int > 1)>
+ <#list 0..viewIndexMax as curViewNum>
+ <option
value="${productCategoryId}~${viewSize}~${curViewNum?int}">${uiLabelMap.CommonGotoPage}
${curViewNum + 1}</option>
+ </#list>
+ </#if>
</select>
<#-- End Page Select Drop-Down -->
<#if (viewIndex?int > 0)>
- <#-- a
href="<@ofbizUrl>category/~category_id=${productCategoryId}/~VIEW_SIZE=${viewSize}/~VIEW_INDEX=${viewIndex?int
- 1}</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonPrevious}</a --> |
<a href="javascript: void(0);"
onclick="callDocumentByPaginate('${productCategoryId}~${viewSize}~${viewIndex?int
- 1}');" class="buttontext">${uiLabelMap.CommonPrevious}</a> |
</#if>
<#if ((listSize?int - viewSize?int) > 0)>
<span>${lowIndex} - ${highIndex} ${uiLabelMap.CommonOf}
${listSize}</span>
</#if>
<#if highIndex?int < listSize?int>
- <#-- | <a
href="<@ofbizUrl>category/~category_id=${productCategoryId}/~VIEW_SIZE=${viewSize}/~VIEW_INDEX=${viewIndex?int
+ 1}</@ofbizUrl>" class="buttontext">${uiLabelMap.CommonNext}</a -->
| <a href="javascript: void(0);"
onclick="callDocumentByPaginate('${productCategoryId}~${viewSize}~${viewIndex?int
+ 1}');" class="buttontext">${uiLabelMap.CommonNext}</a>
</#if>
</div>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/price/PriceServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/price/PriceServices.java?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/price/PriceServices.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/applications/product/src/org/ofbiz/product/price/PriceServices.java
Sat Oct 26 12:47:04 2013
@@ -268,7 +268,6 @@ public class PriceServices {
List<GenericValue> variantAssocList =
EntityUtil.filterByDate(delegator.findByAnd("ProductAssoc",
UtilMisc.toMap("productId", product.get("productId"), "productAssocTypeId",
"PRODUCT_VARIANT"), UtilMisc.toList("-fromDate"), true));
BigDecimal minDefaultPrice = null;
List<GenericValue> variantProductPrices = null;
- String variantProductId = null;
for (GenericValue variantAssoc: variantAssocList) {
String curVariantProductId =
variantAssoc.getString("productIdTo");
List<GenericValue> curVariantPriceList =
EntityUtil.filterByDate(delegator.findByAnd("ProductPrice",
UtilMisc.toMap("productId", curVariantProductId), UtilMisc.toList("-fromDate"),
true), nowTimestamp);
@@ -284,7 +283,6 @@ public class PriceServices {
if (salesDiscontinuationDate == null ||
salesDiscontinuationDate.after(nowTimestamp)) {
minDefaultPrice = curDefaultPrice;
variantProductPrices =
curVariantPriceList;
- variantProductId = curVariantProductId;
// Debug.logInfo("Found new lowest
price " + minDefaultPrice + " for variant with ID " + variantProductId, module);
}
}
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/servicedef/services_email.xml
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/servicedef/services_email.xml?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/servicedef/services_email.xml
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/servicedef/services_email.xml
Sat Oct 26 12:47:04 2013
@@ -110,6 +110,7 @@ under the License.
<attribute name="xslfoAttachScreenLocationList" type="List" mode="IN"
optional="true"/>
<attribute name="attachmentNameList" type="List" mode="IN"
optional="true"/>
<attribute name="bodyParameters" type="Map" mode="IN" optional="true"/>
+ <!-- FIXME: webSiteId should not be optional, async service can't
construct valid URLs without it -->
<attribute name="webSiteId" type="String" mode="IN" optional="true"/>
<attribute name="subject" type="String" mode="OUT" optional="true"/>
<attribute name="body" type="String" mode="OUT" optional="false"/>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/src/org/ofbiz/common/email/NotificationServices.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/src/org/ofbiz/common/email/NotificationServices.java?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/src/org/ofbiz/common/email/NotificationServices.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/src/org/ofbiz/common/email/NotificationServices.java
Sat Oct 26 12:47:04 2013
@@ -253,7 +253,10 @@ public class NotificationServices {
// If the baseUrl was not specified we can do a best effort instead
if (!context.containsKey("baseUrl")) {
try {
- WebappInfo webAppInfo =
WebAppUtil.getWebappInfoFromWebsiteId(webSiteId);
+ WebappInfo webAppInfo = null;
+ if (webSiteId != null) {
+ webAppInfo =
WebAppUtil.getWebappInfoFromWebsiteId(webSiteId);
+ }
OfbizUrlBuilder builder = OfbizUrlBuilder.from(webAppInfo,
delegator);
StringBuilder newURL = new StringBuilder();
builder.buildHostPart(newURL, "", false);
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/common/webcommon/WEB-INF/actions/includes/FindAutocompleteOptions.groovy
Sat Oct 26 12:47:04 2013
@@ -76,7 +76,7 @@ if (searchFields && fieldValue) {
}
/* the following is part of an attempt to handle additional parameters that
are passed in from other form fields at run-time,
- * but that is not supported by the scrip.aculo.us Ajax.Autocompleter, but
this is still useful to pass parameters from the
+ * but that is not supported by the Jquery Autocompleter, but this is still
useful to pass parameters from the
* lookup screen definition:
*/
def conditionFields = context.conditionFields;
@@ -102,9 +102,9 @@ if (orExprs && entityName && displayFiel
if (context.andCondition && context.andCondition instanceof
EntityCondition) {
mainAndConds.add(context.andCondition);
}
-
- def entityConditionList = EntityCondition.makeCondition(mainAndConds,
EntityOperator.AND);
-
+
+ def entityConditionList = EntityCondition.makeCondition(mainAndConds,
EntityOperator.AND);
+
String viewSizeStr = context.autocompleterViewSize;
if (viewSizeStr == null) {
viewSizeStr = UtilProperties.getPropertyValue("widget",
"widget.autocompleter.defaultViewSize");
@@ -113,7 +113,7 @@ if (orExprs && entityName && displayFiel
EntityFindOptions findOptions = new EntityFindOptions();
findOptions.setMaxRows(autocompleterViewSize);
findOptions.setDistinct(searchDistinct);
-
+
autocompleteOptions = delegator.findList(entityName, entityConditionList,
displayFieldsSet, StringUtil.toList(displayFields), findOptions, false);
if (autocompleteOptions) {
context.autocompleteOptions = autocompleteOptions;
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/dtd/site-conf.xsd
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/dtd/site-conf.xsd?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/dtd/site-conf.xsd
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/dtd/site-conf.xsd
Sat Oct 26 12:47:04 2013
@@ -59,7 +59,17 @@ under the License.
<xs:element name="description" type="xs:string"/>
<xs:element name="owner" type="xs:string"/>
<xs:element name="errorpage" type="xs:string"/>
- <xs:element name="status-code" type="xs:string"/>
+ <xs:element name="status-code" type="xs:string">
+ <xs:annotation>
+ <xs:documentation>
+ A redirection HTTP status-code
+ If set it will override, for this whole controller, the
default status-code sets in requestHandler.properties
+
+ Most possible redirection status-codes are 301, 303 and 307.
+ 302 (the Java default) is not recommended for SEO reasons, 301
is preferred.
+ </xs:documentation>
+ </xs:annotation>
+ </xs:element>
<xs:element name="handler">
<xs:annotation>
<xs:documentation>
@@ -648,11 +658,11 @@ under the License.
<xs:annotation>
<xs:documentation>
A redirection HTTP status-code
- If set it will override (cascading) the default
status-code sets in requestHandler.properties
- and the possible status-code sets at the controller level
(inclusive included controllers)
+ If set it will override, for this request, the default
status-code sets in requestHandler.properties
+ and the possible status-code sets at the controller level
(included controllers inclusive)
Most possible redirection status-codes are 301, 303 and
307.
- 302 (the Java default) is not recommended for SEO reasons.
+ 302 (the Java default) is not recommended for SEO reasons,
301 is preferred.
</xs:documentation>
</xs:annotation>
</xs:attribute>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/OfbizUrlBuilder.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/OfbizUrlBuilder.java?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/OfbizUrlBuilder.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/OfbizUrlBuilder.java
Sat Oct 26 12:47:04 2013
@@ -25,7 +25,6 @@ import javax.servlet.http.HttpServletReq
import org.ofbiz.base.component.ComponentConfig.WebappInfo;
import org.ofbiz.base.util.Assert;
-import org.ofbiz.base.util.Debug;
import org.ofbiz.base.util.UtilMisc;
import org.ofbiz.entity.Delegator;
import org.ofbiz.entity.GenericEntityException;
@@ -45,8 +44,7 @@ public final class OfbizUrlBuilder {
public static final String module = OfbizUrlBuilder.class.getName();
/**
- * Returns an <code>OfbizUrlBuilder</code> instance. The instance can be
reused in
- * the supplied request.
+ * Returns an <code>OfbizUrlBuilder</code> instance.
*
* @param request
* @throws GenericEntityException
@@ -54,22 +52,25 @@ public final class OfbizUrlBuilder {
*/
public static OfbizUrlBuilder from(HttpServletRequest request) throws
GenericEntityException, WebAppConfigurationException {
Assert.notNull("request", request);
- WebSiteProperties webSiteProps = (WebSiteProperties)
request.getAttribute("_WEBSITE_PROPS_");
- if (webSiteProps == null) {
- webSiteProps = WebSiteProperties.from(request);
- request.setAttribute("_WEBSITE_PROPS_", webSiteProps);
+ OfbizUrlBuilder builder = (OfbizUrlBuilder)
request.getAttribute("_OFBIZ_URL_BUILDER_");
+ if (builder == null) {
+ WebSiteProperties webSiteProps = WebSiteProperties.from(request);
+ URL url =
ConfigXMLReader.getControllerConfigURL(request.getServletContext());
+ ControllerConfig config = ConfigXMLReader.getControllerConfig(url);
+ String servletPath = (String)
request.getAttribute("_CONTROL_PATH_");
+ builder = new OfbizUrlBuilder(config, webSiteProps, servletPath);
+ request.setAttribute("_OFBIZ_URL_BUILDER_", builder);
}
- URL url =
ConfigXMLReader.getControllerConfigURL(request.getServletContext());
- ControllerConfig config = ConfigXMLReader.getControllerConfig(url);
- String servletPath = (String) request.getAttribute("_CONTROL_PATH_");
- return new OfbizUrlBuilder(config, webSiteProps, servletPath);
+ return builder;
}
/**
* Returns an <code>OfbizUrlBuilder</code> instance. Use this method when
you
* don't have a <code>HttpServletRequest</code> object - like in scheduled
jobs.
*
- * @param webAppInfo
+ * @param webAppInfo Optional - if <code>null</code>, the builder can only
build the host part,
+ * and that will be based only on the settings in
<code>url.properties</code> (the WebSite
+ * entity will be ignored).
* @param delegator
* @throws WebAppConfigurationException
* @throws IOException
@@ -77,20 +78,24 @@ public final class OfbizUrlBuilder {
* @throws GenericEntityException
*/
public static OfbizUrlBuilder from(WebappInfo webAppInfo, Delegator
delegator) throws WebAppConfigurationException, IOException, SAXException,
GenericEntityException {
- Assert.notNull("webAppInfo", webAppInfo, "delegator", delegator);
WebSiteProperties webSiteProps = null;
- String webSiteId = WebAppUtil.getWebSiteId(webAppInfo);
- if (webSiteId != null) {
- GenericValue webSiteValue = delegator.findOne("WebSite",
UtilMisc.toMap("webSiteId", webSiteId), true);
- if (webSiteValue != null) {
- webSiteProps = WebSiteProperties.from(webSiteValue);
+ ControllerConfig config = null;
+ String servletPath = null;
+ if (webAppInfo != null) {
+ Assert.notNull("delegator", delegator);
+ String webSiteId = WebAppUtil.getWebSiteId(webAppInfo);
+ if (webSiteId != null) {
+ GenericValue webSiteValue = delegator.findOne("WebSite",
UtilMisc.toMap("webSiteId", webSiteId), true);
+ if (webSiteValue != null) {
+ webSiteProps = WebSiteProperties.from(webSiteValue);
+ }
}
+ config = ConfigXMLReader.getControllerConfig(webAppInfo);
+ servletPath = WebAppUtil.getControlServletPath(webAppInfo);
}
if (webSiteProps == null) {
webSiteProps = WebSiteProperties.defaults();
}
- ControllerConfig config =
ConfigXMLReader.getControllerConfig(webAppInfo);
- String servletPath = WebAppUtil.getControlServletPath(webAppInfo);
return new OfbizUrlBuilder(config, webSiteProps, servletPath);
}
@@ -140,7 +145,10 @@ public final class OfbizUrlBuilder {
if (queryIndex != -1) {
requestMapUri = requestMapUri.substring(0, queryIndex);
}
- RequestMap requestMap = config.getRequestMapMap().get(requestMapUri);
+ RequestMap requestMap = null;
+ if (config != null) {
+ requestMap = config.getRequestMapMap().get(requestMapUri);
+ }
if (requestMap != null) {
makeSecure = requestMap.securityHttps;
}
@@ -178,6 +186,9 @@ public final class OfbizUrlBuilder {
* @throws IOException
*/
public void buildPathPart(Appendable buffer, String url) throws
WebAppConfigurationException, IOException {
+ if (servletPath == null) {
+ throw new IllegalStateException("Servlet path is unknown");
+ }
buffer.append(servletPath);
if (!url.startsWith("/")) {
buffer.append("/");
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/control/RequestHandler.java
Sat Oct 26 12:47:04 2013
@@ -20,6 +20,7 @@ package org.ofbiz.webapp.control;
import static org.ofbiz.base.util.UtilGenerics.checkMap;
+import java.io.IOException;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.net.URL;
@@ -49,6 +50,7 @@ import org.ofbiz.base.util.UtilValidate;
import org.ofbiz.entity.Delegator;
import org.ofbiz.entity.GenericEntityException;
import org.ofbiz.entity.GenericValue;
+import org.ofbiz.webapp.OfbizUrlBuilder;
import org.ofbiz.webapp.event.EventFactory;
import org.ofbiz.webapp.event.EventHandler;
import org.ofbiz.webapp.event.EventHandlerException;
@@ -1125,16 +1127,13 @@ public class RequestHandler {
}
public String makeLink(HttpServletRequest request, HttpServletResponse
response, String url, boolean fullPath, boolean secure, boolean encode) {
- WebSiteProperties webSiteProps = (WebSiteProperties)
request.getAttribute("_WEBSITE_PROPS_");
- if (webSiteProps == null) {
- try {
- webSiteProps = WebSiteProperties.from(request);
- request.setAttribute("_WEBSITE_PROPS_", webSiteProps);
- } catch (GenericEntityException e) {
- // If the entity engine is throwing exceptions, then there is
no point in continuing.
- Debug.logError(e, "Exception thrown while getting web site
properties: ", module);
- return null;
- }
+ WebSiteProperties webSiteProps = null;
+ try {
+ webSiteProps = WebSiteProperties.from(request);
+ } catch (GenericEntityException e) {
+ // If the entity engine is throwing exceptions, then there is no
point in continuing.
+ Debug.logError(e, "Exception thrown while getting web site
properties: ", module);
+ return null;
}
String requestUri = RequestHandler.getRequestUri(url);
ConfigXMLReader.RequestMap requestMap = null;
@@ -1147,35 +1146,36 @@ public class RequestHandler {
return null;
}
}
- StringBuilder newURL = new StringBuilder();
boolean didFullSecure = false;
boolean didFullStandard = false;
if (requestMap != null && (webSiteProps.getEnableHttps() || fullPath
|| secure)) {
if (Debug.verboseOn()) Debug.logVerbose("In makeLink requestUri="
+ requestUri, module);
if (secure || (webSiteProps.getEnableHttps() &&
requestMap.securityHttps && !request.isSecure())) {
- String server = webSiteProps.getHttpsHost();
- if (server.isEmpty()) {
- server = request.getServerName();
- }
- newURL.append("https://");
- newURL.append(server);
- if (!webSiteProps.getHttpsPort().isEmpty()) {
- newURL.append(":").append(webSiteProps.getHttpsPort());
- }
didFullSecure = true;
} else if (fullPath || (webSiteProps.getEnableHttps() &&
!requestMap.securityHttps && request.isSecure())) {
- String server = webSiteProps.getHttpHost();
- if (server.isEmpty()) {
- server = request.getServerName();
- }
- newURL.append("http://");
- newURL.append(server);
- if (!webSiteProps.getHttpPort().isEmpty()) {
- newURL.append(":").append(webSiteProps.getHttpPort());
- }
didFullStandard = true;
}
}
+ StringBuilder newURL = new StringBuilder(250);
+ if (didFullSecure || didFullStandard) {
+ // Build the scheme and host part
+ try {
+ OfbizUrlBuilder builder = OfbizUrlBuilder.from(request);
+ builder.buildHostPart(newURL, url, didFullSecure);
+ } catch (GenericEntityException e) {
+ // If the entity engine is throwing exceptions, then there is
no point in continuing.
+ Debug.logError(e, "Exception thrown while getting web site
properties: ", module);
+ return null;
+ } catch (WebAppConfigurationException e) {
+ // If we can't read the controller.xml file, then there is no
point in continuing.
+ Debug.logError(e, "Exception thrown while parsing
controller.xml file: ", module);
+ return null;
+ } catch (IOException e) {
+ // If we can't write to StringBuilder, then there is no point
in continuing.
+ Debug.logError(e, "Exception thrown while writing to
StringBuilder: ", module);
+ return null;
+ }
+ }
// create the path to the control servlet
String controlPath = (String) request.getAttribute("_CONTROL_PATH_");
newURL.append(controlPath);
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/website/WebSiteProperties.java
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/website/WebSiteProperties.java?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/website/WebSiteProperties.java
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/webapp/src/org/ofbiz/webapp/website/WebSiteProperties.java
Sat Oct 26 12:47:04 2013
@@ -53,17 +53,24 @@ public final class WebSiteProperties {
*/
public static WebSiteProperties from(HttpServletRequest request) throws
GenericEntityException {
Assert.notNull("request", request);
- Delegator delegator = (Delegator) request.getAttribute("delegator");
- if (delegator != null) {
- String webSiteId = WebSiteWorker.getWebSiteId(request);
- if (webSiteId != null) {
- GenericValue webSiteValue = delegator.findOne("WebSite",
UtilMisc.toMap("webSiteId", webSiteId), true);
- if (webSiteValue != null) {
- return from(webSiteValue);
+ WebSiteProperties webSiteProps = (WebSiteProperties)
request.getAttribute("_WEBSITE_PROPS_");
+ if (webSiteProps == null) {
+ Delegator delegator = (Delegator)
request.getAttribute("delegator");
+ if (delegator != null) {
+ String webSiteId = WebSiteWorker.getWebSiteId(request);
+ if (webSiteId != null) {
+ GenericValue webSiteValue = delegator.findOne("WebSite",
UtilMisc.toMap("webSiteId", webSiteId), true);
+ if (webSiteValue != null) {
+ webSiteProps = from(webSiteValue);
+ }
}
}
- }
- return new WebSiteProperties();
+ if (webSiteProps == null) {
+ webSiteProps = new WebSiteProperties();
+ }
+ request.setAttribute("_WEBSITE_PROPS_", webSiteProps);
+ }
+ return webSiteProps;
}
/**
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/cart/microcart.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/cart/microcart.ftl?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/cart/microcart.ftl
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/cart/microcart.ftl
Sat Oct 26 12:47:04 2013
@@ -37,7 +37,11 @@ under the License.
<li><a
href="<@ofbizUrl>view/showcart</@ofbizUrl>">[${uiLabelMap.OrderViewCart}]</a></li>
<#if (shoppingCartSize > 0)>
<#if !initialLocaleComplete?exists || initialLocaleComplete?length
== 2 >
- <#assign initialLocaleComplete = "en_US">
+ <#if initialLocaleComplete?exists &&
initialLocaleComplete?length == 2 && initialLocaleComplete == "fr">
+ <#assign initialLocaleComplete = "fr_FR"><#-- same idea
can be used with other default locale -->
+ <#else>
+ <#assign initialLocaleComplete = "en_US">
+ </#if>
</#if>
<li id="quickCheckoutEnabled"><a
href="<@ofbizUrl>quickcheckout</@ofbizUrl>">[${uiLabelMap.OrderCheckoutQuick}]</a></li>
<li id="quickCheckoutDisabled" style="display:none"
class="disabled">[${uiLabelMap.OrderCheckoutQuick}]</li>
Modified:
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/shoppinglist/editShoppingList.ftl
URL:
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/shoppinglist/editShoppingList.ftl?rev=1535984&r1=1535983&r2=1535984&view=diff
==============================================================================
---
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/shoppinglist/editShoppingList.ftl
(original)
+++
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/shoppinglist/editShoppingList.ftl
Sat Oct 26 12:47:04 2013
@@ -54,31 +54,31 @@ under the License.
</script>
<br />
<#macro paginationControls>
- <#assign viewIndexMax = Static["java.lang.Math"].ceil((listSize)?double /
viewSize?double)>
- <#if (viewIndexMax?int >= 1)>
- <div class="product-prevnext">
- <#-- Start Page Select Drop-Down -->
- <select name="pageSelect"
onchange="callDocumentByPaginate(this[this.selectedIndex].value);">
- <option value="#">${uiLabelMap.CommonPage} ${viewIndex?int}
${uiLabelMap.CommonOf} ${viewIndexMax}</option>
- <#if (viewIndex?int > 1)>
- <#list 0..viewIndexMax as curViewNum>
- <option
value="${shoppingListId?if_exists}~${viewSize}~${curViewNum?int +
1}">${uiLabelMap.CommonGotoPage} ${curViewNum + 1}</option>
- </#list>
- </#if>
- </select>
- <#-- End Page Select Drop-Down -->
-
+ <#assign viewIndexMax = Static["java.lang.Math"].ceil((listSize)?double /
viewSize?double)>
+ <#if (viewIndexMax?int > 0)>
+ <div class="product-prevnext">
+ <#-- Start Page Select Drop-Down -->
+ <select name="pageSelect"
onchange="callDocumentByPaginate(this[this.selectedIndex].value);">
+ <option value="#">${uiLabelMap.CommonPage} ${viewIndex?int}
${uiLabelMap.CommonOf} ${viewIndexMax}</option>
<#if (viewIndex?int > 1)>
- <a href="javascript: void(0);"
onclick="callDocumentByPaginate('${shoppingListId?if_exists}~${viewSize}~${viewIndex?int
- 1}');" class="buttontext">${uiLabelMap.CommonPrevious}</a> |
- </#if>
- <#if ((listSize?int - viewSize?int) > 0)>
- <span>${lowIndex} - ${highIndex} ${uiLabelMap.CommonOf}
${listSize}</span>
+ <#list 0..viewIndexMax as curViewNum>
+ <option
value="${shoppingListId?if_exists}~${viewSize}~${curViewNum?int +
1}">${uiLabelMap.CommonGotoPage} ${curViewNum + 1}</option>
+ </#list>
</#if>
- <#if highIndex?int < listSize?int>
- | <a href="javascript: void(0);"
onclick="callDocumentByPaginate('${shoppingListId?if_exists}~${viewSize}~${viewIndex?int
+ 1}');" class="buttontext">${uiLabelMap.CommonNext}</a>
- </#if>
- </div>
- </#if>
+ </select>
+ <#-- End Page Select Drop-Down -->
+
+ <#if (viewIndex?int > 1)>
+ <a href="javascript: void(0);"
onclick="callDocumentByPaginate('${shoppingListId?if_exists}~${viewSize}~${viewIndex?int
- 1}');" class="buttontext">${uiLabelMap.CommonPrevious}</a> |
+ </#if>
+ <#if ((listSize?int - viewSize?int) > 0)>
+ <span>${lowIndex} - ${highIndex} ${uiLabelMap.CommonOf}
${listSize}</span>
+ </#if>
+ <#if highIndex?int < listSize?int>
+ | <a href="javascript: void(0);"
onclick="callDocumentByPaginate('${shoppingListId?if_exists}~${viewSize}~${viewIndex?int
+ 1}');" class="buttontext">${uiLabelMap.CommonNext}</a>
+ </#if>
+ </div>
+</#if>
</#macro>
<div class="screenlet">