You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by ah...@apache.org on 2025/01/21 06:37:18 UTC
(causeway) branch main updated: CAUSEWAY-3851: Wicket textarea hotfix (to be removed with Wicket 10.4.0)
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/causeway.git
The following commit(s) were added to refs/heads/main by this push:
new fc700d7d94f CAUSEWAY-3851: Wicket textarea hotfix (to be removed with Wicket 10.4.0)
fc700d7d94f is described below
commit fc700d7d94fbb405789a2a2a646f7f1cb3e58f8a
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jan 21 07:37:14 2025 +0100
CAUSEWAY-3851: Wicket textarea hotfix (to be removed with Wicket 10.4.0)
---
bom/pom.xml | 4 ++-
.../viewer/wicket/ui/panels/FormAbstract.java | 30 ++++++++++++++++++++++
2 files changed, 33 insertions(+), 1 deletion(-)
diff --git a/bom/pom.xml b/bom/pom.xml
index c1481e1db45..3b445542722 100644
--- a/bom/pom.xml
+++ b/bom/pom.xml
@@ -192,7 +192,9 @@ identified
module-path for testing, that is, put everything on the class-path -->
<swagger-core.version>2.2.28</swagger-core.version>
- <wicket.version>10.2.0</wicket.version>
+ <wicket.version>10.3.0</wicket.version> <!-- remove method
+ org.apache.causeway.viewer.wicket.ui.panels.FormAbstract.addDefaultSubmitButtonHandler(IHeaderResponse)
+ once Wicket 10.4.0 is available -->
<wicket-bootstrap.version>7.0.9</wicket-bootstrap.version> <!--
de.agilecoders.wicket:wicket-bootstrap... -->
<wicket-webjars.version>4.0.6</wicket-webjars.version> <!--
diff --git a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/FormAbstract.java b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/FormAbstract.java
index 65f817b2dcb..1ef081c2d49 100644
--- a/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/FormAbstract.java
+++ b/viewers/wicket/ui/src/main/java/org/apache/causeway/viewer/wicket/ui/panels/FormAbstract.java
@@ -18,8 +18,12 @@
*/
package org.apache.causeway.viewer.wicket.ui.panels;
+import org.apache.wicket.Component;
+import org.apache.wicket.markup.head.IHeaderResponse;
+import org.apache.wicket.markup.head.OnEventHeaderItem;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.util.string.AppendingStringBuffer;
import org.apache.causeway.viewer.wicket.model.models.HasCommonContext;
import org.apache.causeway.viewer.wicket.ui.app.registry.ComponentFactoryRegistry;
@@ -43,6 +47,32 @@ protected FormAbstract(final String id, final IModel<T> model) {
super(id, model);
}
+ // -- WICKET 10.3.0 BUG
+
+ // see https://github.com/apache/wicket/pull/1076/files#top
+ @Deprecated // remove once Wicket 10.4.0 is available
+ @Override
+ protected void addDefaultSubmitButtonHandler(IHeaderResponse headerResponse) {
+ final Component component = (Component) super.getDefaultButton();
+ String submitId = component.getMarkupId();
+
+ AppendingStringBuffer script = new AppendingStringBuffer();
+ script.append("if (event.target.tagName.toLowerCase() !== 'input' || event.which != 13) return;");
+ script.append("var b = document.getElementById('" + submitId + "');");
+ script.append("if (window.getComputedStyle(b).visibility === 'hidden') return;");
+ script.append("event.stopPropagation();");
+ script.append("event.preventDefault();");
+ script.append("if (b != null && b.onclick != null && typeof (b.onclick) != 'undefined') {");
+ script.append("var r = Wicket.bind(b.onclick, b)();");
+ script.append("if (r != false) b.click();");
+ script.append("} else {");
+ script.append("b.click();");
+ script.append("}");
+ script.append("return false;");
+
+ headerResponse.render(OnEventHeaderItem.forMarkupId(getMarkupId(), "keypress", script.toString()));
+ }
+
// -- DEPENDENCIES
private transient ComponentFactoryRegistry componentFactoryRegistry;