On 6/20/2011 1:52 PM, Bilgin Ibryam wrote:
Adrian,
On Mon, Jun 20, 2011 at 11:32 AM, Adrian Crum<
[email protected]> wrote:
Are you serious? That macro has the exact same parameters and they aren't
documented either. Actually, all that macro does is call the
renderLookupField macro, so I don't understand why it's even there.
htmlTemplate.lookupField is there(I created it during ajax lookup
implementation) to set some default values, otherwise you I had to call
renderLookupField from other FTLs with 30 attributes.
BUT I agree with you that it duplicates the code, could get easily
outdated...
I think default values should be set only in one place, preferably from
renderLookupField macro itselft but not from MacroFormRenderer.java and
htmlTemplate.ftl
Cool. That is what I'm working toward. If we can agree on the parameters
and their types, then we can supply defaults in the macro. Tah dah!
Problem solved.
Bilgin
I would prefer to use the same macro the widgets use for one very good
reason that is made obvious in this commit: Those macros will be maintained,
while the htmlTemplate macros will not.
-Adrian
On 6/20/2011 10:46 AM, Jacques Le Roux wrote:
Hi Adrian,
Why not using<@htmlTemplate.lookupField ? There are plenty of examples
HTH
Jacques
Adrian Crum wrote:
Jacques,
Coincidentally, I am trying to use the renderLookupField macro in a
Freemarker template. Do you have any idea what all of the macro
parameters are for? I am having a difficult time sorting out what
arguments to pass to get it to work.
-Adrian
On 6/19/2011 9:59 PM, [email protected] wrote:
Author: jleroux
Date: Sun Jun 19 20:59:35 2011
New Revision: 1137433
URL:
http://svn.apache.org/viewvc?**rev=1137433&view=rev<http://svn.apache.org/viewvc?rev=1137433&view=rev>
Log:
A patch from Leon<<"setUserPreference" goes to main page instead last
view if current form includes any lookup field>>
https://issues.apache.org/**jira/browse/OFBIZ-4313<https://issues.apache.org/jira/browse/OFBIZ-4313>When
I open a form which include lookup field and then click the
expand/collapse button around the upper right corner in the the
header, the page will go to "main" after user preference is settled. The
cause is the requests initiated by lookup field does not remember the last
view name. It simply use "main" instead.
Patch to make lookup requests remember the LAST_VIEW_NAME correctly.
Modified:
ofbiz/trunk/framework/widget/**src/org/ofbiz/widget/form/**
MacroFormRenderer.java
ofbiz/trunk/framework/widget/**templates/**htmlFormMacroLibrary.ftl
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=**
1137433&r1=1137432&r2=1137433&**view=diff<http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=1137433&r1=1137432&r2=1137433&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
Sun Jun 19 20:59:35 2011 @@ -2149,6 +2149,14 @@
public class MacroFormRenderer implement boolean showDescription =
"Y".equals(UtilProperties.**getPropertyValue("widget", "widget.lookup.*
*showDescription", "N"));
+ // lastViewName, used by lookup to remember the real last view
name
+ String lastViewName = request.getParameter("_LAST_**VIEW_NAME_");
// Try to get it from parameters firstly
+ if (UtilValidate.isEmpty(**lastViewName)) { // get from
session
+ lastViewName = (String) request.getSession().**
getAttribute("_LAST_VIEW_NAME_**");
+ }
+ if (UtilValidate.isEmpty(**lastViewName)) {
+ lastViewName = "";
+ }
StringWriter sr = new StringWriter();
sr.append("<@renderLookupField ");
sr.append(" className=\"");
@@ -2208,6 +2216,8 @@ public class MacroFormRenderer implement
sr.append(Boolean.toString(**showDescription));
sr.append("\" initiallyCollapsed=\"");
sr.append(Boolean.toString(**isInitiallyCollapsed));
+ sr.append("\" lastViewName=\"");
+ sr.append(lastViewName);
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=**
1137433&r1=1137432&r2=1137433&**view=diff<http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=1137433&r1=1137432&r2=1137433&view=diff>
==============================**==============================**==================
---
ofbiz/trunk/framework/widget/**templates/**htmlFormMacroLibrary.ftl
(original) +++
ofbiz/trunk/framework/widget/**templates/**htmlFormMacroLibrary.ftl Sun
Jun 19 20:59:35 2011 @@ -543,7 +543,7 @@
${item.description}</span> </#if>
</#macro>
-<#macro renderLookupField className alert name value size maxlength id
event action readonly autocomplete descriptionFieldName
formName fieldFormName targetParameterIter imgSrc ajaxUrl ajaxEnabled
presentation width height position fadeBackground
clearText showDescription initiallyCollapsed> +<#macro
renderLookupField className alert name value size maxlength id event
action readonly autocomplete descriptionFieldName formName
fieldFormName targetParameterIter imgSrc ajaxUrl ajaxEnabled
presentation width height position fadeBackground clearText
showDescription initiallyCollapsed lastViewName="main"> <#if
ajaxEnabled?has_content&& ajaxEnabled> <script type="text/javascript">
jQuery(document).ready(**function(){ @@ -575,11 +575,7 @@
${item.description}</span> <#if ajaxEnabled?has_content&&
ajaxEnabled>
<#assign defaultMinLength = Static["org.ofbiz.base.util.**
UtilProperties"].**getPropertyValue("widget.**properties",
"widget.autocompleter.**defaultMinLength")> <#assign
defaultDelay =
Static["org.ofbiz.base.util.**UtilProperties"].**
getPropertyValue("widget.**properties", "widget.autocompleter.**defaultDelay")>
-<#if parameters?has_content&& parameters._LAST_VIEW_NAME_?**
has_content>
-<#local ajaxUrl = ajaxUrl + "&_LAST_VIEW_NAME_=" +
parameters._LAST_VIEW_NAME_ />
-<#else>
-<#local ajaxUrl = ajaxUrl + "&_LAST_VIEW_NAME_=main"/>
-</#if>
+<#local ajaxUrl = ajaxUrl + "&_LAST_VIEW_NAME_=" + lastViewName />
<#if !ajaxUrl?contains("**searchValueFieldName=")>
<#if descriptionFieldName?has_**content&& showDescription == "true">
<#local ajaxUrl = ajaxUrl + "&searchValueFieldName=" +
descriptionFieldName />
@@ -611,10 +607,8 @@ ${item.description}</span>
<#if readonly?has_content&& readonly><a id="${id}_clear"
style="background:none;margin-**left:5px;margin-right:15px;"
class="clearField" href="javascript:void();"
onclick="javascript:document.$**{formName}.${name}.value='';<#**if
descriptionFieldName?has_**content>document.${formName}.$**
{descriptionFieldName}.value='**';</#if>">${clearText}</a></#**if>
</span>
<#if ajaxEnabled?has_content&& ajaxEnabled> -<#if
parameters?has_content&& parameters._LAST_VIEW_NAME_?**has_content&&
ajaxUrl?index_of("_LAST_VIEW_**NAME_")< 0>
-<#local ajaxUrl = ajaxUrl + "&_LAST_VIEW_NAME_=" +
parameters._LAST_VIEW_NAME_ />
-<#elseif ajaxUrl?index_of("_LAST_VIEW_**NAME_")< 0>
-<#local ajaxUrl = ajaxUrl + "&_LAST_VIEW_NAME_=main"/>
+<#if ajaxUrl?index_of("_LAST_VIEW_**NAME_")< 0>
+<#local ajaxUrl = ajaxUrl + "&_LAST_VIEW_NAME_=" + lastViewName />
</#if>
<script language="JavaScript" type="text/javascript">**
ajaxAutoCompleter('${ajaxUrl}'**, ${showDescription},
${defaultMinLength!2}, ${defaultDelay!300});</script>**<#t/> </#if>