Comply to the JSON-RPC specification
issue5782 review28651002
This commit is contained in:
1 parent
9900f149f7
commit
430058b891
3 files changed
+19
-9
No files matched your search
+13
-8
@@ -18,6 +18,7 @@
|
||||
},
|
||||
'contentType': 'application/json',
|
||||
'data': JSON.stringify(Sao.rpc.prepareObject({
|
||||
'id': Sao.rpc.id++,
|
||||
'method': args.method,
|
||||
'params': params
|
||||
})),
|
||||
@@ -83,12 +84,6 @@
|
||||
'glyphicon-alert').always(dfd.reject);
|
||||
return;
|
||||
}
|
||||
} else if (data.error[0].startsWith('403')) {
|
||||
//Try to relog
|
||||
Sao.Session.renew(session).then(function() {
|
||||
Sao.rpc(args, session).then(dfd.resolve, dfd.reject);
|
||||
}, dfd.reject);
|
||||
return;
|
||||
} else {
|
||||
Sao.common.error.run(data.error[0], data.error[1]);
|
||||
}
|
||||
@@ -99,8 +94,16 @@
|
||||
};
|
||||
|
||||
var ajax_error = function(query, status_, error) {
|
||||
Sao.common.error.run(status_, error);
|
||||
dfd.reject();
|
||||
if (status_ == 403) {
|
||||
//Try to relog
|
||||
Sao.Session.renew(session).then(function() {
|
||||
Sao.rpc(args, session).then(dfd.resolve, dfd.reject);
|
||||
}, dfd.reject);
|
||||
return;
|
||||
} else {
|
||||
Sao.common.error.run(status_, error);
|
||||
dfd.reject();
|
||||
}
|
||||
};
|
||||
ajax_prm.success(ajax_success);
|
||||
ajax_prm.error(ajax_error);
|
||||
@@ -108,6 +111,8 @@
|
||||
return dfd.promise();
|
||||
};
|
||||
|
||||
Sao.rpc.id = 0;
|
||||
|
||||
Sao.rpc.convertJSONObject = function(value, index, parent) {
|
||||
if (value instanceof Array) {
|
||||
for (var i = 0, length = value.length; i < length; i++) {
|
||||
|
||||
+5
-1
@@ -42,6 +42,7 @@
|
||||
return jQuery.when();
|
||||
}
|
||||
var args = {
|
||||
'id': 0,
|
||||
'method': 'common.db.logout',
|
||||
'params': []
|
||||
};
|
||||
@@ -214,9 +215,11 @@
|
||||
}
|
||||
var dfd = jQuery.Deferred();
|
||||
var timeoutID = Sao.common.processing.show();
|
||||
var data = this.func(parameters);
|
||||
data.id = 0;
|
||||
var args = {
|
||||
'contentType': 'application/json',
|
||||
'data': JSON.stringify(this.func(parameters)),
|
||||
'data': JSON.stringify(data),
|
||||
'dataType': 'json',
|
||||
'url': '/' + this.session.database + '/',
|
||||
'type': 'post',
|
||||
@@ -278,6 +281,7 @@
|
||||
return jQuery.ajax({
|
||||
'contentType': 'application/json',
|
||||
'data': JSON.stringify({
|
||||
'id': 0,
|
||||
'method': 'common.db.list',
|
||||
'params': []
|
||||
}),
|
||||
|
||||
@@ -650,6 +650,7 @@
|
||||
Sao.Session.current_session.context);
|
||||
var func = function(parameters) {
|
||||
return {
|
||||
'id': 0,
|
||||
'method': 'model.res.user.set_preferences',
|
||||
'params': [values, parameters, context]
|
||||
};
|
||||
|
||||
Reference in new issue
Block a user