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:18:28 UTC

[wicket] branch wicket-8.x updated (56ba547 -> 24c67b3)

This is an automated email from the ASF dual-hosted git repository.

svenmeier pushed a change to branch wicket-8.x
in repository https://gitbox.apache.org/repos/asf/wicket.git.


    from 56ba547  WICKET-6865 check element count before UP or DOWN
     new c6f7afd  WICKET-6871 isLoaded() might be called before rendering
     new 24c67b3  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 wicket-8.x
in repository https://gitbox.apache.org/repos/asf/wicket.git

commit c6f7afda7944be6482a67b84bf31502148b7a9e6
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 4142ff5..0e8be9d 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
@@ -244,7 +244,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 wicket-8.x
in repository https://gitbox.apache.org/repos/asf/wicket.git

commit 24c67b33b383147191ac9a60564da7b01ac2360e
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)
 			{