Hi Jacques,
could you please send me the url?
Jacopo
On Apr 2, 2012, at 7:37 PM, Jacques Le Roux wrote:
> I did not look into details but we get this on trunk demo
>
> Expression setContextField is undefined on line 62, column 27 in
> component://party/webapp/partymgr/party/profileblocks/Contact.ftl. The
> problematic instruction: ---------- ==> ${setContextField("postalAddress",
> postalAddress)} [on line 62, column 25 in
>
> I don't locally with trunk HEAD
>
> Jacques
>
> From: <[email protected]>
>> Author: jacopoc
>> Date: Fri Mar 30 07:28:39 2012
>> New Revision: 1307288
>>
>> URL: http://svn.apache.org/viewvc?rev=1307288&view=rev
>> Log:
>> Implemented new Freemarker transform to set a context variable.
>> The transform is now used to pass the "postalAddress" to the context of the
>> postal address formatter screen.
>> This should fix the issue, reported by Chatree, that prevented to render the
>> localized address when the screen was rendered from the send mail service
>> (no request object was available).
>>
>> Added:
>>
>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/SetContextFieldTransform.java
>> Modified:
>> ofbiz/trunk/applications/order/webapp/ordermgr/order/companyHeader.fo.ftl
>> ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl
>>
>> ofbiz/trunk/applications/order/webapp/ordermgr/quote/quoteReportContactMechs.fo.ftl
>>
>> ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetPostalAddressTemplate.groovy
>>
>> ofbiz/trunk/applications/party/webapp/partymgr/party/profileblocks/Contact.ftl
>> ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties
>>
>> Modified:
>> ofbiz/trunk/applications/order/webapp/ordermgr/order/companyHeader.fo.ftl
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/order/companyHeader.fo.ftl?rev=1307288&r1=1307287&r2=1307288&view=diff
>> ==============================================================================
>> ---
>> ofbiz/trunk/applications/order/webapp/ordermgr/order/companyHeader.fo.ftl
>> (original)
>> +++
>> ofbiz/trunk/applications/order/webapp/ordermgr/order/companyHeader.fo.ftl
>> Fri Mar 30 07:28:39 2012
>> @@ -26,7 +26,7 @@ under the License.
>> <fo:block>${companyName}</fo:block>
>> <#if postalAddress?exists>
>> <#if postalAddress?has_content>
>> - ${setRequestAttribute("postalAddress", postalAddress)}
>> + ${setContextField("postalAddress", postalAddress)}
>>
>> ${screens.render("component://party/widget/partymgr/PartyScreens.xml#postalAddressPdfFormatter")}
>> </#if>
>> <#else>
>>
>> Modified:
>> ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl?rev=1307288&r1=1307287&r2=1307288&view=diff
>> ==============================================================================
>> ---
>> ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl
>> (original)
>> +++
>> ofbiz/trunk/applications/order/webapp/ordermgr/order/ordercontactinfo.ftl
>> Fri Mar 30 07:28:39 2012
>> @@ -117,7 +117,7 @@ under the License.
>> <#assign postalAddress =
>> orderContactMechValueMap.postalAddress>
>> <#if postalAddress?has_content>
>> <div>
>> - ${setRequestAttribute("postalAddress", postalAddress)}
>> + ${setContextField("postalAddress", postalAddress)}
>>
>> ${screens.render("component://party/widget/partymgr/PartyScreens.xml#postalAddressHtmlFormatter")}
>> </div>
>> <@updateOrderContactMech orderHeader=orderHeader?if_exists
>> contactMechTypeId=contactMech.contactMechTypeId
>> contactMechList=postalContactMechList?if_exists
>> contactMechPurposeTypeId=contactMechPurpose.contactMechPurposeTypeId?if_exists
>> contactMechAddress=postalAddress?if_exists />
>>
>> Modified:
>> ofbiz/trunk/applications/order/webapp/ordermgr/quote/quoteReportContactMechs.fo.ftl
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/order/webapp/ordermgr/quote/quoteReportContactMechs.fo.ftl?rev=1307288&r1=1307287&r2=1307288&view=diff
>> ==============================================================================
>> ---
>> ofbiz/trunk/applications/order/webapp/ordermgr/quote/quoteReportContactMechs.fo.ftl
>> (original)
>> +++
>> ofbiz/trunk/applications/order/webapp/ordermgr/quote/quoteReportContactMechs.fo.ftl
>> Fri Mar 30 07:28:39 2012
>> @@ -39,8 +39,8 @@ under the License.
>> <fo:table-cell>
>> <fo:block>
>> <#if toPostalAddress?exists>
>> - ${setRequestAttribute("postalAddress",
>> toPostalAddress)}
>> -
>> ${screens.render("component://party/widget/partymgr/PartyScreens.xml#postalAddressPdfFormatter")}
>> + ${setContextField("postalAddress",
>> toPostalAddress)}
>> +
>> ${screens.render("component://party/widget/partymgr/PartyScreens.xml#postalAddressPdfFormatter")}
>> </#if>
>> </fo:block>
>> </fo:table-cell>
>>
>> Modified:
>> ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetPostalAddressTemplate.groovy
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetPostalAddressTemplate.groovy?rev=1307288&r1=1307287&r2=1307288&view=diff
>> ==============================================================================
>> ---
>> ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetPostalAddressTemplate.groovy
>> (original)
>> +++
>> ofbiz/trunk/applications/party/webapp/partymgr/WEB-INF/actions/party/GetPostalAddressTemplate.groovy
>> Fri Mar 30 07:28:39 2012
>> @@ -17,7 +17,7 @@
>> * under the License.
>> */
>>
>> -postalAddressForTemplate = request.getAttribute("postalAddress");
>> +postalAddressForTemplate = context.postalAddress;
>> postalAddressTemplateSuffix = context.postalAddressTemplateSuffix;
>>
>> if (!postalAddressTemplateSuffix) {
>>
>> Modified:
>> ofbiz/trunk/applications/party/webapp/partymgr/party/profileblocks/Contact.ftl
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/trunk/applications/party/webapp/partymgr/party/profileblocks/Contact.ftl?rev=1307288&r1=1307287&r2=1307288&view=diff
>> ==============================================================================
>> ---
>> ofbiz/trunk/applications/party/webapp/partymgr/party/profileblocks/Contact.ftl
>> (original)
>> +++
>> ofbiz/trunk/applications/party/webapp/partymgr/party/profileblocks/Contact.ftl
>> Fri Mar 30 07:28:39 2012
>> @@ -59,7 +59,7 @@ under the License.
>> <#if "POSTAL_ADDRESS" = contactMech.contactMechTypeId>
>> <#if contactMechMap.postalAddress?has_content>
>> <#assign postalAddress = contactMechMap.postalAddress>
>> - ${setRequestAttribute("postalAddress", postalAddress)}
>> + ${setContextField("postalAddress", postalAddress)}
>>
>> ${screens.render("component://party/widget/partymgr/PartyScreens.xml#postalAddressHtmlFormatter")}
>> <#if postalAddress.geoPointId?has_content>
>> <#if contactMechPurposeType?has_content>
>>
>> Modified: ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties?rev=1307288&r1=1307287&r2=1307288&view=diff
>> ==============================================================================
>> --- ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties
>> (original)
>> +++ ofbiz/trunk/framework/webapp/config/freemarkerTransforms.properties Fri
>> Mar 30 07:28:39 2012
>> @@ -27,3 +27,4 @@ ofbizCurrency=org.ofbiz.webapp.ftl.Ofbiz
>> ofbizAmount=org.ofbiz.webapp.ftl.OfbizAmountTransform
>> setRequestAttribute=org.ofbiz.webapp.ftl.SetRequestAttributeMethod
>> renderWrappedText=org.ofbiz.webapp.ftl.RenderWrappedTextTransform
>> +setContextField=org.ofbiz.webapp.ftl.SetContextFieldTransform
>>
>> Added:
>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/SetContextFieldTransform.java
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/SetContextFieldTransform.java?rev=1307288&view=auto
>> ==============================================================================
>> ---
>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/SetContextFieldTransform.java
>> (added)
>> +++
>> ofbiz/trunk/framework/webapp/src/org/ofbiz/webapp/ftl/SetContextFieldTransform.java
>> Fri Mar 30 07:28:39 2012
>> @@ -0,0 +1,64 @@
>> +/*******************************************************************************
>> + * Licensed to the Apache Software Foundation (ASF) under one
>> + * or more contributor license agreements. See the NOTICE file
>> + * distributed with this work for additional information
>> + * regarding copyright ownership. The ASF licenses this file
>> + * to you under the Apache License, Version 2.0 (the
>> + * "License"); you may not use this file except in compliance
>> + * with the License. You may obtain a copy of the License at
>> + *
>> + * http://www.apache.org/licenses/LICENSE-2.0
>> + *
>> + * Unless required by applicable law or agreed to in writing,
>> + * software distributed under the License is distributed on an
>> + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>> + * KIND, either express or implied. See the License for the
>> + * specific language governing permissions and limitations
>> + * under the License.
>> +
>> *******************************************************************************/
>> +package org.ofbiz.webapp.ftl;
>> +
>> +import freemarker.core.Environment;
>> +import freemarker.ext.beans.BeanModel;
>> +import freemarker.template.*;
>> +
>> +import java.util.List;
>> +import java.util.Map;
>> +
>> +/**
>> + * SetRequestAttributeMethod - Freemarker Method for setting context fields
>> + */
>> +public class SetContextFieldTransform implements TemplateMethodModelEx {
>> +
>> + public static final String module =
>> SetContextFieldTransform.class.getName();
>> +
>> + /*
>> + * @see freemarker.template.TemplateMethodModel#exec(java.util.List)
>> + */
>> + @SuppressWarnings("unchecked")
>> + public Object exec(List args) throws TemplateModelException {
>> + if (args == null || args.size() != 2)
>> + throw new TemplateModelException("Invalid number of
>> arguements");
>> + if (!(args.get(0) instanceof TemplateScalarModel))
>> + throw new TemplateModelException("First argument not an
>> instance of TemplateScalarModel");
>> + if (!(args.get(1) instanceof BeanModel) && !(args.get(1) instanceof
>> TemplateNumberModel) && !(args.get(1) instanceof TemplateScalarModel))
>> + throw new TemplateModelException("Second argument not an
>> instance of BeanModel nor TemplateNumberModel nor TemplateScalarModel");
>> +
>> + Environment env = Environment.getCurrentEnvironment();
>> + BeanModel req = (BeanModel)env.getVariable("context");
>> + Map context = (Map) req.getWrappedObject();
>> +
>> + String name = ((TemplateScalarModel) args.get(0)).getAsString();
>> + Object value = null;
>> + if (args.get(1) instanceof TemplateScalarModel)
>> + value = ((TemplateScalarModel) args.get(1)).getAsString();
>> + if (args.get(1) instanceof TemplateNumberModel)
>> + value = ((TemplateNumberModel) args.get(1)).getAsNumber();
>> + if (args.get(1) instanceof BeanModel)
>> + value = ((BeanModel) args.get(1)).getWrappedObject();
>> +
>> + context.put(name, value);
>> + return new SimpleScalar("");
>> + }
>> +
>> +}
>>