You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2010/04/28 12:02:58 UTC

svn commit: r938844 - in /ofbiz/trunk/framework: example/config/ example/entitydef/ example/widget/example/ widget/config/ widget/src/org/ofbiz/widget/form/ widget/templates/

Author: jleroux
Date: Wed Apr 28 10:02:57 2010
New Revision: 938844

URL: http://svn.apache.org/viewvc?rev=938844&view=rev
Log:
A slightly modified patch from Chris Snow "Provide better user help" (https://issues.apache.org/jira/browse/OFBIZ-3702) - OFBIZ-3702

Provides help by hovering over the field label. See Example for... an example :o) And also https://issues.apache.org/jira/secure/attachment/12442717/fieldLabelTooltip2.png

Added:
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java   (with props)
Modified:
    ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml
    ofbiz/trunk/framework/example/entitydef/entitymodel.xml
    ofbiz/trunk/framework/example/widget/example/ExampleForms.xml
    ofbiz/trunk/framework/widget/config/widget.properties
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
    ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl

Modified: ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml?rev=938844&r1=938843&r2=938844&view=diff
==============================================================================
--- ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml (original)
+++ ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml Wed Apr 28 10:02:57 2010
@@ -90,6 +90,10 @@
         <value xml:lang="th">รหัสตัวอย่างประเภท ถ้าไม่มีการกำหนดรหัส จะต้องมีการสร้างขึ้นอัตโมัติ</value>
         <value xml:lang="zh">一个唯一的样例类型序号。如果你没有指定一个标识,那么会自动生成一个</value>
     </property>
+    <property key="FieldDescription.Example.exampleTypeId">
+        <value xml:lang="en">The type of Example.</value>
+        <value xml:lang="fr">Le type de l'exemple.</value>
+    </property>
     <property key="FieldDescription.amount">
         <value xml:lang="de">Betrag</value>
         <value xml:lang="en">Amount</value>

Modified: ofbiz/trunk/framework/example/entitydef/entitymodel.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/entitydef/entitymodel.xml?rev=938844&r1=938843&r2=938844&view=diff
==============================================================================
--- ofbiz/trunk/framework/example/entitydef/entitymodel.xml (original)
+++ ofbiz/trunk/framework/example/entitydef/entitymodel.xml Wed Apr 28 10:02:57 2010
@@ -43,7 +43,9 @@ under the License.
 
     <entity entity-name="Example"
             package-name="org.ofbiz.example.example"
-            title="Example Entity">
+            title="Example Entity"
+            default-resource-name="ExampleEntityLabels"
+            >
         <field name="exampleId" type="id-ne"><description>primary sequenced ID</description></field>
         <field name="exampleTypeId" type="id-ne"></field>
         <field name="statusId" type="id-ne"></field>

Modified: ofbiz/trunk/framework/example/widget/example/ExampleForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/ExampleForms.xml?rev=938844&r1=938843&r2=938844&view=diff
==============================================================================
--- ofbiz/trunk/framework/example/widget/example/ExampleForms.xml (original)
+++ ofbiz/trunk/framework/example/widget/example/ExampleForms.xml Wed Apr 28 10:02:57 2010
@@ -101,7 +101,7 @@ under the License.
         </actions>
         <alt-target use-when="example==null" target="createExample"/>
         <auto-fields-service service-name="updateExample"/>
-        <field use-when="example!=null" name="exampleId" title="${uiLabelMap.ExampleExampleId}" tooltip="${uiLabelMap.CommonNotModifRecreat}"><display/></field>
+        <field use-when="example!=null" name="exampleId" title="${uiLabelMap.ExampleExampleId}" tooltip="${uiLabelMap.CommonNotModifRecreat}" entity-name="Example"><display/></field>
         <field use-when="example==null @and exampleId==null" name="exampleId" title="${uiLabelMap.ExampleExampleId}"><ignored/></field>
         <field use-when="example==null @and exampleId!=null" name="exampleId" title="${uiLabelMap.ExampleExampleId}"><display description="${uiLabelMap.CommonCannotBeFound}: [${exampleId}]" also-hidden="false"/></field>
         <field name="exampleTypeId" title="${uiLabelMap.CommonType}" id-name="exampleTypeId">
@@ -112,12 +112,12 @@ under the License.
                 </entity-options>
             </drop-down>
         </field>
-        <field name="statusId" use-when="example==null" title="${uiLabelMap.CommonStatus}">
+        <field name="statusId" use-when="example==null" title="${uiLabelMap.CommonStatus}" entity-name="Example">
             <drop-down allow-empty="false">
                 <entity-options entity-name="ExampleStatusItem" description="${description}"/>
             </drop-down>
         </field>
-        <field name="statusId" use-when="example!=null" title="${uiLabelMap.CommonStatus}">
+        <field name="statusId" use-when="example!=null" title="${uiLabelMap.CommonStatus}" entity-name="Example">
             <drop-down allow-empty="false" current-description="${currentStatus.description}">
                 <entity-options entity-name="StatusValidChangeToDetail" key-field-name="statusIdTo" description="${transitionName} (${description})">
                     <entity-constraint name="statusId" env-name="example.statusId"/>

