You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/08/07 10:44:22 UTC
git commit: WICKET-5306 Dynamic extra paramaters not evaluated in
ajax submitting behavior in a multipart form
Updated Branches:
refs/heads/master fa0140223 -> 12f7781a8
WICKET-5306 Dynamic extra paramaters not evaluated in ajax submitting behavior in a multipart form
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/12f7781a
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/12f7781a
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/12f7781a
Branch: refs/heads/master
Commit: 12f7781a83193b5f254d1dcb62740c43581389df
Parents: fa01402
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Wed Aug 7 10:43:39 2013 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Wed Aug 7 10:43:39 2013 +0200
----------------------------------------------------------------------
.../wicket/ajax/res/js/wicket-ajax-jquery.js | 49 ++++++++++++++------
1 file changed, 34 insertions(+), 15 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/12f7781a/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 5fb8a18..0ffae61 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
@@ -443,6 +443,32 @@
},
/**
+ * Executes all functions to calculate any dynamic extra parameters
+ *
+ * @param attrs The Ajax request attributes
+ * @returns {String} A query string snippet with any calculated request
+ * parameters. An empty string if there are no dynamic parameters in attrs
+ * @private
+ */
+ _calculateDynamicParameters: function(attrs) {
+ var deps = attrs.dep,
+ params = [];
+
+ 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);
+ }
+ return jQuery.param(params);
+ },
+
+ /**
* Executes or schedules for execution #doAjax()
*
* @param {Object} attrs - the Ajax request attributes configured at the server side
@@ -564,23 +590,10 @@
// collect the dynamic extra parameters
if (jQuery.isArray(attrs.dep)) {
- var deps = attrs.dep,
- params = [],
- queryString,
+ var 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);
+ queryString = this._calculateDynamicParameters(attrs);
if (settings.type.toLowerCase() === 'post') {
separator = settings.data.length > 0 ? '&' : '';
settings.data = settings.data + separator + queryString;
@@ -798,6 +811,12 @@
form.target = iframe.name;
var separator = (attrs.u.indexOf("?")>-1 ? "&" : "?");
form.action = attrs.u + separator + "wicket-ajax=true&wicket-ajax-baseurl=" + Wicket.Form.encode(getAjaxBaseUrl());
+ if (jQuery.isArray(attrs.dep)) {
+ var dynamicExtraParameters = this._calculateDynamicParameters(attrs);
+ if (dynamicExtraParameters) {
+ form.action = form.action + '&' + dynamicExtraParameters;
+ }
+ }
form.method = "post";
form.enctype = "multipart/form-data";
form.encoding = "multipart/form-data";