diff --git a/CHANGELOG b/CHANGELOG index f31321969c..67a958ab5d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,4 @@ +* Manage custom login process * Add erase on Many2One * Re-position icons on Many2One widget diff --git a/src/sao.js b/src/sao.js index 0eeba0c960..76b181b70b 100644 --- a/src/sao.js +++ b/src/sao.js @@ -206,6 +206,9 @@ var Sao = {}; Sao.i18n.loadJSON(data); }); }; + Sao.i18n.getlang = function() { + return Sao.i18n.getLocale(); + }; Sao.i18n.setlang( (navigator.language || navigator.browserLanguge || diff --git a/src/session.js b/src/session.js index 96373b41be..1fbca7f130 100644 --- a/src/session.js +++ b/src/session.js @@ -18,46 +18,23 @@ get_auth: function() { return btoa(this.login + ':' + this.user_id + ':' + this.session); }, - do_login: function(login, password) { + do_login: function(login, parameters) { var dfd = jQuery.Deferred(); - var timeoutID = Sao.common.processing.show(); - var args = { - 'method': 'common.db.login', - 'params': [login, password] + var func = function(parameters) { + return { + 'method': 'common.db.login', + 'params': [login, parameters, Sao.i18n.getlang()] + }; }; - var ajax_prm = jQuery.ajax({ - 'contentType': 'application/json', - 'data': JSON.stringify(args), - 'dataType': 'json', - 'url': '/' + this.database + '/', - 'type': 'post', - 'complete': [function() { - Sao.common.processing.hide(timeoutID); - }] + new Sao.Login(func).run().then(function(result) { + this.user_id = result[0]; + this.session = result[1]; + dfd.resolve(); + }.bind(this), function() { + this.user_id = null; + this.session = null; + dfd.reject(); }); - - var ajax_success = function(data) { - if (data === null) { - Sao.common.warning.run('', - Sao.i18n.gettext('Unable to reach the server.')); - dfd.reject(); - } else if (data.error) { - Sao.common.error.run(data.error[0], data.error[1]); - dfd.reject(); - } else { - if (!data.result) { - this.user_id = null; - this.session = null; - dfd.reject(); - } else { - this.user_id = data.result[0]; - this.session = data.result[1]; - dfd.resolve(); - } - } - }; - ajax_prm.success(ajax_success.bind(this)); - ajax_prm.error(dfd.reject); return dfd.promise(); }, do_logout: function() { @@ -114,12 +91,6 @@ 'id': 'login-login', 'placeholder': Sao.i18n.gettext('Login') }); - dialog.password_input = jQuery('', { - 'class': 'form-control', - 'type': 'password', - 'id': 'login-password', - 'placeholder': Sao.i18n.gettext('Password') - }); dialog.body.append(jQuery('
', { 'class': 'form-group' }).append(jQuery('