Modified: ofbiz/trunk/framework/widget/config/widget.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/config/widget.properties?rev=938844&r1=938843&r2=938844&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/config/widget.properties (original)
+++ ofbiz/trunk/framework/widget/config/widget.properties Wed Apr 28 10:02:57 2010
@@ -38,6 +38,9 @@ widget.lookup.showDescription=Y
 # Default text find field's option
 widget.form.defaultTextFindOption=contains
 
+# Controls whether to display help text tooltips for form field titles
+widget.form.displayhelpText=Y
+
 # Controls the initial results display in Find screens. If set to Y, the
 # search result list will be populated when the Find screen first appears.
 # If set to N, the search result list will be empty when the Find screen

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=938844&r1=938843&r2=938844&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java Wed Apr 28 10:02:57 2010
@@ -48,6 +48,7 @@ import org.ofbiz.base.util.UtilPropertie
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.base.util.string.FlexibleStringExpander;
 import org.ofbiz.base.util.template.FreeMarkerWorker;
+import org.ofbiz.entity.Delegator;
 import org.ofbiz.webapp.control.RequestHandler;
 import org.ofbiz.webapp.taglib.ContentUrlTag;
 import org.ofbiz.widget.ModelWidget;
@@ -1202,11 +1203,23 @@ public class MacroFormRenderer implement
                     style = requiredStyle;
                 }
             }
+            Delegator delegator = (Delegator)request.getAttribute("delegator");
+            Locale locale = (Locale)context.get("locale");
+            String entityName = modelFormField.getEntityName();
+            String fieldName = modelFormField.getFieldName();
+            String helpText = UtilHelpText.getHelp(entityName, fieldName, delegator, locale);
+            
+            String displayHelpText = UtilProperties.getPropertyValue("widget.properties", "widget.form.displayhelpText");
+            
             StringWriter sr = new StringWriter();
             sr.append("<@renderFieldTitle ");
             sr.append(" style=\"");
             sr.append(style);
-            sr.append("\" title=\"");
+            if ("Y".equals(displayHelpText)) {
+                sr.append("\" fieldHelpText=\"");
+                sr.append(FreeMarkerWorker.encodeDoubleQuotes(helpText));
+            }
+            sr.append("\" fieldTitle=\"");
             sr.append(sb.toString());
             sr.append("\" />");
             executeMacro(writer, sr.toString());

Added: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java?rev=938844&view=auto
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java (added)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java Wed Apr 28 10:02:57 2010
@@ -0,0 +1,56 @@
+package org.ofbiz.widget.form;
+
+import java.util.Locale;
+
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilProperties;
+import org.ofbiz.base.util.UtilValidate;
+import org.ofbiz.entity.Delegator;
+import org.ofbiz.entity.GenericEntityException;
+import org.ofbiz.entity.model.ModelEntity;
+import org.ofbiz.entity.model.ModelReader;
+
+/**
+ * Util for working with Help Text
+ */
+public class UtilHelpText {
+
+    public static final String module = UtilHelpText.class.getName();
+
+    /**
+     * Find the help text associated with an entity field.
+     * 
+     * @param entityName the entity name
+     * @param fieldName the field name
+     * @param delegator the delegator
+     * @param locale the locale
+     * @return the help text, or the resource propertyName if no help text exists
+     */
+    public static String getHelp(final String entityName, final String fieldName, final Delegator delegator, final Locale locale) {
+
+        if (UtilValidate.isEmpty(entityName)) {
+            Debug.logWarning("entityName [" + entityName + "] is empty", module);
+            return "";
+        }
+        if (UtilValidate.isEmpty(fieldName)) {
+            Debug.logWarning("fieldName [" + fieldName + "] is empty", module);
+            return "";
+        }
+        ModelReader reader = delegator.getModelReader();
+        ModelEntity entity = null;
+        try {
+            if (!reader.getEntityNames().contains(entityName)) {
+                Debug.logWarning("couldn't find entityName [" + entityName + "]", module);
+                return "";
+            }
+            entity = reader.getModelEntity(entityName);
+        } catch (GenericEntityException e) {
+            Debug.logError(e, "Error getting help text for entity=" + entityName + " field " + fieldName, module);
+            return "";
+        }
+        String entityResourceName = entity.getDefaultResourceName();
+        String messageId = "FieldDescription." + entityName + "." + fieldName;
+        String fieldDescription = UtilProperties.getMessage(entityResourceName, messageId, locale);
+        return fieldDescription;
+    }
+}
\ No newline at end of file

Propchange: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
------------------------------------------------------------------------------
    svn:keywords = Date Rev Author URL Id

Propchange: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Modified: ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=938844&r1=938843&r2=938844&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl (original)
+++ ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Wed Apr 28 10:02:57 2010
@@ -205,14 +205,20 @@ ${item.description}</span>
 
 <#macro renderIgnoredField></#macro>
 
-<#macro renderFieldTitle style title>
+<#macro renderFieldTitle style fieldTitle fieldHelpText="">
+    <#if fieldHelpText?has_content>
+        <span title="${fieldHelpText}"><#t/>
+    </#if>
     <#if style?has_content>
         <span class="${style}"><#t/>
     </#if>
-    ${title}<#t/>
+    ${fieldTitle}<#t/>
     <#if style?has_content>
-        </span><#lt/>
+        </span><#t/>
     </#if>
