WICKET-6523 timerId can no longer be used

to search for markup owning a timer, but timers will be removed by onRemove() 
callback anyway


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

Branch: refs/heads/master
Commit: c989470fece7389ed1791320ed31a8c69332f098
Parents: 16b612a
Author: Sven Meier <[email protected]>
Authored: Wed Jan 24 22:30:31 2018 +0100
Committer: Sven Meier <[email protected]>
Committed: Tue Feb 6 16:20:11 2018 +0100

----------------------------------------------------------------------
 .../wicket/ajax/res/js/wicket-ajax-jquery.js    | 48 +++++---------------
 1 file changed, 12 insertions(+), 36 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/c989470f/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 e8f44b2..00d08ec 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
@@ -2565,6 +2565,17 @@
                                        
clearTimeout(Wicket.TimerHandles[timerId]);
                                        delete Wicket.TimerHandles[timerId];
                                }
+                       },
+                       
+                       clearAll: function(timerId) {
+                               var WTH = Wicket.TimerHandles;
+                               if (WTH) {
+                                       for (var th in WTH) {
+                                               if (WTH.hasOwnProperty(th)) {
+                                                       Wicket.Timer.clear(th)
+                                               }
+                                       }
+                               }
                        }
                }
        });
@@ -2939,42 +2950,7 @@
         * Clear any scheduled Ajax timers when leaving the current page
         */
        Wicket.Event.add(window, "unload", function() {
-               var WTH = Wicket.TimerHandles;
-               if (WTH) {
-                       for (var th in WTH) {
-                               if (WTH.hasOwnProperty(th)) {
-                                       window.clearTimeout(WTH[th]);
-                                       delete WTH[th];
-                               }
-                       }
-               }
-       });
-
-       /**
-        * Remove any scheduled timers on the removed element.
-        * This wont remove the timer for elements which are children of the 
removed one.
-        */
-       Wicket.Event.subscribe('/dom/node/removing', function(jqEvent, element) 
{
-               var id = element.id;
-               if (Wicket.TimerHandles && Wicket.TimerHandles[id]) {
-                       window.clearTimeout(Wicket.TimerHandles[id]);
-                       delete Wicket.TimerHandles[id];
-               }
-       });
-
-       /**
-        * Remove any scheduled timers on elements which are no more in the DOM 
document.
-        * This removes the timers for all elements which parents have been 
removed from the DOM.
-        */
-       Wicket.Event.subscribe('/dom/node/added', function() {
-               if (Wicket.TimerHandles) {
-                       for (var timerHandle in Wicket.TimerHandles) {
-                               if (Wicket.$$(timerHandle) === false) {
-                                       window.clearTimeout(timerHandle);
-                                       delete Wicket.TimerHandles[timerHandle];
-                               }
-                       }
-               }
+               Wicket.Timer.clearAll();
        });
 
 })(jQuery);

Reply via email to