[
https://issues.apache.org/jira/browse/WICKET-7141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18023007#comment-18023007
]
ASF GitHub Bot commented on WICKET-7141:
----------------------------------------
martin-g commented on code in PR #1087:
URL: https://github.com/apache/wicket/pull/1087#discussion_r2380941692
##########
wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java:
##########
@@ -1288,15 +1292,66 @@ protected void
addDefaultSubmitButtonHandler(IHeaderResponse headerResponse)
headerResponse.render(OnEventHeaderItem.forMarkupId(getMarkupId(), "keypress",
script.toString()));
}
+
Review Comment:
```suggestion
```
##########
wicket-core-tests/src/test/java/org/apache/wicket/markup/html/form/FormVisitTest.java:
##########
@@ -355,6 +393,32 @@ public void updateFormComponentModelsInPostorder()
assertTrue(page.innerField.updateModelOrder <
page.outerField.updateModelOrder);
}
+ @Test
+ public void callInnerFormOnAfterUpdateFormComponentModels()
+ {
+ tester.newFormTester("outerForm").submit();
+
+
assertTrue(page.innerForm.onAfterUpdateFormComponentModelsCalled);
+ }
+
+ @Test
+ public void dontCallInnerFormOnAfterUpdateFormComponentModels()
+ {
+ page.innerForm.wantSubmitOnParentFormSubmit = false;
+ tester.newFormTester("outerForm").submit();
+
+
assertFalse(page.innerForm.onAfterUpdateFormComponentModelsCalled);
+ }
+
+ @Test
+ public void callFormOnAfterUpdateFormComponentModelsInPostorder()
Review Comment:
```suggestion
public void callFormOnAfterUpdateFormComponentModelsInPostOrder()
```
##########
wicket-core-tests/src/test/java/org/apache/wicket/markup/html/form/FormVisitTest.java:
##########
@@ -329,6 +341,32 @@ public void validateFormComponentsInPostorder()
assertTrue(page.innerField.onValidCallOrder <
page.outerField.onValidCallOrder);
}
+
+ @Test
+ public void callInnerFormOnBeforeUpdateFormComponentModels()
+ {
+ tester.newFormTester("outerForm").submit();
+
+
assertTrue(page.innerForm.onBeforeUpdateFormComponentModelsCalled);
+ }
+
+ @Test
+ public void dontCallInnerFormOnBeforeUpdateFormComponentModels()
+ {
+ page.innerForm.wantSubmitOnParentFormSubmit = false;
+ tester.newFormTester("outerForm").submit();
+
+
assertFalse(page.innerForm.onBeforeUpdateFormComponentModelsCalled);
+ }
+
+ @Test
+ public void callFormOnBeforeUpdateFormComponentModelsInPostorder()
Review Comment:
```suggestion
public void callFormOnBeforeUpdateFormComponentModelsInPostOrder()
```
> Add hook method afterUpdateFormComponentModels() in Form process
> ----------------------------------------------------------------
>
> Key: WICKET-7141
> URL: https://issues.apache.org/jira/browse/WICKET-7141
> Project: Wicket
> Issue Type: Improvement
> Components: wicket-core
> Affects Versions: 10.3.0
> Reporter: Florian Lacreuse
> Priority: Minor
> Labels: form
> Attachments: form-process-hook.patch
>
>
> In my team, we need to be able to do specific actions once the update form
> component models phase is complete, at the parent form level.
> The process form algorithm provides a hook method
> {{beforeUpdateFormComponentModels()}} but it's way too early.
> Until Wicket 10.2.0 (included), we get around the problem by overriding the
> {{onValidateModelObjects()}} from the parent form.
> However since Wicket 10.3.0 and WICKET-3899, this small hack no longer works
> due to new postorder processing (nested forms come first).
> Anyway, we think this "after" hook method can be useful for many reasons,
> just like the "before" one.
> What do you think?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)