+    <#if fieldHelpText?has_content>
+        </span><#t/>
+    </#if>    
 </#macro>
 
 <#macro renderSingleFormFieldTitle></#macro>



Re: svn commit: r938844 - in /ofbiz/trunk/framework: example/config/ example/entitydef/ example/widget/example/ widget/config/ widget/src/org/ofbiz/widget/form/ widget/templates/

Posted by chris snow <ch...@googlemail.com>.
Done - comments  added to https://issues.apache.org/jira/browse/OFBIZ-3702

On Wed, Apr 28, 2010 at 11:53 AM, Jacques Le Roux <
jacques.le.roux@les7arts.com> wrote:

> Hi Chris,
>
> Could you please take care of Scott's remarks
>
> Thanks
>
> Jacques
>
>
> Scott Gray wrote:
>
>> Inline
>>
>> Regards
>> Scott
>>
>> On 28/04/2010, at 10:02 PM, jleroux@apache.org wrote:
>>
>>  Author: jleroux
>>> Date: Wed Apr 28 10:02:57 2010
>>> New Revision: 938844
>>>
>>> URL: http://svn.apache.org/viewvc?rev=938844&view=rev
>>> Log:
>>> A slightly modified patch from Chris Snow "Provide better user help" (
>>> https://issues.apache.org/jira/browse/OFBIZ-3702) -
>>> OFBIZ-3702
>>>
>>> Provides help by hovering over the field label. See Example for... an
>>> example :o) And also
>>>
>>> https://issues.apache.org/jira/secure/attachment/12442717/fieldLabelTooltip2.png
>>>
>>> Added:
>>>
>>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
>>> (with props)
>>> Modified:
>>>   ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml
>>>   ofbiz/trunk/framework/example/entitydef/entitymodel.xml
>>>   ofbiz/trunk/framework/example/widget/example/ExampleForms.xml
>>>   ofbiz/trunk/framework/widget/config/widget.properties
>>>
>>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
>>>   ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
>>>
>>> Modified: ofbiz/trunk/framework/example/widget/example/ExampleForms.xml
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/ExampleForms.xml?rev=938844&r1=938843&r2=938844&view=diff
>>> ==============================================================================
>>> ---
>>> ofbiz/trunk/framework/example/widget/example/ExampleForms.xml (original)
>>> +++
>>> ofbiz/trunk/framework/example/widget/example/ExampleForms.xml Wed Apr 28
>>> 10:02:57 2010 @@ -101,7 +101,7 @@ under the License.
>>>        </actions>
>>>        <alt-target use-when="example==null" target="createExample"/>
>>>        <auto-fields-service service-name="updateExample"/>
>>> -        <field use-when="example!=null" name="exampleId"
>>> title="${uiLabelMap.ExampleExampleId}"
>>> tooltip="${uiLabelMap.CommonNotModifRecreat}"><display/></field> +
>>>  <field use-when="example!=null" name="exampleId"
>>>        title="${uiLabelMap.ExampleExampleId}"
>>> tooltip="${uiLabelMap.CommonNotModifRecreat}"
>>>        entity-name="Example"><display/></field> <field
>>> use-when="example==null @and exampleId==null" name="exampleId"
>>>        title="${uiLabelMap.ExampleExampleId}"><ignored/></field> <field
>>> use-when="example==null @and exampleId!=null"
>>> name="exampleId" title="${uiLabelMap.ExampleExampleId}"><display
>>> description="${uiLabelMap.CommonCannotBeFound}: [${exampleId}]"
>>>                also-hidden="false"/></field> <field name="exampleTypeId"
>>> title="${uiLabelMap.CommonType}"
>>>            id-name="exampleTypeId"> @@ -112,12 +112,12 @@ under the
>>> License. </entity-options> </drop-down>
>>>        </field>
>>> -        <field name="statusId" use-when="example==null"
>>> title="${uiLabelMap.CommonStatus}">
>>> +        <field name="statusId" use-when="example==null"
>>> title="${uiLabelMap.CommonStatus}" entity-name="Example">
>>>            <drop-down allow-empty="false">
>>>                <entity-options entity-name="ExampleStatusItem"
>>> description="${description}"/>
>>>            </drop-down>
>>>        </field>
>>> -        <field name="statusId" use-when="example!=null"
>>> title="${uiLabelMap.CommonStatus}">
>>> +        <field name="statusId" use-when="example!=null"
>>> title="${uiLabelMap.CommonStatus}" entity-name="Example">
>>>            <drop-down allow-empty="false"
>>> current-description="${currentStatus.description}">
>>>                <entity-options entity-name="StatusValidChangeToDetail"
>>> key-field-name="statusIdTo"
>>>                    description="${transitionName} (${description})">
>>> <entity-constraint name="statusId"
>>> env-name="example.statusId"/>
>>>
>>
>> There is a field on the form element that can be used instead of setting
>> these entity names individually
>>
>>
>>> Modified:
>>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=938844&r1=938843&r2=938844&view=diff
>>> ==============================================================================
>>> ---
>>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
>>> (original) +++
>>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
>>> Wed Apr 28 10:02:57 2010 @@ -48,6 +48,7 @@ import
>>> org.ofbiz.base.util.UtilPropertie
>>> import org.ofbiz.base.util.UtilValidate;
>>> import org.ofbiz.base.util.string.FlexibleStringExpander;
>>> import org.ofbiz.base.util.template.FreeMarkerWorker;
>>> +import org.ofbiz.entity.Delegator;
>>> import org.ofbiz.webapp.control.RequestHandler;
>>> import org.ofbiz.webapp.taglib.ContentUrlTag;
>>> import org.ofbiz.widget.ModelWidget;
>>> @@ -1202,11 +1203,23 @@ public class MacroFormRenderer implement
>>>                    style = requiredStyle;
>>>                }
>>>            }
>>> +            Delegator delegator =
>>> (Delegator)request.getAttribute("delegator");
>>>
>>
>> Should be modelForm.getDelegator();
>> Ideally the form renderer wouldn't be dependent on an HttpServletRequest
>> object at all
>>
>>  +            Locale locale = (Locale)context.get("locale");
>>> +            String entityName = modelFormField.getEntityName();
>>> +            String fieldName = modelFormField.getFieldName();
>>> +            String helpText = UtilHelpText.getHelp(entityName,
>>> fieldName, delegator, locale);
>>>
>>
>> Retrieving the help text before checking the property?
>>
>>  +
>>> +            String displayHelpText =
>>> UtilProperties.getPropertyValue("widget.properties",
>>> "widget.form.displayhelpText");
>>> +
>>>            StringWriter sr = new StringWriter();
>>>            sr.append("<@renderFieldTitle ");
>>>            sr.append(" style=\"");
>>>            sr.append(style);
>>> -            sr.append("\" title=\"");
>>> +            if ("Y".equals(displayHelpText)) {
>>> +                sr.append("\" fieldHelpText=\"");
>>> +
>>>  sr.append(FreeMarkerWorker.encodeDoubleQuotes(helpText));
>>> +            }
>>> +            sr.append("\" fieldTitle=\"");
>>>            sr.append(sb.toString());
>>>            sr.append("\" />");
>>>            executeMacro(writer, sr.toString());
>>>
>>> Added:
>>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
>>> URL:
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java?rev=938844&view=auto
>>>
>>> ==============================================================================
>>> ---
>>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
>>> (added)
>>> +++
>>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java Wed
>>> Apr 28 10:02:57 2010
>>> @@ -0,0 +1,56 @@
>>> +package org.ofbiz.widget.form;
>>> +
>>> +import java.util.Locale;
>>> +
>>> +import org.ofbiz.base.util.Debug;
>>> +import org.ofbiz.base.util.UtilProperties;
>>> +import org.ofbiz.base.util.UtilValidate;
>>> +import org.ofbiz.entity.Delegator;
>>> +import org.ofbiz.entity.GenericEntityException;
>>> +import org.ofbiz.entity.model.ModelEntity;
>>> +import org.ofbiz.entity.model.ModelReader;
>>> +
>>> +/**
>>> + * Util for working with Help Text
>>> + */
>>> +public class UtilHelpText {
>>> +
>>> +    public static final String module = UtilHelpText.class.getName();
>>> +
>>> +    /**
>>> +     * Find the help text associated with an entity field.
>>> +     *
>>> +     * @param entityName the entity name
>>> +     * @param fieldName the field name
>>> +     * @param delegator the delegator
>>> +     * @param locale the locale
>>> +     * @return the help text, or the resource propertyName if no help
>>> text exists
>>> +     */
>>> +    public static String getHelp(final String entityName, final String
>>> fieldName, final Delegator delegator, final Locale
>>> locale) {
>>>
>>
>> Bad method name choice
>>
>>  +
>>> +        if (UtilValidate.isEmpty(entityName)) {
>>> +            Debug.logWarning("entityName [" + entityName + "] is empty",
>>> module);
>>> +            return "";
>>> +        }
>>> +        if (UtilValidate.isEmpty(fieldName)) {
>>> +            Debug.logWarning("fieldName [" + fieldName + "] is empty",
>>> module);
>>> +            return "";
>>> +        }
>>> +        ModelReader reader = delegator.getModelReader();
>>> +        ModelEntity entity = null;
>>> +        try {
>>> +            if (!reader.getEntityNames().contains(entityName)) {
>>> +                Debug.logWarning("couldn't find entityName [" +
>>> entityName + "]", module);
>>> +                return "";
>>> +            }
>>> +            entity = reader.getModelEntity(entityName);
>>> +        } catch (GenericEntityException e) {
>>> +            Debug.logError(e, "Error getting help text for entity=" +
>>> entityName + " field " + fieldName, module);
>>> +            return "";
>>> +        }
>>> +        String entityResourceName = entity.getDefaultResourceName();
>>> +        String messageId = "FieldDescription." + entityName + "." +
>>> fieldName;
>>> +        String fieldDescription =
>>> UtilProperties.getMessage(entityResourceName, messageId, locale);
>>> +        return fieldDescription;
>>> +    }
>>> +}
>>> \ No newline at end of file
>>>
>>> Propchange:
>>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
>>>
>>> ------------------------------------------------------------------------------
>>>   svn:eol-style = native
>>>
>>> Propchange:
>>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
>>>
>>> ------------------------------------------------------------------------------
>>>   svn:keywords = Date Rev Author URL Id
>>>
>>> Propchange:
>>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
>>>
>>> ------------------------------------------------------------------------------
>>>   svn:mime-type = text/plain
>>>
>>> Modified: ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
>>> URL:
>>>
>>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=938844&r1=938843&r2=938844&view=diff
>>> ==============================================================================
>>> ---
>>> ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
>>> (original) +++
>>> ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Wed Apr
>>> 28 10:02:57 2010 @@ -205,14 +205,20 @@
>>> ${item.description}</span>
>>>
>>> <#macro renderIgnoredField></#macro>
>>>
>>> -<#macro renderFieldTitle style title>
>>> +<#macro renderFieldTitle style fieldTitle fieldHelpText="">
>>> +    <#if fieldHelpText?has_content>
>>> +        <span title="${fieldHelpText}"><#t/>
>>> +    </#if>
>>>    <#if style?has_content>
>>>        <span class="${style}"><#t/>
>>>    </#if>
>>> -    ${title}<#t/>
>>> +    ${fieldTitle}<#t/>
>>>    <#if style?has_content>
>>> -        </span><#lt/>
>>> +        </span><#t/>
>>>    </#if>
>>> +    <#if fieldHelpText?has_content>
>>> +        </span><#t/>
>>> +    </#if>
>>> </#macro>
>>>
>>
>> What about the other macro libraries?
>>
>
>
>

