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 2015/03/19 15:39:40 UTC

svn commit: r1667777 - in /ofbiz/branches/release12.04/framework/widget: dtd/widget-form.xsd src/org/ofbiz/widget/form/MacroFormRenderer.java src/org/ofbiz/widget/form/ModelFormField.java

Author: jleroux
Date: Thu Mar 19 14:39:40 2015
New Revision: 1667777

URL: http://svn.apache.org/r1667777
Log:
Fixes <<You can't rely on Lookup field description-field-name attribute in a form having skip-start="true">> https://issues.apache.org/jira/browse/OFBIZ-6170

Instead of adding a form-name attribute only in lookup sub-element, I added it a the field level and removed the one at the lookup level.So the form-name field attribute can be used in the field of both the lookup and if needed the field set in the lookup description-field-name attribute. I only tested it in a version more near 13.07 but I believe it's ok here

Modified:
    ofbiz/branches/release12.04/framework/widget/dtd/widget-form.xsd
    ofbiz/branches/release12.04/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
    ofbiz/branches/release12.04/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java

Modified: ofbiz/branches/release12.04/framework/widget/dtd/widget-form.xsd
URL: http://svn.apache.org/viewvc/ofbiz/branches/release12.04/framework/widget/dtd/widget-form.xsd?rev=1667777&r1=1667776&r2=1667777&view=diff
==============================================================================
--- ofbiz/branches/release12.04/framework/widget/dtd/widget-form.xsd (original)
+++ ofbiz/branches/release12.04/framework/widget/dtd/widget-form.xsd Thu Mar 19 14:39:40 2015
@@ -553,6 +553,14 @@ under the License.
                 </xs:documentation>
             </xs:annotation>
         </xs:attribute>
+            <xs:attribute type="xs:string" name="form-name">
+                <xs:annotation>
+                    <xs:documentation>
+                        The name of the parent form, needed at least for lookups when using skip-start="true"
+                        Must be set also on the related field if description-field-name is used 
+                    </xs:documentation>
+                </xs:annotation>
+            </xs:attribute>
     </xs:attributeGroup>
 
   <!-- ================== FIELD TYPES ==================== -->
@@ -1139,13 +1147,6 @@ under the License.
         </xs:attribute>
         <xs:attribute name="confirmation-message" type="xs:string"><xs:annotation><xs:documentation>The message displayed in confirmation box</xs:documentation></xs:annotation></xs:attribute>
     </xs:attributeGroup>
-            <xs:attribute type="xs:string" name="form-name">
-                <xs:annotation>
-                    <xs:documentation>
-                        The name of the parent form, needed when using skip-start="true" along with correct id-name value on field
-                    </xs:documentation>
-                </xs:annotation>
-            </xs:attribute>
     <xs:element name="text" substitutionGroup="AllFields">
         <xs:complexType>
             <xs:sequence>

Modified: ofbiz/branches/release12.04/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release12.04/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=1667777&r1=1667776&r2=1667777&view=diff
==============================================================================
--- ofbiz/branches/release12.04/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java (original)
+++ ofbiz/branches/release12.04/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java Thu Mar 19 14:39:40 2015
@@ -2123,7 +2123,7 @@ public class MacroFormRenderer implement
 
         // add lookup pop-up button
         String descriptionFieldName = lookupField.getDescriptionFieldName();
-        String formName = lookupField.getParentFormName();
+        String formName = modelFormField.getParentFormName();
         if (UtilValidate.isEmpty(formName)) {
             formName = modelFormField.getModelForm().getCurrentFormName(context);
         }

Modified: ofbiz/branches/release12.04/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release12.04/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java?rev=1667777&r1=1667776&r2=1667777&view=diff
==============================================================================
--- ofbiz/branches/release12.04/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java (original)
+++ ofbiz/branches/release12.04/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java Thu Mar 19 14:39:40 2015
@@ -116,6 +116,7 @@ public class ModelFormField {
     protected Boolean sortField = null;
     protected String headerLink;
     protected String headerLinkStyle;
+    protected String parentFormName;
 
     /** On Change Event areas to be updated. */
     protected List<UpdateArea> onChangeUpdateAreas;
@@ -161,6 +162,7 @@ public class ModelFormField {
         this.sortField = fieldElement.hasAttribute("sort-field") ? "true".equals(fieldElement.getAttribute("sort-field")) : null;
         this.headerLink = fieldElement.getAttribute("header-link");
         this.headerLinkStyle = fieldElement.getAttribute("header-link-style");
+        this.parentFormName = fieldElement.getAttribute("form-name");
 
 
         String positionStr = fieldElement.getAttribute("position");
@@ -973,7 +975,12 @@ public class ModelFormField {
 
     public String getIdName() {
         if (UtilValidate.isNotEmpty(idName)) return idName;
-        return this.modelForm.getName() + "_" + this.getFieldName();
+        String parentFormName = this.getParentFormName();
+        if (UtilValidate.isNotEmpty(parentFormName)) {
+            return parentFormName + "_" + this.getFieldName();
+        } else {
+           return this.modelForm.getName() + "_" + this.getFieldName();
+        }
     }
 
     public String getCurrentContainerId(Map<String, Object> context) {
@@ -1260,6 +1267,11 @@ public class ModelFormField {
     }
 
 
+    public String getParentFormName() {
+        return this.parentFormName;
+    }
+
+
     public static abstract class FieldInfo {
 
         public static final int DISPLAY = 1;