Author: jleroux
Date: Sat Mar  1 12:15:33 2014
New Revision: 1573161

URL: http://svn.apache.org/r1573161
Log:
A patch from Leila Mekika for "Problems in single form when use-when and 
position are used together" https://issues.apache.org/jira/browse/OFBIZ-5552

The service "renderSingleFormString" check the previous field position to see 
if the current field must be displayed after the previous field or on a new 
line. 

When the previous field has a use-when condition that is not valid, it remains 
as the currentFormField and the next field is compared with this "not rendered" 
field. If the position of this previous field is the same as the current field, 
the current is displayed on the next line.


To reproduce, add in a single form the three fields below :

<field position="1" name="first"><display description="first"/></field>
<field position="2" name="second" use-when="true"><display 
description="second"/></field>
<field position="2" name="second" use-when="false"><display 
description="second"/></field>

The field second is rendered on a new line

Modified:
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java?rev=1573161&r1=1573160&r2=1573161&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java 
(original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java Sat 
Mar  1 12:15:33 2014
@@ -1062,6 +1062,7 @@ public class ModelForm extends ModelWidg
             }
             //Debug.logInfo("In single form evaluating use-when for field " + 
currentFormField.getName() + ": " + currentFormField.getUseWhen(), module);
             if (!currentFormField.shouldUse(context)) {
+                currentFormField = lastFormField;
                 continue;
             }
             alreadyRendered.add(currentFormField.getName());


Reply via email to