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");