Restore a version of Tapestry.ajaxRequest() that delegates to core/ajax.
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/f60a201f Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/f60a201f Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/f60a201f Branch: refs/heads/5.4-js-rewrite Commit: f60a201f556a64f1a14b4aa55600fb046da061b0 Parents: e366af0 Author: Howard M. Lewis Ship <[email protected]> Authored: Thu Aug 9 16:20:24 2012 -0700 Committer: Howard M. Lewis Ship <[email protected]> Committed: Thu Aug 9 16:20:24 2012 -0700 ---------------------------------------------------------------------- .../resources/org/apache/tapestry5/tapestry.js | 48 ++++++++++++--- 1 files changed, 40 insertions(+), 8 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/f60a201f/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js ---------------------------------------------------------------------- diff --git a/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js b/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js index 5252ac7..fb4488b 100644 --- a/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js +++ b/tapestry-core/src/main/resources/org/apache/tapestry5/tapestry.js @@ -281,6 +281,41 @@ define("core/compat/tapestry", [ }); }, + /** + * Processes a typical Ajax request for a URL. In the simple case, a success + * handler is provided (as options). In a more complex case, an options + * object is provided, with keys as per Ajax.Request. The onSuccess key will + * be overwritten, and defaults for onException and onFailure will be + * provided. The handler should take up-to two parameters: the + * XMLHttpRequest object itself, and the JSON Response (from the X-JSON + * response header, usually null). + * + * This has been re-implemented in 5.4 as a wrapper around the core/ajax module. + * + * @param url + * of Ajax request + * @param options + * either a success handler, or a set of options compatible with the core/ajax module. + * @return the Ajax.Request object (perhaps, if prototype is the underlying + */ + ajaxRequest: function (url, options) { + if (_.isFunction(options)) { + options = { onsuccess: options }; + } + + // Prototype and Tapestry 5.3 uses "onSuccess", "onException", "onFailure", but + // core/ajax (Tapestry 5.4) uses "onsuccess", etc. + + var newOptions = {}; + _.each(options, function (value, key) { + var newKey = key.substr(0, 2) === "on" ? key.toLowerCase() : key; + + newOptions[newKey] = value; + }); + + return ajax(url, newOptions); + }, + /** Formats and displays an error message on the console. */ error: function (message, substitutions) { Tapestry.invokeLogger(message, substitutions, Tapestry.Logging.error); @@ -664,11 +699,11 @@ define("core/compat/tapestry", [ options.parameters = hash; /* - * Ajax.Request will convert the hash into a query + * ajaxRequest will convert the hash into a query * string and post it. */ - return ajax(url, options); + return Tapestry.ajaxRequest(url, options); } }); @@ -906,15 +941,12 @@ define("core/compat/tapestry", [ .observe( Tapestry.FORM_PROCESS_SUBMIT_EVENT, function () { - var zoneManager = Tapestry - .findZoneManager(element); + var mgr = Tapestry.findZoneManager(element); - if (!zoneManager) - return; + if (!mgr) {return;} var successHandler = function (transport) { - zoneManager - .processReply(transport.responseJSON); + mgr.processReply(transport); }; element.sendAjaxRequest(url, {