Re: svn commit: r938844 - in /ofbiz/trunk/framework: example/config/ example/entitydef/ example/widget/example/ widget/config/ widget/src/org/ofbiz/widget/form/ widget/templates/

Posted by Jacques Le Roux <ja...@les7arts.com>.
Hi Chris,

Could you please take care of Scott's remarks

Thanks

Jacques

Scott Gray wrote:
> Inline
>
> Regards
> Scott
>
> On 28/04/2010, at 10:02 PM, jleroux@apache.org wrote:
>
>> Author: jleroux
>> Date: Wed Apr 28 10:02:57 2010
>> New Revision: 938844
>>
>> URL: http://svn.apache.org/viewvc?rev=938844&view=rev
>> Log:
>> A slightly modified patch from Chris Snow "Provide better user help" (https://issues.apache.org/jira/browse/OFBIZ-3702) -
>> OFBIZ-3702
>>
>> Provides help by hovering over the field label. See Example for... an example :o) And also
>> https://issues.apache.org/jira/secure/attachment/12442717/fieldLabelTooltip2.png
>>
>> Added:
>>    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java   (with props)
>> Modified:
>>    ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml
>>    ofbiz/trunk/framework/example/entitydef/entitymodel.xml
>>    ofbiz/trunk/framework/example/widget/example/ExampleForms.xml
>>    ofbiz/trunk/framework/widget/config/widget.properties
>>    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
>>    ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
>>
>> Modified: ofbiz/trunk/framework/example/widget/example/ExampleForms.xml
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/ExampleForms.xml?rev=938844&r1=938843&r2=938844&view=diff
>> ============================================================================== ---
>> ofbiz/trunk/framework/example/widget/example/ExampleForms.xml (original) +++
>> ofbiz/trunk/framework/example/widget/example/ExampleForms.xml Wed Apr 28 10:02:57 2010 @@ -101,7 +101,7 @@ under the License.
>>         </actions>
>>         <alt-target use-when="example==null" target="createExample"/>
>>         <auto-fields-service service-name="updateExample"/>
>> -        <field use-when="example!=null" name="exampleId" title="${uiLabelMap.ExampleExampleId}"
>> tooltip="${uiLabelMap.CommonNotModifRecreat}"><display/></field> +        <field use-when="example!=null" name="exampleId"
>>         title="${uiLabelMap.ExampleExampleId}" tooltip="${uiLabelMap.CommonNotModifRecreat}"
>>         entity-name="Example"><display/></field> <field use-when="example==null @and exampleId==null" name="exampleId"
>>         title="${uiLabelMap.ExampleExampleId}"><ignored/></field> <field use-when="example==null @and exampleId!=null"
>> name="exampleId" title="${uiLabelMap.ExampleExampleId}"><display description="${uiLabelMap.CommonCannotBeFound}: [${exampleId}]"
>>                 also-hidden="false"/></field> <field name="exampleTypeId" title="${uiLabelMap.CommonType}"
>>             id-name="exampleTypeId"> @@ -112,12 +112,12 @@ under the License. </entity-options> </drop-down>
>>         </field>
>> -        <field name="statusId" use-when="example==null" title="${uiLabelMap.CommonStatus}">
>> +        <field name="statusId" use-when="example==null" title="${uiLabelMap.CommonStatus}" entity-name="Example">
>>             <drop-down allow-empty="false">
>>                 <entity-options entity-name="ExampleStatusItem" description="${description}"/>
>>             </drop-down>
>>         </field>
>> -        <field name="statusId" use-when="example!=null" title="${uiLabelMap.CommonStatus}">
>> +        <field name="statusId" use-when="example!=null" title="${uiLabelMap.CommonStatus}" entity-name="Example">
>>             <drop-down allow-empty="false" current-description="${currentStatus.description}">
>>                 <entity-options entity-name="StatusValidChangeToDetail" key-field-name="statusIdTo"
>>                     description="${transitionName} (${description})"> <entity-constraint name="statusId"
>> env-name="example.statusId"/>
>
> There is a field on the form element that can be used instead of setting these entity names individually
>
>>
>> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=938844&r1=938843&r2=938844&view=diff
>> ============================================================================== ---
>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java (original) +++
>> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java Wed Apr 28 10:02:57 2010 @@ -48,6 +48,7 @@ import
>> org.ofbiz.base.util.UtilPropertie
>> import org.ofbiz.base.util.UtilValidate;
>> import org.ofbiz.base.util.string.FlexibleStringExpander;
>> import org.ofbiz.base.util.template.FreeMarkerWorker;
>> +import org.ofbiz.entity.Delegator;
>> import org.ofbiz.webapp.control.RequestHandler;
>> import org.ofbiz.webapp.taglib.ContentUrlTag;
>> import org.ofbiz.widget.ModelWidget;
>> @@ -1202,11 +1203,23 @@ public class MacroFormRenderer implement
>>                     style = requiredStyle;
>>                 }
>>             }
>> +            Delegator delegator = (Delegator)request.getAttribute("delegator");
>
> Should be modelForm.getDelegator();
> Ideally the form renderer wouldn't be dependent on an HttpServletRequest object at all
>
>> +            Locale locale = (Locale)context.get("locale");
>> +            String entityName = modelFormField.getEntityName();
>> +            String fieldName = modelFormField.getFieldName();
>> +            String helpText = UtilHelpText.getHelp(entityName, fieldName, delegator, locale);
>
> Retrieving the help text before checking the property?
>
>> +
>> +            String displayHelpText = UtilProperties.getPropertyValue("widget.properties", "widget.form.displayhelpText");
>> +
>>             StringWriter sr = new StringWriter();
>>             sr.append("<@renderFieldTitle ");
>>             sr.append(" style=\"");
>>             sr.append(style);
>> -            sr.append("\" title=\"");
>> +            if ("Y".equals(displayHelpText)) {
>> +                sr.append("\" fieldHelpText=\"");
>> +                sr.append(FreeMarkerWorker.encodeDoubleQuotes(helpText));
>> +            }
>> +            sr.append("\" fieldTitle=\"");
>>             sr.append(sb.toString());
>>             sr.append("\" />");
>>             executeMacro(writer, sr.toString());
>>
>> Added: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
>> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java?rev=938844&view=auto
>> ==============================================================================
>> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java (added)
>> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java Wed Apr 28 10:02:57 2010
>> @@ -0,0 +1,56 @@
>> +package org.ofbiz.widget.form;
>> +
>> +import java.util.Locale;
>> +
>> +import org.ofbiz.base.util.Debug;
>> +import org.ofbiz.base.util.UtilProperties;
>> +import org.ofbiz.base.util.UtilValidate;
>> +import org.ofbiz.entity.Delegator;
>> +import org.ofbiz.entity.GenericEntityException;
>> +import org.ofbiz.entity.model.ModelEntity;
>> +import org.ofbiz.entity.model.ModelReader;
>> +
>> +/**
>> + * Util for working with Help Text
>> + */
>> +public class UtilHelpText {
>> +
>> +    public static final String module = UtilHelpText.class.getName();
>> +
>> +    /**
>> +     * Find the help text associated with an entity field.
>> +     *
>> +     * @param entityName the entity name
>> +     * @param fieldName the field name
>> +     * @param delegator the delegator
>> +     * @param locale the locale
>> +     * @return the help text, or the resource propertyName if no help text exists
>> +     */
>> +    public static String getHelp(final String entityName, final String fieldName, final Delegator delegator, final Locale
>> locale) {
>
> Bad method name choice
>
>> +
>> +        if (UtilValidate.isEmpty(entityName)) {
>> +            Debug.logWarning("entityName [" + entityName + "] is empty", module);
>> +            return "";
>> +        }
>> +        if (UtilValidate.isEmpty(fieldName)) {
>> +            Debug.logWarning("fieldName [" + fieldName + "] is empty", module);
>> +            return "";
>> +        }
>> +        ModelReader reader = delegator.getModelReader();
>> +        ModelEntity entity = null;
>> +        try {
>> +            if (!reader.getEntityNames().contains(entityName)) {
>> +                Debug.logWarning("couldn't find entityName [" + entityName + "]", module);
>> +                return "";
>> +            }
>> +            entity = reader.getModelEntity(entityName);
>> +        } catch (GenericEntityException e) {
>> +            Debug.logError(e, "Error getting help text for entity=" + entityName + " field " + fieldName, module);
>> +            return "";
>> +        }
>> +        String entityResourceName = entity.getDefaultResourceName();
>> +        String messageId = "FieldDescription." + entityName + "." + fieldName;
>> +        String fieldDescription = UtilProperties.getMessage(entityResourceName, messageId, locale);
>> +        return fieldDescription;
>> +    }
>> +}
>> \ No newline at end of file
>>
>> Propchange: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
>> ------------------------------------------------------------------------------
>>    svn:eol-style = native
>>
>> Propchange: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
>> ------------------------------------------------------------------------------
>>    svn:keywords = Date Rev Author URL Id
>>
>> Propchange: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
>> ------------------------------------------------------------------------------
>>    svn:mime-type = text/plain
>>
>> Modified: ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
>> URL:
>> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=938844&r1=938843&r2=938844&view=diff
>> ============================================================================== ---
>> ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl (original) +++
>> ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Wed Apr 28 10:02:57 2010 @@ -205,14 +205,20 @@
>> ${item.description}</span>
>>
>> <#macro renderIgnoredField></#macro>
>>
>> -<#macro renderFieldTitle style title>
>> +<#macro renderFieldTitle style fieldTitle fieldHelpText="">
>> +    <#if fieldHelpText?has_content>
>> +        <span title="${fieldHelpText}"><#t/>
>> +    </#if>
>>     <#if style?has_content>
>>         <span class="${style}"><#t/>
>>     </#if>
>> -    ${title}<#t/>
>> +    ${fieldTitle}<#t/>
>>     <#if style?has_content>
>> -        </span><#lt/>
>> +        </span><#t/>
>>     </#if>
>> +    <#if fieldHelpText?has_content>
>> +        </span><#t/>
>> +    </#if>
>> </#macro>
>
> What about the other macro libraries? 



