odoo/addons/auth_signup/static/src/js/auth_signup.js

73 lines
3.0 KiB
JavaScript
Raw Normal View History

openerp.auth_signup = function(instance) {
instance.auth_signup = instance.auth_signup || {};
var _t = instance.web._t;
instance.web.Login.include({
start: function() {
var self = this;
var d = this._super();
// hide the signup fields in the case of a regular login
self.on_change_mode()
self.$("form input[name=signup]").click(self.on_change_mode);
// in case of a signup, retrieve the user information from the token
if (self.params.db && self.params.token) {
d = self.rpc("/auth_signup/retrieve", {dbname: self.params.db, token: self.params.token})
.done(self.on_token_loaded)
.fail(self.on_token_failed);
}
return d;
},
on_token_loaded: function(result) {
// set the name and login of user
this.selected_db = result.db;
this.on_db_loaded({db_list: [result.db]});
this.$("form input[name=signup]").val(result.login ? [] : ["check_signup"]);
this.$("form input[name=name]").val(result.name);
this.$("form input[name=login]").val(result.login || result.email);
this.$("form input[name=password]").val("");
this.$("form input[name=confirm_password]").val("");
this.on_change_mode();
},
on_token_failed: function(result) {
// currently does nothing
},
on_change_mode: function() {
// 'mode' has changed: regular login, sign up, reset password
var is_signup = this.$("input[name=signup]:checked").val();
this.$(".oe_signup").toggleClass('oe_form_invisible', false && !is_signup);
return true;
},
on_submit: function(ev) {
if (ev) {
ev.preventDefault();
}
if (this.params.token || this.$("input[name=signup]:checked").val()) {
// signup user (or reset password)
var db = this.params.db;
var name = this.$("form input[name=name]").val();
var login = this.$("form input[name=login]").val();
var password = this.$("form input[name=password]").val();
var confirm_password = this.$("form input[name=confirm_password]").val();
if (password && password === confirm_password) {
var params = {
dbname : db,
token: this.params.token,
name: name,
login: login,
password: password,
};
var url = "/auth_signup/signup?" + $.param(params);
window.location = url;
} else {
alert('Incorrect password; please retype your password.');
}
} else {
// regular login
this._super(ev);
}
},
});
};