Updated Branches: refs/heads/master aa46135a5 -> bf1340b71
WICKET-4606 dynamic extra parameter gets used/executed even when ajaxcallistener is preconditioned to false Move the calculation of dynamic extra parameters after the call to the precondition. I.e. make it as late as possible. Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/bf1340b7 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/bf1340b7 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/bf1340b7 Branch: refs/heads/master Commit: bf1340b710f24093bcb928e79f9285a5f57ff0a2 Parents: 8d2f63e Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Wed Jun 13 16:44:50 2012 +0300 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Wed Jun 13 16:44:50 2012 +0300 ---------------------------------------------------------------------- .../wicket/ajax/res/js/wicket-ajax-jquery.js | 39 +++++++++------ 1 files changed, 23 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/bf1340b7/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js ---------------------------------------------------------------------- diff --git a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js index fa454de..fea9400 100644 --- a/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js +++ b/wicket-core/src/main/java/org/apache/wicket/ajax/res/js/wicket-ajax-jquery.js @@ -455,22 +455,6 @@ headers["Wicket-FocusedElementId"] = Wicket.Focus.lastFocusId; } - // collect the dynamic extra parameters - if (jQuery.isArray(attrs.dep)) { - var deps = attrs.dep; - for (var i = 0; i < deps.length; i++) { - var dep = deps[i], - extraParam; - if (jQuery.isFunction(dep)) { - extraParam = dep(attrs); - } else { - extraParam = new Function('attrs', dep)(attrs); - } - extraParam = this._asParamArray(extraParam); - data = data.concat(extraParam); - } - } - if (attrs.mp) { // multipart form. jQuery doesn't help here ... // TODO Wicket.next - should we execute all handlers ?! // Wicket 1.5 didn't support success/failure handlers for this, but we can do it @@ -523,6 +507,29 @@ } } + // collect the dynamic extra parameters + if (jQuery.isArray(attrs.dep)) { + var deps = attrs.dep, + params = [], + queryString, + separator; + + for (var i = 0; i < deps.length; i++) { + var dep = deps[i], + extraParam; + if (jQuery.isFunction(dep)) { + extraParam = dep(attrs); + } else { + extraParam = new Function('attrs', dep)(attrs); + } + extraParam = this._asParamArray(extraParam); + params = params.concat(extraParam); + } + queryString = jQuery.param(params); + separator = settings.url.indexOf('?') > -1 ? '&' : '?'; + settings.url = settings.url + separator + queryString; + } + Wicket.Event.publish('/ajax/call/before', attrs, jqXHR, settings); self._executeHandlers(attrs.bh, attrs, jqXHR, settings);
