WICKET-4668 Ajax responses for QUEUE and DROP type channels are not guaranteed 
to be processed in the order of the requests

Make a copy of the passed attributes so that it is possible to trigger the 
handler with custom data (jQuery(selector).triggerHandler('eventName', 
CUSTOM_DATA))


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/5171f95b
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/5171f95b
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/5171f95b

Branch: refs/heads/master
Commit: 5171f95b8618644ce98ecb1cb7f8767c9fa491a5
Parents: 9774c87
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Tue Jul 24 14:14:08 2012 +0300
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Tue Jul 24 14:14:08 2012 +0300

----------------------------------------------------------------------
 .../wicket/ajax/res/js/wicket-ajax-jquery.js       |   18 +++++++++-----
 1 files changed, 11 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/5171f95b/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 2bfbbda..3206685 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
@@ -1553,23 +1553,27 @@
                                }
 
                                jQuery.each(attrs.e, function (idx, evt) {
-                                       Wicket.Event.add(attrs.c, evt, function 
(jqEvent) {
+                                       Wicket.Event.add(attrs.c, evt, function 
(jqEvent, data) {
                                                var call = new 
Wicket.Ajax.Call();
-                                               attrs.event = 
Wicket.Event.fix(jqEvent);
+                                               var attributes = 
jQuery.extend({}, attrs);
+                                               attributes.event = 
Wicket.Event.fix(jqEvent);
+                                               if (data) {
+                                                       
attributes.event.extraData = data;
+                                               }
 
-                                               var throttlingSettings = 
attrs.tr;
+                                               var throttlingSettings = 
attributes.tr;
                                                if (throttlingSettings) {
                                                        var 
postponeTimerOnUpdate = throttlingSettings.p || false;
                                                        var throttler = new 
Wicket.Throttler(postponeTimerOnUpdate);
                                                        
throttler.throttle(throttlingSettings.id, throttlingSettings.d,
                                                                
Wicket.bind(function () {
-                                                                       
call.ajax(attrs);
-                                                                       return 
attrs.ad;
+                                                                       
call.ajax(attributes);
+                                                                       return 
attributes.ad;
                                                                }, this));
                                                }
                                                else {
-                                                       call.ajax(attrs);
-                                                       return attrs.ad;
+                                                       call.ajax(attributes);
+                                                       return attributes.ad;
                                                }
                                        });
                                });

Reply via email to