[richfaces-svn-commits] JBoss Rich Faces SVN: r15998 - root/framework/trunk/impl/src/main/resources/META-INF/resources.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Wed Nov 25 11:30:08 EST 2009


Author: pyaschenko
Date: 2009-11-25 11:30:08 -0500 (Wed, 25 Nov 2009)
New Revision: 15998

Modified:
   root/framework/trunk/impl/src/main/resources/META-INF/resources/richfaces-queue.js
Log:
ajax client library: queue: push model was added

Modified: root/framework/trunk/impl/src/main/resources/META-INF/resources/richfaces-queue.js
===================================================================
--- root/framework/trunk/impl/src/main/resources/META-INF/resources/richfaces-queue.js	2009-11-25 16:01:59 UTC (rev 15997)
+++ root/framework/trunk/impl/src/main/resources/META-INF/resources/richfaces-queue.js	2009-11-25 16:30:08 UTC (rev 15998)
@@ -7,6 +7,10 @@
 		richfaces.queue.push(source, event, options);
 	};
 	
+	var QUEUE_MODE_PULL = 'pull';
+	var QUEUE_MODE_PUSH = 'push';	
+	var defaultQueueOptions = {mode: QUEUE_MODE_PULL, requestDelay:10000};
+	
 	richfaces.queue = function(opts){
 
 		var queueEntry = function(query, event, options) {
@@ -45,7 +49,7 @@
 			},
 			
 			startTimer: function() {
-				var delay = this.options.requestDelay;
+				var delay = this.options.requestDelay || queueRequestDelay || 0;
 				
 				log.debug("Queue will wait " + (delay || 0) + "ms before submit");
 	
@@ -98,6 +102,9 @@
 		var queueOptions = opts || {};
 		var last;
 		
+		var queueMode = queueOptions.mode;
+		var queueRequestDelay = queueOptions.requestDelay;		
+		
 		var onError = function (data) {
 			log.debug("richfaces.queue: ajax submit error");
 			last = null;
@@ -116,7 +123,7 @@
 		jsf.ajax.addOnError(onError);
 		
 		var submitFirst = function() {
-			if (last) {
+			if (queueMode == QUEUE_MODE_PULL && last) {
 				log.debug("richfaces.queue: Waiting for previous submit results");
 				return;
 			}
@@ -124,14 +131,16 @@
 				log.debug("richfaces.queue: Nothing to submit");
 				return;
 			}
-			last = items.shift();
-			if (last.readyToSubmit) {
-				log.debug("richfaces.queue: will submit request NOW");
-				//last.query.appendParameter("AJAX:EVENTS_COUNT", last.eventsCount);
-				var params = richfaces.processRequestParams(last.query, last.options);
-				richfaces.ajax.request(last.query, last.event, params);
-				if (last.options.queueonsubmit) {
-					last.options.queueonsubmit.call(last);
+			if (items[0].readyToSubmit) {
+				last = items.shift();
+				if (last.readyToSubmit) {
+					log.debug("richfaces.queue: will submit request NOW");
+					//last.query.appendParameter("AJAX:EVENTS_COUNT", last.eventsCount);
+					var params = richfaces.processRequestParams(last.query, last.options);
+					richfaces.ajax.request(last.query, last.event, params);
+					if (last.options.queueonsubmit) {
+						last.options.queueonsubmit.call(last);
+					}
 				}
 			}
 		};
@@ -183,14 +192,14 @@
 						
 						items.push(entry);
 						log.debug("New request added to queue. Queue similarityGroupingId changed to " + similarityGroupingId);
+						submitFirst();
 					}
 				} else {
 					items.push(entry);
-					log.debug("New request added to queue. Queue similarityGroupingId changed to " + similarityGroupingId);
+					log.debug("New request added to queue.");
 				}
+				entry.startTimer();
 				
-				entry.startTimer();
-				//submitFirst();	
 			},
 			
 			pop: function () {
@@ -199,5 +208,5 @@
 			clear: function () {
 			}
 		}
-	}();
+	}(jQuery.extend({},defaultQueueOptions));
 }(jQuery, RichFaces, jsf));
\ No newline at end of file



More information about the richfaces-svn-commits mailing list