Skip to content

Commit 437a29d

Browse files
committed
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
1 parent 333b33b commit 437a29d

File tree

2 files changed

+26
-15
lines changed

2 files changed

+26
-15
lines changed

framework/widget/src/main/java/org/apache/ofbiz/widget/model/CommonWidgetModels.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -394,14 +394,20 @@ public Link(Element linkElement) {
394394
}
395395
Element autoFormParamsElement = UtilXml.firstChildElement(linkElement, "auto-parameters-form");
396396
if (autoFormParamsElement != null) {
397-
Node formElement = autoFormParamsElement;
398-
while (formElement != null
399-
&& formElement.getLocalName() != "form") {
400-
formElement = formElement.getParentNode();
401-
}
402-
if (formElement != null && formElement.getLocalName() != null) {
403-
parameterList.add(new Parameter("_FORM_NAME_", ((Element) formElement).getAttribute("name") + "_AS_PARAM_", false));
397+
String formName = null;
398+
if (autoFormParamsElement.hasAttribute("form-name") && autoFormParamsElement.getAttribute("form-name") != null) {
399+
formName = autoFormParamsElement.getAttribute("form-name");
400+
} else {
401+
Node formElement = autoFormParamsElement;
402+
while (formElement != null
403+
&& formElement.getLocalName() != "form") {
404+
formElement = formElement.getParentNode();
405+
}
406+
if (formElement != null && formElement.getLocalName() != null) {
407+
formName = ((Element) formElement).getAttribute("name");
408+
}
404409
}
410+
parameterList.add(new Parameter("_FORM_NAME_", formName + "_AS_PARAM_", false));
405411
}
406412
this.parameterList = Collections.unmodifiableList(parameterList);
407413
Element autoServiceParamsElement = UtilXml.firstChildElement(linkElement, "auto-parameters-service");

framework/widget/src/main/java/org/apache/ofbiz/widget/model/ModelForm.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2317,15 +2317,20 @@ public UpdateArea(Element updateAreaElement, String defaultServiceName, String d
23172317
}
23182318
Element autoFormParamsElement = UtilXml.firstChildElement(updateAreaElement, "auto-parameters-form");
23192319
if (autoFormParamsElement != null) {
2320-
Node formElement = autoFormParamsElement;
2321-
while (formElement != null
2322-
&& formElement.getLocalName() != "form") {
2323-
formElement = formElement.getParentNode();
2324-
}
2325-
if (formElement != null && formElement.getLocalName() != null) {
2326-
parameterList.add(new CommonWidgetModels.Parameter("_FORM_NAME_", ((Element) formElement).getAttribute("name") + "_AS_PARAM_",
2327-
false));
2320+
String formName = null;
2321+
if (autoFormParamsElement.hasAttribute("form-name") && autoFormParamsElement.getAttribute("form-name") != null) {
2322+
formName = autoFormParamsElement.getAttribute("form-name");
2323+
} else {
2324+
Node formElement = autoFormParamsElement;
2325+
while (formElement != null
2326+
&& formElement.getLocalName() != "form") {
2327+
formElement = formElement.getParentNode();
2328+
}
2329+
if (formElement != null && formElement.getLocalName() != null) {
2330+
formName = ((Element) formElement).getAttribute("name");
2331+
}
23282332
}
2333+
parameterList.add(new CommonWidgetModels.Parameter("_FORM_NAME_", formName + "_AS_PARAM_", false));
23292334
}
23302335
this.parameterList = Collections.unmodifiableList(parameterList);
23312336
Element autoServiceParamsElement = UtilXml.firstChildElement(updateAreaElement, "auto-parameters-service");

0 commit comments

Comments
 (0)