Re: svn commit: r938844 - in /ofbiz/trunk/framework: example/config/ example/entitydef/ example/widget/example/ widget/config/ widget/src/org/ofbiz/widget/form/ widget/templates/

Posted by Scott Gray <sc...@hotwaxmedia.com>.
Inline

Regards
Scott

On 28/04/2010, at 10:02 PM, jleroux@apache.org wrote:

> Author: jleroux
> Date: Wed Apr 28 10:02:57 2010
> New Revision: 938844
> 
> URL: http://svn.apache.org/viewvc?rev=938844&view=rev
> Log:
> A slightly modified patch from Chris Snow "Provide better user help" (https://issues.apache.org/jira/browse/OFBIZ-3702) - OFBIZ-3702
> 
> Provides help by hovering over the field label. See Example for... an example :o) And also https://issues.apache.org/jira/secure/attachment/12442717/fieldLabelTooltip2.png
> 
> Added:
>    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java   (with props)
> Modified:
>    ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml
>    ofbiz/trunk/framework/example/entitydef/entitymodel.xml
>    ofbiz/trunk/framework/example/widget/example/ExampleForms.xml
>    ofbiz/trunk/framework/widget/config/widget.properties
>    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
>    ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
> 
> Modified: ofbiz/trunk/framework/example/widget/example/ExampleForms.xml
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/ExampleForms.xml?rev=938844&r1=938843&r2=938844&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/example/widget/example/ExampleForms.xml (original)
> +++ ofbiz/trunk/framework/example/widget/example/ExampleForms.xml Wed Apr 28 10:02:57 2010
> @@ -101,7 +101,7 @@ under the License.
>         </actions>
>         <alt-target use-when="example==null" target="createExample"/>
>         <auto-fields-service service-name="updateExample"/>
> -        <field use-when="example!=null" name="exampleId" title="${uiLabelMap.ExampleExampleId}" tooltip="${uiLabelMap.CommonNotModifRecreat}"><display/></field>
> +        <field use-when="example!=null" name="exampleId" title="${uiLabelMap.ExampleExampleId}" tooltip="${uiLabelMap.CommonNotModifRecreat}" entity-name="Example"><display/></field>
>         <field use-when="example==null @and exampleId==null" name="exampleId" title="${uiLabelMap.ExampleExampleId}"><ignored/></field>
>         <field use-when="example==null @and exampleId!=null" name="exampleId" title="${uiLabelMap.ExampleExampleId}"><display description="${uiLabelMap.CommonCannotBeFound}: [${exampleId}]" also-hidden="false"/></field>
>         <field name="exampleTypeId" title="${uiLabelMap.CommonType}" id-name="exampleTypeId">
> @@ -112,12 +112,12 @@ under the License.
>                 </entity-options>
>             </drop-down>
>         </field>
> -        <field name="statusId" use-when="example==null" title="${uiLabelMap.CommonStatus}">
> +        <field name="statusId" use-when="example==null" title="${uiLabelMap.CommonStatus}" entity-name="Example">
>             <drop-down allow-empty="false">
>                 <entity-options entity-name="ExampleStatusItem" description="${description}"/>
>             </drop-down>
>         </field>
> -        <field name="statusId" use-when="example!=null" title="${uiLabelMap.CommonStatus}">
> +        <field name="statusId" use-when="example!=null" title="${uiLabelMap.CommonStatus}" entity-name="Example">
>             <drop-down allow-empty="false" current-description="${currentStatus.description}">
>                 <entity-options entity-name="StatusValidChangeToDetail" key-field-name="statusIdTo" description="${transitionName} (${description})">
>                     <entity-constraint name="statusId" env-name="example.statusId"/>

