[imp] made some modifications in rpc() that could possibly break compatibility, made the error_callback consistant (never overwrites the default one) and removed the default context

bzr revid: nicolas.vanhoren@openerp.com-20110629102858-8e6xyhgpeyo5kml2
This commit is contained in:
niv-openerp
2011-06-29 12:28:58 +02:00
parent 55fb19b0f7
commit 2810459e5e
2 changed files with 11 additions and 11 deletions
+10 -10
View File
@@ -350,15 +350,15 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b
* @param {Object} params call parameters
* @param {Function} success_callback function to execute on RPC call success
* @param {Function} error_callback function to execute on RPC call failure
* one
* @returns {jQuery.Deferred} jquery-provided ajax deferred
*/
rpc: function(url, params, success_callback, error_callback) {
var self = this;
// Construct a JSON-RPC2 request, method is currently unused
params.session_id = this.session_id;
params.context = typeof(params.context) != "undefined" ? params.context : this.context;
// Use a default error handler unless defined
error_callback = typeof(error_callback) != "undefined" ? error_callback : this.on_rpc_error;
// niv: wtf?
//params.context = typeof(params.context) != "undefined" ? params.context : this.context;
// Call using the rpc_mode
var deferred = $.Deferred();
@@ -369,20 +369,20 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b
id:null
}).then(function () {deferred.resolve.apply(deferred, arguments);},
function(error) {deferred.reject(error, $.Event());});
return deferred.then(success_callback, function(error, event) {
deferred.fail(function(error2, event2) {
return deferred.fail(function() {
deferred.fail(function(error, event) {
if (!event.isDefaultPrevented()) {
error_callback(error2, event2);
self.on_rpc_error(error, event);
}
});
}).promise();
}).then(success_callback, error_callback).promise();
},
/**
* Raw JSON-RPC call
*
* @returns {jQuery.Deferred} ajax-based deferred object
*/
rpc_ajax: function(url, payload, success_callback, error_callback) {
rpc_ajax: function(url, payload) {
var self = this;
this.on_rpc_request();
// url can be an $.ajax option object
@@ -425,7 +425,7 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b
};
deferred.reject(error);
});
return deferred.promise().then(success_callback, error_callback);
return deferred.promise();
},
on_rpc_request: function() {
},
+1 -1
View File
@@ -201,7 +201,7 @@ class OpenERPSession(object):
ctx['context'] = ctx
# adding the context of the session to send to the openerp server
ccontext = nonliterals.CompoundContext(self.context, context_to_eval)
ccontext = nonliterals.CompoundContext(self.context, context_to_eval or {})
ccontext.session = self
return ccontext.evaluate(ctx)