Вход Регистрация
Файл: static/plugins/base/js/ajax_utils.js
Строк: 71
<?php
var PEEP_Component_Ajax = function(urlResponder) {
    
this.urlResponder = urlResponder;
    
this.queue = [];
};

PEEP_Component_Ajax.prototype = {
    
    
addRequest: function(command, data, success) {
        var 
request = {
            
command: command,
            
data: data
        
};
        
this.queue.push({
            
request: request,
            
success: success
        
});
    },
        
    
sendQueue: function(successCallback) {
        
        if ( !
this.queue.length ) {
            return;
        }
        
        var 
request = [];
        var 
success = {};
        
        for (var 
i in this.queue) {
            
this.queue[i].request.commandId = i;
            
request.push(this.queue[i].request);
            if (
this.queue[i].success) {
                
success[i] = this.queue[i].success;
            }
        }
        
        
this._ajaxSend(request, success, successCallback)
                
        
this.queue = [];
    },

        
_ajaxSend: function(request, callbackStack, resultCallback) {
            var 
jsonRequest = encodeURIComponent( JSON.stringify(request) );
        
            var 
ajaxOptions = {
                    
url: this.urlResponder,
                    
dataType: 'json',
                    
type: 'POST',
                    
data: {request: jsonRequest},
                    
success: function(result) {
                            if ( 
typeof result !== "object" ) {
                                var 
fb = new PEEP_FloatBox({
                                    
$title: 'Incorrect responce',
                                    
$contents: result.toString(),
                                    
width: '100%'
                                
});
                            }
                            var 
sharedData = {};
                            $.
each(result.responseQueue, function(commandID, resultData) {
                                    if (
callbackStack[commandID]) {
                                        
callbackStack[commandID](resultData, sharedData);
                                    }
                            });

                            $.
each(result.debug, function() {
                                    if (
console) {
                                            
console.log(this);
                                    } else {
                                            
alert(JSON.stringify(this));
                                    }
                            });
                            
                            if (
resultCallback) {
                                    
resultCallback(result, sharedData);
                            }
                    },
                    
error: function(r) {
                        var 
fb = new PEEP_FloatBox({
                            
$title: 'Incorrect responce',
                            
$contents: r.responseText,
                            
width: '100%'
                        
});
                    }
                };

                $.
ajax(ajaxOptions);
        },

        
send: function(command, data, success) {
            
            var 
request = {
                
command: command,
                
data: data,
                
commandId: 0
            
};

            
this._ajaxSend([request],[success] );
        }
}
?>
Онлайн: 0
Реклама