There is a field on the form element that can be used instead of setting these entity names individually

> 
> Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=938844&r1=938843&r2=938844&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java (original)
> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java Wed Apr 28 10:02:57 2010
> @@ -48,6 +48,7 @@ import org.ofbiz.base.util.UtilPropertie
> import org.ofbiz.base.util.UtilValidate;
> import org.ofbiz.base.util.string.FlexibleStringExpander;
> import org.ofbiz.base.util.template.FreeMarkerWorker;
> +import org.ofbiz.entity.Delegator;
> import org.ofbiz.webapp.control.RequestHandler;
> import org.ofbiz.webapp.taglib.ContentUrlTag;
> import org.ofbiz.widget.ModelWidget;
> @@ -1202,11 +1203,23 @@ public class MacroFormRenderer implement
>                     style = requiredStyle;
>                 }
>             }
> +            Delegator delegator = (Delegator)request.getAttribute("delegator");

Should be modelForm.getDelegator();
Ideally the form renderer wouldn't be dependent on an HttpServletRequest object at all

> +            Locale locale = (Locale)context.get("locale");
> +            String entityName = modelFormField.getEntityName();
> +            String fieldName = modelFormField.getFieldName();
> +            String helpText = UtilHelpText.getHelp(entityName, fieldName, delegator, locale);

