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 1fa6116c80 Fixed: Add missing control to allow callback propagation (OFBIZ-12664) 1fa6116c80 is described below commit 1fa6116c80139d8d013c94cdfed9bcdb484d49d4 Author: MLeila <mle...@apache.org> AuthorDate: Thu Feb 6 17:08:44 2025 +0100 Fixed: Add missing control to allow callback propagation (OFBIZ-12664) Fix the propagation of the callback: currently the callback is applied even though we have a propagatecallback option. Manage the case "update-area on click" --- .../ofbiz/widget/renderer/macro/MacroFormRenderer.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java index fc1b87b818..608ff841a4 100644 --- a/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java +++ b/framework/widget/src/main/java/org/apache/ofbiz/widget/renderer/macro/MacroFormRenderer.java @@ -464,20 +464,28 @@ public final class MacroFormRenderer implements FormStringRenderer { } } String formId = FormRenderer.getCurrentContainerId(modelForm, context); - List<ModelForm.UpdateArea> updateAreas = modelForm.getOnSubmitUpdateAreas(); + List<ModelForm.UpdateArea> updateAreas = new LinkedList<>(); + List<ModelForm.UpdateArea> onSubmitUpdateAreas = modelForm.getOnSubmitUpdateAreas(); + if (UtilValidate.isNotEmpty(onSubmitUpdateAreas)) { + updateAreas.addAll(onSubmitUpdateAreas); + } + + // Retrieve on click event for submit field + List<ModelForm.UpdateArea> onClickUpdateAreas = modelFormField.getOnClickUpdateAreas(); + if (UtilValidate.isNotEmpty(onClickUpdateAreas)) { + updateAreas.addAll(onClickUpdateAreas); + } + // This is here for backwards compatibility. Use on-event-update-area // elements instead. String backgroundSubmitRefreshTarget = submitField.getBackgroundSubmitRefreshTarget(context); ModelForm.UpdateArea jwtCallback = ModelForm.UpdateArea.fromJwtToken(context); if (UtilValidate.isNotEmpty(backgroundSubmitRefreshTarget)) { - if (updateAreas == null) { - updateAreas = new LinkedList<>(); - } updateAreas.add(new ModelForm.UpdateArea("submit", formId, backgroundSubmitRefreshTarget)); } // In context a callback is present and no other update area to call after the submit, so trigger it. - if (UtilValidate.isEmpty(updateAreas) && jwtCallback != null) { + if (UtilValidate.isEmpty(updateAreas) && jwtCallback != null && !submitField.getPropagateCallback()) { updateAreas = UtilMisc.toList(jwtCallback); } boolean ajaxEnabled = UtilValidate.isNotEmpty(updateAreas) && this.javaScriptEnabled;