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 2013/02/16 08:49:29 UTC
svn commit: r1446847 - in /ofbiz/trunk:
applications/product/widget/catalog/ProductForms.xml
framework/widget/src/org/ofbiz/widget/form/ModelForm.java
Author: jleroux
Date: Sat Feb 16 07:49:28 2013
New Revision: 1446847
URL: http://svn.apache.org/r1446847
Log:
A patch from Nicolas Malin for "fieldGroup will ignored if all contains fields are ignored" https://issues.apache.org/jira/browse/OFBIZ-5136
When you have a fieldGroup that contains fields with use-when attribute, if all fields aren't use, the fieldGroup is empty.
Improvment: to not display the field group
Modified:
ofbiz/trunk/applications/product/widget/catalog/ProductForms.xml
ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
Modified: ofbiz/trunk/applications/product/widget/catalog/ProductForms.xml
URL: http://svn.apache.org/viewvc/ofbiz/trunk/applications/product/widget/catalog/ProductForms.xml?rev=1446847&r1=1446846&r2=1446847&view=diff
==============================================================================
--- ofbiz/trunk/applications/product/widget/catalog/ProductForms.xml (original)
+++ ofbiz/trunk/applications/product/widget/catalog/ProductForms.xml Sat Feb 16 07:49:28 2013
@@ -229,17 +229,17 @@ under the License.
<drop-down allow-empty="true"><option key="Y" description="${uiLabelMap.CommonY}"/><option key="N" description="${uiLabelMap.CommonN}"/></drop-down>
</field>
- <field position="1" name="returnable" title="${uiLabelMap.ProductReturnable}">
+ <field position="1" name="returnable" title="${uiLabelMap.ProductReturnable}" use-when="product==null">
<drop-down allow-empty="true"><option key="Y" description="${uiLabelMap.CommonY}"/><option key="N" description="${uiLabelMap.CommonN}"/></drop-down>
</field>
- <field position="2" name="includeInPromotions" title="${uiLabelMap.ProductIncludePromotions}">
+ <field position="2" name="includeInPromotions" title="${uiLabelMap.ProductIncludePromotions}" use-when="product==null">
<drop-down allow-empty="true"><option key="Y" description="${uiLabelMap.CommonY}"/><option key="N" description="${uiLabelMap.CommonN}"/></drop-down>
</field>
- <field position="3" name="taxable" title="${uiLabelMap.ProductTaxable}">
+ <field position="3" name="taxable" title="${uiLabelMap.ProductTaxable}" use-when="product==null">
<drop-down allow-empty="true"><option key="Y" description="${uiLabelMap.CommonY}"/><option key="N" description="${uiLabelMap.CommonN}"/></drop-down>
</field>
- <field position="4" name="autoCreateKeywords" title="${uiLabelMap.ProductAutoCreateKeywords}">
+ <field position="4" name="autoCreateKeywords" title="${uiLabelMap.ProductAutoCreateKeywords}" use-when="product==null">
<drop-down allow-empty="true"><option key="Y" description="${uiLabelMap.CommonY}"/><option key="N" description="${uiLabelMap.CommonN}"/></drop-down>
</field>
@@ -265,7 +265,7 @@ under the License.
<field use-when="product!=null" position="2" name="createdByText" title="${uiLabelMap.CommonCreatedBy}:">
<display description="[${product.createdByUserLogin}] ${uiLabelMap.CommonOn} ${product.createdDate}" also-hidden="false"/>
</field>
- <field name="orderDecimalQuantity" >
+ <field name="orderDecimalQuantity" use-when="product==null">
<drop-down allow-empty="true" ><option key="Y" description="${uiLabelMap.CommonY}"/><option key="N" description="${uiLabelMap.CommonN}"/></drop-down>
</field>
<sort-order>
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=1446847&r1=1446846&r2=1446847&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 Feb 16 07:49:28 2013
@@ -3028,17 +3028,38 @@ public class ModelForm extends ModelWidg
}
public void renderStartString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException {
- if (modelForm.fieldGroupList.size() > 0) {
- formStringRenderer.renderFieldGroupOpen(writer, context, this);
+ if (!modelForm.fieldGroupList.isEmpty()) {
+ if (shouldUse(context)) {
+ formStringRenderer.renderFieldGroupOpen(writer, context, this);
+ }
}
formStringRenderer.renderFormatSingleWrapperOpen(writer, context, modelForm);
}
public void renderEndString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer) throws IOException {
formStringRenderer.renderFormatSingleWrapperClose(writer, context, modelForm);
- if (modelForm.fieldGroupList.size() > 0) {
- formStringRenderer.renderFieldGroupClose(writer, context, this);
+ if (!modelForm.fieldGroupList.isEmpty()) {
+ if (shouldUse(context)) {
+ formStringRenderer.renderFieldGroupClose(writer, context, this);
+ }
+ }
+ }
+
+ public boolean shouldUse(Map<String, Object> context) {
+ for (String fieldName : modelForm.fieldGroupMap.keySet()) {
+ FieldGroupBase group = modelForm.fieldGroupMap.get(fieldName);
+ if (group instanceof FieldGroup) {
+ FieldGroup fieldgroup =(FieldGroup) group;
+ if (this.id.equals(fieldgroup.getId())) {
+ for (ModelFormField modelField : modelForm.fieldList) {
+ if (fieldName.equals(modelField.getName()) && modelField.shouldUse(context)) {
+ return true;
+ }
+ }
+ }
+ }
}
+ return false;
}
}