Retrieving the help text before checking the property?

> +            
> +            String displayHelpText = UtilProperties.getPropertyValue("widget.properties", "widget.form.displayhelpText");
> +            
>             StringWriter sr = new StringWriter();
>             sr.append("<@renderFieldTitle ");
>             sr.append(" style=\"");
>             sr.append(style);
> -            sr.append("\" title=\"");
> +            if ("Y".equals(displayHelpText)) {
> +                sr.append("\" fieldHelpText=\"");
> +                sr.append(FreeMarkerWorker.encodeDoubleQuotes(helpText));
> +            }
> +            sr.append("\" fieldTitle=\"");
>             sr.append(sb.toString());
>             sr.append("\" />");
>             executeMacro(writer, sr.toString());
> 
> Added: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java?rev=938844&view=auto
> ==============================================================================
> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java (added)
> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java Wed Apr 28 10:02:57 2010
> @@ -0,0 +1,56 @@
> +package org.ofbiz.widget.form;
> +
> +import java.util.Locale;
> +
> +import org.ofbiz.base.util.Debug;
> +import org.ofbiz.base.util.UtilProperties;
> +import org.ofbiz.base.util.UtilValidate;
> +import org.ofbiz.entity.Delegator;
> +import org.ofbiz.entity.GenericEntityException;
> +import org.ofbiz.entity.model.ModelEntity;
> +import org.ofbiz.entity.model.ModelReader;
> +
> +/**
> + * Util for working with Help Text
> + */
> +public class UtilHelpText {
> +
> +    public static final String module = UtilHelpText.class.getName();
> +
> +    /**
> +     * Find the help text associated with an entity field.
> +     * 
> +     * @param entityName the entity name
> +     * @param fieldName the field name
> +     * @param delegator the delegator
> +     * @param locale the locale
> +     * @return the help text, or the resource propertyName if no help text exists
> +     */
> +    public static String getHelp(final String entityName, final String fieldName, final Delegator delegator, final Locale locale) {

Bad method name choice

> +
> +        if (UtilValidate.isEmpty(entityName)) {
> +            Debug.logWarning("entityName [" + entityName + "] is empty", module);
> +            return "";
> +        }
> +        if (UtilValidate.isEmpty(fieldName)) {
> +            Debug.logWarning("fieldName [" + fieldName + "] is empty", module);
> +            return "";
> +        }
> +        ModelReader reader = delegator.getModelReader();
> +        ModelEntity entity = null;
> +        try {
> +            if (!reader.getEntityNames().contains(entityName)) {
> +                Debug.logWarning("couldn't find entityName [" + entityName + "]", module);
> +                return "";
> +            }
> +            entity = reader.getModelEntity(entityName);
> +        } catch (GenericEntityException e) {
> +            Debug.logError(e, "Error getting help text for entity=" + entityName + " field " + fieldName, module);
> +            return "";
> +        }
> +        String entityResourceName = entity.getDefaultResourceName();
> +        String messageId = "FieldDescription." + entityName + "." + fieldName;
> +        String fieldDescription = UtilProperties.getMessage(entityResourceName, messageId, locale);
> +        return fieldDescription;
> +    }
> +}
> \ No newline at end of file
> 
> Propchange: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
> ------------------------------------------------------------------------------
>    svn:eol-style = native
> 
> Propchange: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
> ------------------------------------------------------------------------------
>    svn:keywords = Date Rev Author URL Id
> 
> Propchange: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
> ------------------------------------------------------------------------------
>    svn:mime-type = text/plain
> 
> Modified: ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
> URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=938844&r1=938843&r2=938844&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl (original)
> +++ ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Wed Apr 28 10:02:57 2010
> @@ -205,14 +205,20 @@ ${item.description}</span>
> 
> <#macro renderIgnoredField></#macro>
> 
> -<#macro renderFieldTitle style title>
> +<#macro renderFieldTitle style fieldTitle fieldHelpText="">
> +    <#if fieldHelpText?has_content>
> +        <span title="${fieldHelpText}"><#t/>
> +    </#if>
>     <#if style?has_content>
>         <span class="${style}"><#t/>
>     </#if>
> -    ${title}<#t/>
> +    ${fieldTitle}<#t/>
>     <#if style?has_content>
> -        </span><#lt/>
> +        </span><#t/>
>     </#if>
> +    <#if fieldHelpText?has_content>
> +        </span><#t/>
> +    </#if>    
> </#macro>

What about the other macro libraries?