Hi Nicolas, if I am not wrong when we modify the attributes set by MacroFormRenderer we need to modify the macros in all the *FormMacroLibrary.ftl, even if some of them don't need and can actually ignore the passed-in values.
Cheers, Jacopo On Jun 4, 2015, at 10:56 PM, nma...@apache.org wrote: > Author: nmalin > Date: Thu Jun 4 20:55:59 2015 > New Revision: 1683642 > > URL: http://svn.apache.org/r1683642 > Log: > Form widget hyperlink.id attribute isn't supported by MacroFormRenderer.java > (OFBIZ-6403) thanks christian carlow for this issue > > Modified: > ofbiz/trunk/framework/widget/dtd/widget-common.xsd > > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java > ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl > > Modified: ofbiz/trunk/framework/widget/dtd/widget-common.xsd > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-common.xsd?rev=1683642&r1=1683641&r2=1683642&view=diff > ============================================================================== > --- ofbiz/trunk/framework/widget/dtd/widget-common.xsd (original) > +++ ofbiz/trunk/framework/widget/dtd/widget-common.xsd Thu Jun 4 20:55:59 > 2015 > @@ -583,7 +583,13 @@ under the License. > <xs:element minOccurs="0" name="image" type="image" /> > </xs:sequence> > <xs:attribute type="xs:string" name="text" /> > - <xs:attribute type="xs:string" name="id" /> > + <xs:attribute type="xs:string" name="id" > > + <xs:annotation> > + <xs:documentation> > + If you use id for link present in list form or multi > form, you can use ${itemIndex} to generate an unique id by line. > + </xs:documentation> > + </xs:annotation> > + </xs:attribute> > <xs:attribute type="xs:string" name="style" /> > <xs:attribute type="xs:string" name="name" /> > <xs:attribute type="xs:string" name="title" /> > > Modified: > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java?rev=1683642&r1=1683641&r2=1683642&view=diff > ============================================================================== > --- > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java > (original) > +++ > ofbiz/trunk/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java > Thu Jun 4 20:55:59 2015 > @@ -311,6 +311,7 @@ public final class MacroFormRenderer imp > this.request.setAttribute("alternate", encodedAlternate); > this.request.setAttribute("imageTitle", encodedImageTitle); > this.request.setAttribute("descriptionSize", > hyperlinkField.getSize()); > + this.request.setAttribute("id", hyperlinkField.getId(context)); > makeHyperlinkByType(writer, hyperlinkField.getLinkType(), > modelFormField.getWidgetStyle(), hyperlinkField.getUrlMode(), > hyperlinkField.getTarget(context), hyperlinkField.getParameterMap(context), > hyperlinkField.getDescription(context), > hyperlinkField.getTargetWindow(context), > hyperlinkField.getConfirmation(context), modelFormField, > this.request, this.response, context); > this.appendTooltip(writer, context, modelFormField); > @@ -3073,6 +3074,7 @@ public final class MacroFormRenderer imp > String action = ""; > String imgSrc = ""; > String alt = ""; > + String id = ""; > String imgTitle = ""; > String hiddenFormName = > WidgetWorker.makeLinkHiddenFormName(context, modelFormField); > if (UtilValidate.isNotEmpty(modelFormField.getEvent()) && > UtilValidate.isNotEmpty(modelFormField.getAction(context))) { > @@ -3099,6 +3101,9 @@ public final class MacroFormRenderer imp > if (UtilValidate.isEmpty(imgTitle)) { > imgTitle = modelFormField.getTitle(context); > } > + if (UtilValidate.isNotEmpty(request.getAttribute("id"))) { > + id = request.getAttribute("id").toString(); > + } > StringWriter sr = new StringWriter(); > sr.append("<@makeHyperlinkString "); > sr.append("linkStyle=\""); > @@ -3123,6 +3128,8 @@ public final class MacroFormRenderer imp > sr.append(description); > sr.append("\" confirmation =\""); > sr.append(confirmation); > + sr.append("\" id=\""); > + sr.append(id); > sr.append("\" />"); > executeMacro(writer, sr.toString()); > } > > Modified: ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl > URL: > http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=1683642&r1=1683641&r2=1683642&view=diff > ============================================================================== > --- ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl (original) > +++ ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Thu Jun > 4 20:55:59 2015 > @@ -849,11 +849,12 @@ Parameter: tabindex, String, optional - > <#if confirmation?has_content> onclick="return > confirm('${confirmation?js_string}')"</#if>> > <#if imgSrc?has_content><img src="${imgSrc}" > alt=""/></#if>${description}</a> > </#macro> > -<#macro makeHyperlinkString linkStyle hiddenFormName event action imgSrc > title alternate linkUrl targetWindow description confirmation> > +<#macro makeHyperlinkString linkStyle hiddenFormName event action imgSrc > title alternate linkUrl targetWindow description confirmation id> > <a <#if linkStyle?has_content>class="${linkStyle}"</#if> > href="${linkUrl}"<#if targetWindow?has_content> > target="${targetWindow}"</#if> > <#if action?has_content && event?has_content> ${event}="${action}"</#if> > <#if confirmation?has_content> onclick="return > confirm('${confirmation?js_string}')"</#if> > + <#if id?has_content> id="${id}"</#if> > <#if imgSrc?length == 0 && title?has_content> title="${title}"</#if>> > <#if imgSrc?has_content><img src="${imgSrc}" alt="${alternate}" > title="${title}"/></#if>${description}</a> > </#macro> > >