|
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; } } |
| Free forum by Nabble | Edit this page |
