You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by sv...@apache.org on 2021/02/25 18:19:54 UTC
[wicket] branch master updated (fa607d2 -> 9b641a3)
This is an automated email from the ASF dual-hosted git repository.
svenmeier pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git.
from fa607d2 Update Mockito and Jetty
new 82e4521 WICKET-6871 isLoaded() might be called before rendering
new 9b641a3 WICKET-6868 ajax submit allow trigger submit on form
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../wicket/ajax/form/AjaxFormSubmitBehavior.java | 26 ++++++++++++++++++++++
.../wicket/ajax/markup/html/form/AjaxButton.java | 17 ++++++++++++++
.../ajax/markup/html/form/AjaxFallbackButton.java | 17 ++++++++++++++
.../examples/ajax/builtin/FileUploadPage.java | 9 ++++++++
.../ajax/markup/html/AjaxLazyLoadPanel.java | 3 ++-
5 files changed, 71 insertions(+), 1 deletion(-)
[wicket] 01/02: WICKET-6871 isLoaded() might be called before
rendering
Posted by sv...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
svenmeier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git
commit 82e4521fd3543ac65f8212c4f9171c02d570d95a
Author: Sven Meier <sv...@apache.org>
AuthorDate: Thu Feb 25 18:37:35 2021 +0100
WICKET-6871 isLoaded() might be called before rendering
on nested lazy panels
---
.../apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java
index ff715aa..c0eeadb 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/AjaxLazyLoadPanel.java
@@ -211,7 +211,8 @@ public abstract class AjaxLazyLoadPanel<T extends Component> extends Panel
T content = getLazyLoadComponent(CONTENT_ID);
// replace the loading component with the new component
- AjaxLazyLoadPanel.this.replace(content);
+ // note: use addOrReplace(), since onConfigure() might not have been called yet
+ AjaxLazyLoadPanel.this.addOrReplace(content);
Optional<AjaxRequestTarget> target = getRequestCycle().find(AjaxRequestTarget.class);
[wicket] 02/02: WICKET-6868 ajax submit allow trigger submit on form
Posted by sv...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
svenmeier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/wicket.git
commit 9b641a35a4827281d8863d8e0693de225f49bf64
Author: Sven Meier <sv...@apache.org>
AuthorDate: Sat Feb 20 00:47:34 2021 +0100
WICKET-6868 ajax submit allow trigger submit on form
---
.../wicket/ajax/form/AjaxFormSubmitBehavior.java | 26 ++++++++++++++++++++++
.../wicket/ajax/markup/html/form/AjaxButton.java | 17 ++++++++++++++
.../ajax/markup/html/form/AjaxFallbackButton.java | 17 ++++++++++++++
.../examples/ajax/builtin/FileUploadPage.java | 9 ++++++++
4 files changed, 69 insertions(+)
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
index 0caca83..23137b1 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
@@ -19,6 +19,7 @@ package org.apache.wicket.ajax.form;
import org.apache.wicket.Component;
import org.apache.wicket.ajax.AjaxEventBehavior;
import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.ajax.attributes.AjaxCallListener;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes;
import org.apache.wicket.ajax.attributes.AjaxRequestAttributes.Method;
import org.apache.wicket.markup.html.form.Button;
@@ -139,6 +140,17 @@ public abstract class AjaxFormSubmitBehavior extends AjaxEventBehavior
}
}
+ /**
+ * Controls whether or not a JS <code>submit</code> should be triggered on the submitting form.
+ * False by default.
+ *
+ * @return true if <code>submit</code> should be triggered, false otherwise
+ */
+ protected boolean shouldTriggerJavaScriptSubmitEvent()
+ {
+ return false;
+ }
+
@Override
protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
{
@@ -165,6 +177,20 @@ public abstract class AjaxFormSubmitBehavior extends AjaxEventBehavior
String submittingComponentName = submittingComponent.getInputName();
attributes.setSubmittingComponentName(submittingComponentName);
}
+
+ if (shouldTriggerJavaScriptSubmitEvent()) {
+ attributes.getAjaxCallListeners().add(new AjaxCallListener() {
+ @Override
+ public CharSequence getPrecondition(Component component)
+ {
+ return String.format("var p, f = jQuery('#%s'), fn = function(e) { p = e.isDefaultPrevented(); e.preventDefault(); };" //
+ + "f.on('submit',fn);" //
+ + "f.trigger('submit');" //
+ + "f.off('submit',fn);" //
+ + "return !p;", form.getMarkupId());
+ }
+ });
+ }
}
@Override
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxButton.java b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxButton.java
index b0b5139..1f460ac 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxButton.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxButton.java
@@ -135,6 +135,12 @@ public abstract class AjaxButton extends Button
AjaxButton.this.updateAjaxAttributes(attributes);
}
+
+ @Override
+ protected boolean shouldTriggerJavaScriptSubmitEvent()
+ {
+ return AjaxButton.this.shouldTriggerJavaScriptSubmitEvent();
+ }
@Override
public boolean getDefaultProcessing()
@@ -150,6 +156,17 @@ public abstract class AjaxButton extends Button
};
}
+ /**
+ * Controls whether or not a JS <code>submit</code> should be triggered on the submitting form.
+ * False by default.
+ *
+ * @return true if <code>submit</code> should be triggered, false otherwise
+ */
+ protected boolean shouldTriggerJavaScriptSubmitEvent()
+ {
+ return false;
+ }
+
protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
{
}
diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java
index 03ca2a2..62627ff 100644
--- a/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java
+++ b/wicket-core/src/main/java/org/apache/wicket/ajax/markup/html/form/AjaxFallbackButton.java
@@ -116,9 +116,26 @@ public abstract class AjaxFallbackButton extends Button
{
return AjaxFallbackButton.this.getStatelessHint();
}
+
+ @Override
+ protected boolean shouldTriggerJavaScriptSubmitEvent()
+ {
+ return AjaxFallbackButton.this.shouldTriggerJavaScriptSubmitEvent();
+ }
};
}
+ /**
+ * Controls whether or not a JS <code>submit</code> should be triggered on the submitting form.
+ * False by default.
+ *
+ * @return true if <code>submit</code> should be triggered, false otherwise
+ */
+ protected boolean shouldTriggerJavaScriptSubmitEvent()
+ {
+ return false;
+ }
+
protected void updateAjaxAttributes(AjaxRequestAttributes attributes)
{
}
diff --git a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
index 598efee..c7f25fb 100644
--- a/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
+++ b/wicket-examples/src/main/java/org/apache/wicket/examples/ajax/builtin/FileUploadPage.java
@@ -98,6 +98,15 @@ public class FileUploadPage extends BasePage
{
private static final long serialVersionUID = 1L;
+ /**
+ * Need to trigger submit to initiate progressbar.
+ */
+ @Override
+ protected boolean shouldTriggerJavaScriptSubmitEvent()
+ {
+ return true;
+ }
+
@Override
protected void onSubmit(AjaxRequestTarget target)
{