[richfaces-svn-commits] JBoss Rich Faces SVN: r13620 - in trunk/ui/fileUpload/src/main: java/org/richfaces/renderkit and 1 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Thu Apr 16 20:42:59 EDT 2009
Author: nbelaevski
Date: 2009-04-16 20:42:59 -0400 (Thu, 16 Apr 2009)
New Revision: 13620
Modified:
trunk/ui/fileUpload/src/main/java/org/richfaces/component/FileUploadPhaselistener.java
trunk/ui/fileUpload/src/main/java/org/richfaces/component/UIFileUpload.java
trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java
trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
Log:
https://jira.jboss.org/jira/browse/RF-6809
https://jira.jboss.org/jira/browse/RF-6495
Modified: trunk/ui/fileUpload/src/main/java/org/richfaces/component/FileUploadPhaselistener.java
===================================================================
--- trunk/ui/fileUpload/src/main/java/org/richfaces/component/FileUploadPhaselistener.java 2009-04-17 00:42:05 UTC (rev 13619)
+++ trunk/ui/fileUpload/src/main/java/org/richfaces/component/FileUploadPhaselistener.java 2009-04-17 00:42:59 UTC (rev 13620)
@@ -28,6 +28,7 @@
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
+import org.ajax4jsf.exception.FileUploadException;
import org.ajax4jsf.request.MultipartRequest;
/**
@@ -56,10 +57,15 @@
Object request = externalContext.getRequest();
if (request instanceof MultipartRequest) {
MultipartRequest multipartRequest = (MultipartRequest) request;
- multipartRequest.parseRequest();
- if (multipartRequest.isStopped()) {
+ try {
+ multipartRequest.parseRequest();
+ if (!multipartRequest.isDone()) {
+ facesContext.responseComplete();
+ }
+ } catch (FileUploadException e) {
facesContext.responseComplete();
- }
+ throw e;
+ }
}
}
Modified: trunk/ui/fileUpload/src/main/java/org/richfaces/component/UIFileUpload.java
===================================================================
--- trunk/ui/fileUpload/src/main/java/org/richfaces/component/UIFileUpload.java 2009-04-17 00:42:05 UTC (rev 13619)
+++ trunk/ui/fileUpload/src/main/java/org/richfaces/component/UIFileUpload.java 2009-04-17 00:42:59 UTC (rev 13620)
@@ -211,6 +211,9 @@
MultipartRequest multipartRequest = MultipartRequest.lookupRequest(facesContext, uid);
if (multipartRequest != null) {
multipartRequest.stop();
+ if (multipartRequest.isStopped()) {
+ ajaxContext.setResponseData(uid);
+ }
}
}
}
Modified: trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java
===================================================================
--- trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java 2009-04-17 00:42:05 UTC (rev 13619)
+++ trunk/ui/fileUpload/src/main/java/org/richfaces/renderkit/FileUploadRendererBase.java 2009-04-17 00:42:59 UTC (rev 13620)
@@ -504,7 +504,15 @@
*/
public String getStopScript(FacesContext context, UIComponent component)
throws IOException {
- return getActionScript(context, component, FileUploadConstants.FILE_UPLOAD_ACTION_STOP, null);
+ JSFunctionDefinition oncomplete = new JSFunctionDefinition();
+ oncomplete.addParameter("request");
+ oncomplete.addParameter("event");
+ oncomplete.addParameter("data");
+ StringBuffer body = new StringBuffer("$('");
+ body.append(component.getClientId(context));
+ body.append("').component.cancelUpload(data);");
+ oncomplete.addToBody(body);
+ return getActionScript(context, component, FileUploadConstants.FILE_UPLOAD_ACTION_STOP, oncomplete);
}
/**
Modified: trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
===================================================================
--- trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2009-04-17 00:42:05 UTC (rev 13619)
+++ trunk/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2009-04-17 00:42:59 UTC (rev 13620)
@@ -335,6 +335,13 @@
},
+ oncancel: function() {
+ if (!this.stopped) {
+ this.stop();
+ this.callback(FileUploadEntry.UPLOAD_CANCELED);
+ }
+ },
+
onerror: function() {
this.callback(FileUploadEntry.UPLOAD_TRANSFER_ERROR);
},
@@ -465,6 +472,23 @@
this.initFileInput();
},
+ cancelUpload: function(uid) {
+ if (this.activeEntry && this.activeEntry.uid == uid) {
+ if (this.watcher) {
+ this.watcher.oncancel();
+ }
+ if (this.iframe) {
+ try {
+ //call order is critical for IE 6
+ this.iframe.contentWindow.location.href = "javascript:''";
+ this.iframe.contentWindow.stop();
+ } catch (e) {
+ //TODO - ?
+ }
+ }
+ }
+ },
+
initLabels: function (labels) {
if (labels) {
for (var l in labels) {
@@ -523,7 +547,7 @@
createFrame: function () {
if (this.iframe) return;
var div = document.createElement("div");
- div.style.display = 'none';
+ div.style.display = 'none';
var child = "<iframe name='"+this.id+"_iframe' id='"+this.id+"_iframe'"+ (!Richfaces.browser.isOpera ? " src=\"javascript:''\"" : "")+"></iframe>";
div.innerHTML = child;
document.body.appendChild(div);
More information about the richfaces-svn-commits
mailing list