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

reiern70 pushed a commit to branch reiern70/WICKET-7033
in repository https://gitbox.apache.org/repos/asf/wicket.git


The following commit(s) were added to refs/heads/reiern70/WICKET-7033 by this 
push:
     new ccb31a5bf3 [WICKET-7033] WIP
ccb31a5bf3 is described below

commit ccb31a5bf3d35d79e4ae0a45e353fee0cd106676
Author: reiern70 <[email protected]>
AuthorDate: Sat Apr 8 09:52:06 2023 +0300

    [WICKET-7033] WIP
---
 .../wicket/examples/upload/UploadToResourcePage.java       | 10 +++++++++-
 .../ajax/markup/html/form/upload/UploadProgressBar.java    | 14 ++++++++++++--
 .../extensions/ajax/markup/html/form/upload/progressbar.js |  6 +++++-
 3 files changed, 26 insertions(+), 4 deletions(-)

diff --git 
a/wicket-examples/src/main/java/org/apache/wicket/examples/upload/UploadToResourcePage.java
 
b/wicket-examples/src/main/java/org/apache/wicket/examples/upload/UploadToResourcePage.java
index 17f5c7cba4..70fc4c997d 100644
--- 
a/wicket-examples/src/main/java/org/apache/wicket/examples/upload/UploadToResourcePage.java
+++ 
b/wicket-examples/src/main/java/org/apache/wicket/examples/upload/UploadToResourcePage.java
@@ -97,7 +97,15 @@ public class UploadToResourcePage extends WicketExamplePage
                };
                add(singleFileUploadToResourceField);
 
-               final UploadProgressBar uploadProgressBar = new 
UploadProgressBar("progress", singleFileUploadToResourceField);
+               final UploadProgressBar uploadProgressBar = new 
UploadProgressBar("progress", singleFileUploadToResourceField)
+               {
+
+                       @Override
+                       protected String getOnProgressUpdatedCallBack()
+                       {
+                               return "function(percent) { 
console.log(percent); }";
+                       }
+               };
                add(uploadProgressBar);
                add(new AjaxLink<Void>("upload") {
                        @Override
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadProgressBar.java
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadProgressBar.java
index fa4bfff362..6c37b7a0b8 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadProgressBar.java
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/UploadProgressBar.java
@@ -270,12 +270,22 @@ public class UploadProgressBar extends Panel
 
                Form<?> form = getCallbackForm();
 
-               formatter.format(getVarName() + " = new Wicket.WUPB(%s, '%s', 
'%s', '%s', %s, '%s');",
+               formatter.format(getVarName() + " = new Wicket.WUPB(%s, '%s', 
'%s', '%s', %s, '%s', %s);",
                                form != null ? "'" + form.getMarkupId() + "'" : 
"null", statusDiv.getMarkupId(), barDiv.getMarkupId(), url, uploadFieldId,
-                       status);
+                       status, getOnProgressUpdatedCallBack());
                
response.render(OnDomReadyHeaderItem.forScript(builder.toString()));
        }
 
+       /**
+        * Allows to pass a JavaScript function that is called when progress in 
updated.
+        *
+        * @return A JavaScript function.
+        */
+       protected String getOnProgressUpdatedCallBack()
+       {
+               return "function(percent) {}";
+       }
+
        private String getVarName() {
                return "window.upb_" + barDiv.getMarkupId();
        }
diff --git 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/progressbar.js
 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/progressbar.js
index 5ff99e87c5..f8872460a2 100644
--- 
a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/progressbar.js
+++ 
b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/form/upload/progressbar.js
@@ -25,12 +25,13 @@
        Wicket.WUPB = Wicket.Class.create();
        Wicket.WUPB.prototype = {
 
-               initialize : function(formid, statusid, barid, url, fileid, 
initialStatus) {
+               initialize : function(formid, statusid, barid, url, fileid, 
initialStatus, onProgressUpdated) {
                        this.statusid = statusid;
                        this.barid = barid;
                        this.url = url;
                        this.fileid = fileid;
                        this.initialStatus = initialStatus;
+                       this.onProgressUpdated = onProgressUpdated;
 
                        if (formid) {
                                var formElement = Wicket.$(formid);
@@ -87,6 +88,9 @@
                        if (barId != null && barId.firstChild != null && 
barId.firstChild.firstChild != null) {
                                barId.firstChild.firstChild.style.width = 
progressPercent + '%';
                        }
+                       if (this.onProgressUpdated) {
+                               this.onProgressUpdated(progressPercent);
+                       }
                },
 
                scheduleUpdate : function(){

Reply via email to