Author: andrei_exadel
Date: 2008-02-26 07:18:28 -0500 (Tue, 26 Feb 2008)
New Revision: 6340
Modified:
trunk/sandbox/ui/fileUpload/src/main/java/org/richfaces/org/jboss/seam/ui/renderkit/FileUploadRendererBase.java
trunk/sandbox/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
Log:
update view state after file uploaded functionality
Modified:
trunk/sandbox/ui/fileUpload/src/main/java/org/richfaces/org/jboss/seam/ui/renderkit/FileUploadRendererBase.java
===================================================================
---
trunk/sandbox/ui/fileUpload/src/main/java/org/richfaces/org/jboss/seam/ui/renderkit/FileUploadRendererBase.java 2008-02-26
11:57:05 UTC (rev 6339)
+++
trunk/sandbox/ui/fileUpload/src/main/java/org/richfaces/org/jboss/seam/ui/renderkit/FileUploadRendererBase.java 2008-02-26
12:18:28 UTC (rev 6340)
@@ -14,8 +14,12 @@
import javax.faces.context.ResponseWriter;
import javax.faces.render.RenderKit;
import javax.faces.render.RenderKitFactory;
+import javax.faces.render.ResponseStateManager;
import javax.servlet.ServletRequest;
+import javax.servlet.http.HttpSession;
+import org.ajax4jsf.context.AjaxContext;
+import org.ajax4jsf.context.AjaxContextImpl;
import org.ajax4jsf.event.AjaxEvent;
import org.ajax4jsf.javascript.JSFunction;
import org.ajax4jsf.javascript.JSFunctionDefinition;
@@ -100,9 +104,10 @@
UIFileUpload fileUpload) {
storeData(context, fileUpload, file);
try {
- context.responseComplete();
+ AjaxContext ajaxContext = AjaxContextImpl.getCurrentInstance(context);
+ ajaxContext.setAjaxRequest(true);
} catch (Exception e) {
- e.getMessage();
+ e.getMessage();
}
}
Modified:
trunk/sandbox/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js
===================================================================
---
trunk/sandbox/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2008-02-26
11:57:05 UTC (rev 6339)
+++
trunk/sandbox/ui/fileUpload/src/main/resources/org/richfaces/renderkit/html/js/FileUpload.js 2008-02-26
12:18:28 UTC (rev 6340)
@@ -273,9 +273,10 @@
LoadWatcher = Class.create();
Object.extend(LoadWatcher.prototype, {
- initialize: function(iframe, callback) {
+ initialize: function(iframe, callback, viewStateUpdater) {
this.iframe = iframe;
this.callback = callback;
+ this.viewStateUpdater = viewStateUpdater;
this.loadObserver = function() {
if (!this.stopped) {
@@ -324,7 +325,10 @@
} else if (restr) {
this.callback(FileUploadEntry.UPLOAD_SIZE_ERROR);
} else {
- //TODO handle server internal errors, etc.
+ var state = iframeDocument.getElementById('javax.faces.ViewState');
+ if (state) {
+ this.viewStateUpdater(state.value);
+ }
this.callback(FileUploadEntry.UPLOAD_SUCCESS);
}
},
@@ -421,7 +425,7 @@
}
this.iframe = null;
},
-
+
initEvents : function() {
for (var e in this.events) {
if (e && this.events[e]) {
@@ -711,6 +715,15 @@
this.deleteFrame();
},
+ updateViewState: function (state) {
+ if (!state) return;
+ var form = this.getForm();
+ var viewStateE = form['javax.faces.ViewState'];
+ if (viewStateE) {
+ viewStateE.value = state;
+ }
+ },
+
_updateEntriesState: function() {
var l = this.entries.length;
@@ -793,11 +806,16 @@
this.processButtons();
},
- submitForm: function(entry) {
+ getForm: function () {
var parentForm = this.element;
while (parentForm.tagName && parentForm.tagName.toLowerCase() !=
'form') {
parentForm = parentForm.parentNode;
}
+ return parentForm;
+ },
+
+ submitForm: function(entry) {
+ var parentForm = this.getForm();
if (!parentForm) {
throw "No parent form found!";
@@ -841,7 +859,10 @@
new LoadWatcher(iframe, function(newState) {
this.finishProgressBar();
this.setState(newState);
- }.bind(entry));
+ }.bind(entry),
+ function (state) {
+ this.updateViewState(state);
+ }.bind(this));
parentForm.submit();
}
Show replies by date