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