diff --git a/src/rpc.js b/src/rpc.js index 4a2ed4e47b..1660ddc811 100644 --- a/src/rpc.js +++ b/src/rpc.js @@ -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++) { diff --git a/src/session.js b/src/session.js index 59eaf61948..054d6576f7 100644 --- a/src/session.js +++ b/src/session.js @@ -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': [] }), diff --git a/src/window.js b/src/window.js index dd24ac88b6..584fac9bb1 100644 --- a/src/window.js +++ b/src/window.js @@ -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] };