Author: nbelaevski
Date: 2008-11-25 14:18:13 -0500 (Tue, 25 Nov 2008)
New Revision: 11379
Modified:
trunk/framework/impl/src/main/javascript/ajaxjsf/JSFAJAX.js
trunk/framework/impl/src/main/javascript/ajaxjsf/queue.js
Log:
Queue refactoring: event argument added to A4J.AJAX.SubmitQuery()
Modified: trunk/framework/impl/src/main/javascript/ajaxjsf/JSFAJAX.js
===================================================================
--- trunk/framework/impl/src/main/javascript/ajaxjsf/JSFAJAX.js 2008-11-25 19:04:46 UTC
(rev 11378)
+++ trunk/framework/impl/src/main/javascript/ajaxjsf/JSFAJAX.js 2008-11-25 19:18:13 UTC
(rev 11379)
@@ -710,7 +710,7 @@
eventsQueue.submit();
};
-A4J.AJAX.PrepareQuery = function(containerId, formId, evt, options) {
+A4J.AJAX.CloneEvent = function(evt) {
var domEvt;
evt = evt || window.event || null;
if(evt){
@@ -722,7 +722,11 @@
}
LOG.debug("Have Event "+domEvt+" with properties: target:
"+domEvt.target+", srcElement: "+domEvt.srcElement+", type:
"+domEvt.type);
}
+
+ return domEvt;
+};
+A4J.AJAX.PrepareQuery = function(containerId, formId, domEvt, options) {
// Process listeners.
for(var li = 0; li < A4J.AJAX._listeners.length; li++){
var listener = A4J.AJAX._listeners[li];
@@ -747,7 +751,7 @@
return false;
};
};
- var tosend = new A4J.Query(containerId, form, domEvt);
+ var tosend = new A4J.Query(containerId, form);
tosend.appendFormControls(options.single, options.control);
//appending options.control moved to appendFormControls
//if(options.control){
@@ -763,13 +767,12 @@
return tosend;
};
-A4J.AJAX.SubmitQuery = function (query, options) {
+A4J.AJAX.SubmitQuery = function (query, options, domEvt) {
// build xxxHttpRequest. by Sarissa / JSHttpRequest class always defined.
var req = new A4J.AJAX.XMLHttpRequest(query);
var form = query._form;
var containerId = query._containerId;
- var domEvt = query._event;
req.options = options;
req.containerId = containerId;
@@ -815,14 +818,15 @@
//Submit or put in queue request. It not full queues - framework perform waiting only one
request to same queue, new events simple replace last.
//If request for same queue already performed, replace with current parameters.
A4J.AJAX.Submit = function( containerId, formId, event , options ) {
- var query = A4J.AJAX.PrepareQuery(containerId, formId, event, options);
+ var domEvt = A4J.AJAX.CloneEvent(event);
+ var query = A4J.AJAX.PrepareQuery(containerId, formId, domEvt, options);
if (query) {
var queue = A4J.AJAX.EventQueue.getOrCreateQueue(options, formId);
if (queue) {
- queue.push(query, options, event);
+ queue.push(query, options, domEvt);
} else {
- A4J.AJAX.SubmitQuery(query, options);
+ A4J.AJAX.SubmitQuery(query, options, domEvt);
}
}
@@ -838,10 +842,11 @@
// list of updated areas in response.
// statusID - DOM id request status tags.
// oncomplete - function for call after complete request.
-A4J.AJAX.SubmitRequest = function( containerId, formId, event, options ) {
- var query = A4J.AJAX.PrepareQuery(containerId, formId, event, options);
+A4J.AJAX.SubmitRequest = function( containerId, formId, event, options ) {
+ var domEvt = A4J.AJAX.CloneEvent(event);
+ var query = A4J.AJAX.PrepareQuery(containerId, formId, domEvt, options);
if (query) {
- A4J.AJAX.SubmitQuery(query, options);
+ A4J.AJAX.SubmitQuery(query, options, domEvt);
}
return false;
@@ -1237,13 +1242,12 @@
// Class for build query string.
-A4J.Query = function(containerId, form, event){
+A4J.Query = function(containerId, form){
// For detect AJAX Request.
this._query = {AJAXREQUEST : containerId};
this._oldSubmit = null ;
this._form = form;
this._containerId = containerId;
- this._event = event;
this._actionUrl = ( this._form.action)?this._form.action:this._form;
};
Modified: trunk/framework/impl/src/main/javascript/ajaxjsf/queue.js
===================================================================
--- trunk/framework/impl/src/main/javascript/ajaxjsf/queue.js 2008-11-25 19:04:46 UTC (rev
11378)
+++ trunk/framework/impl/src/main/javascript/ajaxjsf/queue.js 2008-11-25 19:18:13 UTC (rev
11379)
@@ -361,7 +361,7 @@
extend(EventQueueData.prototype, {
submit: function() {
this.query.appendParameter("AJAX:EVENTS_COUNT", this.eventsCount);
- this.request = A4J.AJAX.SubmitQuery(this.query, this.options)
+ this.request = A4J.AJAX.SubmitQuery(this.query, this.options, this.event);
var queue = this.queue;
this.request.queue = queue;