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)
 			{