mirror of
https://github.com/ACSPRI/queXS
synced 2024-04-02 12:12:16 +00:00
Import from DCARF SVN
This commit is contained in:
144
include/pear/data/HTML_AJAX/js/Request.js
Normal file
144
include/pear/data/HTML_AJAX/js/Request.js
Normal file
@@ -0,0 +1,144 @@
|
||||
/**
|
||||
* Class that contains everything needed to make a request
|
||||
* This includes:
|
||||
* The url were calling
|
||||
* If were calling a remote method, the class and method name
|
||||
* The payload, unserialized
|
||||
* The timeout for async calls
|
||||
* The callback method
|
||||
* Optional event handlers: onError, Load, Send
|
||||
* A serializer instance
|
||||
*
|
||||
* @category HTML
|
||||
* @package AJAX
|
||||
* @author Joshua Eichorn <josh@bluga.net>
|
||||
* @copyright 2005 Joshua Eichorn
|
||||
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
|
||||
*
|
||||
* See Main.js for author/license details
|
||||
*/
|
||||
function HTML_AJAX_Request(serializer) {
|
||||
this.serializer = serializer;
|
||||
}
|
||||
HTML_AJAX_Request.prototype = {
|
||||
|
||||
// Instance of a serializer
|
||||
serializer: null,
|
||||
|
||||
// Is this an async request
|
||||
isAsync: false,
|
||||
|
||||
// HTTP verb
|
||||
requestType: 'POST',
|
||||
|
||||
// The actual URL the request is sent to
|
||||
requestUrl: '',
|
||||
|
||||
// Remote Class
|
||||
className: null,
|
||||
|
||||
// Remote Method
|
||||
methodName: null,
|
||||
|
||||
// Timeout in milliseconds for requests
|
||||
timeout: 20000,
|
||||
|
||||
// unserialized data, for rpc calls use add args, to send raw data just set this directly
|
||||
args: null,
|
||||
|
||||
// async callback method
|
||||
callback: null,
|
||||
|
||||
// Queue to push this request too
|
||||
queue: 'default',
|
||||
|
||||
// default priority
|
||||
priority: 0,
|
||||
|
||||
// a hash of headers to add to add to this request
|
||||
customHeaders: {'X-Requested-With': 'XMLHttpRequest', 'X-Ajax-Engine': 'HTML_AJAX/0.5.2'},
|
||||
|
||||
// true if this request will be sent using iframes
|
||||
iframe: false,
|
||||
|
||||
// is this a grab request? if so we need to proxy for iframes
|
||||
grab: false,
|
||||
|
||||
// true if this request should expect a multipart response
|
||||
multipart: false,
|
||||
|
||||
// remote callback
|
||||
phpCallback: false,
|
||||
|
||||
/**
|
||||
* Add an argument for the remote method
|
||||
* @param string argument name
|
||||
* @param mixed value
|
||||
* @return void
|
||||
* @throws Error code 1004
|
||||
*/
|
||||
addArg: function(name, value)
|
||||
{
|
||||
if ( !this.args ) {
|
||||
this.args = [];
|
||||
}
|
||||
if (!/[^a-zA-Z_0-9]/.test(name) ) {
|
||||
this.args[name] = value;
|
||||
} else {
|
||||
throw new Error('Invalid parameter name ('+name+')');
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* Get the payload in a serialized manner
|
||||
*/
|
||||
getSerializedPayload: function() {
|
||||
return this.serializer.serialize(this.args);
|
||||
},
|
||||
|
||||
/**
|
||||
* Get the content type
|
||||
*/
|
||||
getContentType: function() {
|
||||
return this.serializer.contentType;
|
||||
},
|
||||
|
||||
/**
|
||||
* Get the complete url, adding in any needed get params for rpc
|
||||
*/
|
||||
completeUrl: function() {
|
||||
if (this.className || this.methodName) {
|
||||
this.addGet('c', this.className);
|
||||
this.addGet('m', this.methodName);
|
||||
}
|
||||
if (this.phpCallback) {
|
||||
if (HTML_AJAX_Util.getType(this.phpCallback) == 'array') {
|
||||
this.phpCallback = this.phpCallback.join('.');
|
||||
}
|
||||
this.addGet('cb', this.phpCallback);
|
||||
}
|
||||
if (this.multipart) {
|
||||
this.addGet('multipart', '1');
|
||||
}
|
||||
return this.requestUrl;
|
||||
},
|
||||
|
||||
/**
|
||||
* Compare to another request by priority
|
||||
*/
|
||||
compareTo: function(other) {
|
||||
if (this.priority == other.priority) {
|
||||
return 0;
|
||||
}
|
||||
return (this.priority > other.priority ? 1 : -1);
|
||||
},
|
||||
|
||||
/**
|
||||
* Add a GET argument
|
||||
*/
|
||||
addGet: function(name, value) {
|
||||
var url = new String(this.requestUrl);
|
||||
url += (url.indexOf('?') < 0 ? '?' : '&') + escape(name) + '=' + escape(value);
|
||||
this.requestUrl = url;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user