You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2007/09/26 13:16:52 UTC

svn commit: r579593 - /wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js

Author: knopp
Date: Wed Sep 26 04:16:51 2007
New Revision: 579593

URL: http://svn.apache.org/viewvc?rev=579593&view=rev
Log:
Allow arbitrary delaying of Ajax pipeline using prepend/append javascript

Modified:
    wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js

Modified: wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js
URL: http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js?rev=579593&r1=579592&r2=579593&view=diff
==============================================================================
--- wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js (original)
+++ wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/ajax/wicket-ajax.js Wed Sep 26 04:16:51 2007
@@ -1116,15 +1116,34 @@
 		    if (encoding != null) {
 		        text = Wicket.decode(encoding, text);
 		    }
-		    try {
-		   		// do the evaluation
-		    	eval(text);
-		    } catch (exception) {
-		    	Wicket.Log.error("Exception evaluating javascript: " + exception);
-		    }
-		    // continue to next step
-			notify();
-		});
+		    
+		    // test if the javascript is in form of identifier|code
+		    // if it is, we allow for letting the javascript decide when the rest of processing will continue 
+		    // by invoking identifier();
+		    var res = text.match("([a-z|A-Z_][a-z|A-Z|0-9_]*)\\|(.*)");
+		    
+		    if (res != null) {
+		    	text = "var f = function(" + res[1] + ") {" + res[2] +"};";		    	
+		    	try {
+			   		// do the evaluation
+			    	eval(text);
+			    	f(notify);
+			    } catch (exception) {
+			    	Wicket.Log.error("Exception evaluating javascript: " + exception);
+			    }
+		    	
+		    } else {
+		    	// just evaluate the javascript
+			    try {
+			   		// do the evaluation
+			    	eval(text);
+			    } catch (exception) {
+			    	Wicket.Log.error("Exception evaluating javascript: " + exception);
+			    }
+			    // continue to next step
+				notify();
+			}
+		});		
 	},
 	
 	// Adds a closure that processes a header contribution