This is an automated email from the ASF dual-hosted git repository.

mleila pushed a commit to branch release24.09
in repository https://gitbox.apache.org/repos/asf/ofbiz-framework.git


The following commit(s) were added to refs/heads/release24.09 by this push:
     new 437a29d327 Fixed: Add missing form-name retrieval for 
auto-parameters-form (OFBIZ-12684)
437a29d327 is described below

commit 437a29d327bfb11e264efa78e4a524f68fa194ff
Author: MLeila <mle...@apache.org>
AuthorDate: Wed Jan 22 16:51:03 2025 +0100

    Fixed: Add missing form-name retrieval for auto-parameters-form 
(OFBIZ-12684)
    
    Although it is defined in the xsd, the form-name parameters is not 
retrieved during the generation or link informations.
    This add the retrieval and update the link when this parameter is used
---
 .../ofbiz/widget/model/CommonWidgetModels.java      | 20 +++++++++++++-------
 .../org/apache/ofbiz/widget/model/ModelForm.java    | 21 +++++++++++++--------
 2 files changed, 26 insertions(+), 15 deletions(-)

diff --git 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/CommonWidgetModels.java
 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/CommonWidgetModels.java
index a399979f6f..7cda0c9ac4 100644
--- 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/CommonWidgetModels.java
+++ 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/CommonWidgetModels.java
@@ -394,14 +394,20 @@ public final class CommonWidgetModels {
             }
             Element autoFormParamsElement = 
UtilXml.firstChildElement(linkElement, "auto-parameters-form");
             if (autoFormParamsElement != null) {
-                Node formElement = autoFormParamsElement;
-                while (formElement != null
-                        && formElement.getLocalName() != "form") {
-                    formElement = formElement.getParentNode();
-                }
-                if (formElement != null && formElement.getLocalName() != null) 
{
-                    parameterList.add(new Parameter("_FORM_NAME_", ((Element) 
formElement).getAttribute("name") + "_AS_PARAM_", false));
+                String formName = null;
+                if (autoFormParamsElement.hasAttribute("form-name") && 
autoFormParamsElement.getAttribute("form-name") != null) {
+                    formName = autoFormParamsElement.getAttribute("form-name");
+                } else {
+                    Node formElement = autoFormParamsElement;
+                    while (formElement != null
+                            && formElement.getLocalName() != "form") {
+                        formElement = formElement.getParentNode();
+                    }
+                    if (formElement != null && formElement.getLocalName() != 
null) {
+                        formName = ((Element) 
formElement).getAttribute("name");
+                    }
                 }
+                parameterList.add(new Parameter("_FORM_NAME_", formName + 
"_AS_PARAM_", false));
             }
             this.parameterList = Collections.unmodifiableList(parameterList);
             Element autoServiceParamsElement = 
UtilXml.firstChildElement(linkElement, "auto-parameters-service");
diff --git 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java
index 6583363cc7..fce71a2dba 100644
--- 
a/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java
+++ 
b/framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java
@@ -2317,15 +2317,20 @@ public abstract class ModelForm extends ModelWidget {
             }
             Element autoFormParamsElement = 
UtilXml.firstChildElement(updateAreaElement, "auto-parameters-form");
             if (autoFormParamsElement != null) {
-                Node formElement = autoFormParamsElement;
-                while (formElement != null
-                        && formElement.getLocalName() != "form") {
-                    formElement = formElement.getParentNode();
-                }
-                if (formElement != null && formElement.getLocalName() != null) 
{
-                    parameterList.add(new 
CommonWidgetModels.Parameter("_FORM_NAME_", ((Element) 
formElement).getAttribute("name") + "_AS_PARAM_",
-                            false));
+                String formName = null;
+                if (autoFormParamsElement.hasAttribute("form-name") && 
autoFormParamsElement.getAttribute("form-name") != null) {
+                    formName = autoFormParamsElement.getAttribute("form-name");
+                } else {
+                    Node formElement = autoFormParamsElement;
+                    while (formElement != null
+                            && formElement.getLocalName() != "form") {
+                        formElement = formElement.getParentNode();
+                    }
+                    if (formElement != null && formElement.getLocalName() != 
null) {
+                        formName = ((Element) 
formElement).getAttribute("name");
+                    }
                 }
+                parameterList.add(new 
CommonWidgetModels.Parameter("_FORM_NAME_", formName + "_AS_PARAM_", false));
             }
             this.parameterList = Collections.unmodifiableList(parameterList);
             Element autoServiceParamsElement = 
UtilXml.firstChildElement(updateAreaElement, "auto-parameters-service");

Reply via email to