You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by aw...@apache.org on 2007/06/07 08:03:38 UTC
svn commit: r545078 - in
/myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main:
java/org/apache/myfaces/trinidadinternal/webapp/
javascript/META-INF/adf/jsLibs/ javascript/META-INF/adf/jsLibs/xhr/
Author: awiner
Date: Wed Jun 6 23:03:37 2007
New Revision: 545078
URL: http://svn.apache.org/viewvc?view=rev&rev=545078
Log:
- Fix Safari PPR - form.encoding needs to be form.enctype
- Get file upload PPR limping along
Modified:
myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java
myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js
myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/xhr/RequestQueue.js
Modified: myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java?view=diff&rev=545078&r1=545077&r2=545078
==============================================================================
--- myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java (original)
+++ myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/TrinidadFilterImpl.java Wed Jun 6 23:03:37 2007
@@ -124,10 +124,6 @@
GlobalConfiguratorImpl config = GlobalConfiguratorImpl.getInstance();
config.beginRequest(externalContext);
- boolean isPartialRequest = CoreRenderKit.isPartialRequest(externalContext);
- if (isPartialRequest)
- response = XmlHttpConfigurator.getWrappedServletResponse(response);
-
//To maintain backward compatibilty, wrap the request at the filter level
Map<String, String[]> addedParams = (Map<String, String[]>) externalContext.getRequestMap().
get(FileUploadConfiguratorImpl._PARAMS);
@@ -138,6 +134,12 @@
request = new UploadRequestWrapper((HttpServletRequest)request, addedParams);
}
+ // Need a new external context
+ externalContext = new ServletExternalContext(_servletContext, request, response);
+ boolean isPartialRequest = CoreRenderKit.isPartialRequest(externalContext);
+ if (isPartialRequest)
+ response = XmlHttpConfigurator.getWrappedServletResponse(response);
+
try
{
@@ -281,12 +283,6 @@
"org.apache.myfaces.trinidadinternal.webapp.AdfacesFilterImpl.IS_RETURNING";
private static final String _FILTER_EXECUTED_KEY =
"org.apache.myfaces.trinidadinternal.webapp.AdfacesFilterImpl.EXECUTED";
-
- // two parts of a script that will redirect the main page from the IFrame.
- private static final String _IFRAME_REDIRECT_START
- = "<html><script>if(parent._pprUpdateMode)parent.location.href='";
- private static final String _IFRAME_REDIRECT_FINISH
- = "';</script></html>";
private static ThreadLocal<PseudoFacesContext> _PSEUDO_FACES_CONTEXT =
new ThreadLocal<PseudoFacesContext>()
Modified: myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js?view=diff&rev=545078&r1=545077&r2=545078
==============================================================================
--- myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js (original)
+++ myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/Core.js Wed Jun 6 23:03:37 2007
@@ -4905,3 +4905,24 @@
// regular expression to gather whitespace at beginning and end of line
TrUIUtils._TRIM_ALL_RE = /^\s*|\s*$/g;
+
+
+/**
+ * Creates a function instance that will callback the passed in function
+ * with "thisObj" as "this". This is extremely useful for creating callbacks
+ */
+TrUIUtils.createCallback = function(thisObj, func)
+{
+ // create a function that sets up "this" and delegates all of the parameters
+ // to the passed in function
+ var proxyFunction = new Function(
+ "var f=arguments.callee; return f._func.apply(f._owner, arguments);");
+
+ // attach ourselves as "this" to the created function
+ proxyFunction._owner = thisObj;
+
+ // attach function to delegate to
+ proxyFunction._func = func;
+
+ return proxyFunction;
+}
Modified: myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/xhr/RequestQueue.js
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/xhr/RequestQueue.js?view=diff&rev=545078&r1=545077&r2=545078
==============================================================================
--- myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/xhr/RequestQueue.js (original)
+++ myfaces/trinidad/branches/awiner-use-XHR-branch/trinidad/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/xhr/RequestQueue.js Wed Jun 6 23:03:37 2007
@@ -17,11 +17,11 @@
* under the License.
*/
+//FIXME: go from "listeners" to a callback approach
/**
* The RequestQueue class is a service to serialize the XML HTTP
* request communication from the client to the server.
*/
-
function TrRequestQueue(domWindow)
{
this._state = TrRequestQueue.STATE_READY;
@@ -168,7 +168,9 @@
*/
TrRequestQueue.prototype._isMultipartForm = function(actionForm)
{
- if (actionForm.encoding.toLowerCase() != "multipart/form-data")
+ // Use enctype - supported on IE >= 6, Moz, and Safari.
+ // encoding is not supported on Safari.
+ if (actionForm.enctype.toLowerCase() != "multipart/form-data")
return false;
var inputs = actionForm.getElementsByTagName("input"),
@@ -339,7 +341,7 @@
* @param params additional parameters that need to be sent to the server
* @param listeners Objects that implements XMLRequestListener interface
*/
-TrRequestQueue.prototype.sendMultiPartRequest = function(
+TrRequestQueue.prototype.sendMultipartRequest = function(
context,
actionURL,
htmlForm,
@@ -454,11 +456,16 @@
this._savedActionUrl = htmlForm.action;
this._savedTarget = htmlForm.target;
+ // FIXME: why are the next two lines at all necessary? The form
+ // should already be set to post, and if the action has been
+ // updated since this was queued
htmlForm.method = "POST";
htmlForm.action = actionURL;
+
htmlForm.target = frameName;
this._appendParamNode(domDocument, htmlForm, "Tr-XHR-Message", "true");
+ // FIXME: the "partial" parameter is unnecessary
this._appendParamNode(domDocument, htmlForm, "partial", "true");
if(params)
@@ -470,7 +477,7 @@
}
if(this._iframeLoadCallback == null)
- this._iframeLoadCallback = this.createCallback(this._handleIFrameLoad);
+ this._iframeLoadCallback = TrUIUtils.createCallback(this, this._handleIFrameLoad);
htmlForm.submit();
this._window.setTimeout(this._iframeLoadCallback, 50);