[IMP] Clean signup show/hide. Add 'reset' state

bzr revid: fme@openerp.com-20130226150329-uny1inbelywkxu35
This commit is contained in:
Fabien Meghazi
2013-02-26 16:03:29 +01:00
parent dafdd4d967
commit 3f6a5a465a
2 changed files with 38 additions and 28 deletions
+24 -17
View File
@@ -3,28 +3,39 @@ openerp.auth_signup = function(instance) {
var _t = instance.web._t;
instance.web.Login.include({
init: function() {
this._super.apply(this, arguments);
this.on('change:login-mode', this, function() {
/*
* Switches the login box to the select mode
* whith mode == [default|signup|reset]
*/
var self = this;
var mode = this.get('login-mode') || 'default';
self.$('*[data-modes]').each(function() {
var modes = $(this).data('modes').split(/\s+/);
$(this).toggle(modes.indexOf(mode) > -1);
});
});
},
start: function() {
var self = this;
this.set({ 'login-mode': 'default' });
var d = this._super();
d.done(function() {
self.$(".oe_signup_show").hide();
// to switch between the signup and regular login form
self.$('a.oe_signup_signup').click(function(ev) {
if (ev) {
ev.preventDefault();
}
self.$el.addClass("oe_login_signup");
self.$(".oe_signup_show").show();
self.$(".oe_signup_hide").hide();
self.set({ 'login-mode': 'signup' });
return false;
});
self.$('a.oe_signup_back').click(function(ev) {
if (ev) {
ev.preventDefault();
}
self.$el.removeClass("oe_login_signup");
self.$(".oe_signup_show").hide();
self.$(".oe_signup_hide").show();
self.set({ 'login-mode': 'default' });
delete self.params.token;
return false;
});
@@ -51,22 +62,18 @@ openerp.auth_signup = function(instance) {
// bind reset password link
self.$('a.oe_signup_reset_password').click(self.do_reset_password);
// make signup link and reset password link visible only when enabled
self.$('a.oe_signup_signup').hide();
self.$('a.oe_signup_reset_password').hide();
if (dbname) {
self.rpc("/auth_signup/get_config", {dbname: dbname})
.done(function(result) {
if (result.signup) {
self.$('a.oe_signup_signup').show();
self.set({ 'login-mode': 'signup' });
}
if (result.reset_password) {
self.$('a.oe_signup_reset_password').show();
self.set({ 'login-mode': 'reset' });
}
});
}
});
return d;
},
@@ -76,9 +83,7 @@ openerp.auth_signup = function(instance) {
this.on_db_loaded([result.db]);
if (result.token) {
// switch to signup mode, set user name and login
this.$el.addClass("oe_login_signup");
self.$(".oe_signup_show").show();
self.$(".oe_signup_hide").hide();
this.set({ 'login-mode': 'signup' });
this.$("form input[name=name]").val(result.name).attr("readonly", "readonly");
if (result.login) {
this.$("form input[name=login]").val(result.login).attr("readonly", "readonly");
@@ -88,6 +93,7 @@ openerp.auth_signup = function(instance) {
} else {
// remain in login mode, set login if present
delete this.params.token;
this.set({ 'login-mode': 'default' });
this.$("form input[name=login]").val(result.login || "");
}
},
@@ -105,7 +111,8 @@ openerp.auth_signup = function(instance) {
if (ev) {
ev.preventDefault();
}
if (this.$el.hasClass("oe_login_signup")) {
var login_mode = this.get('login-mode');
if (login_mode === 'signup' || login_mode === 'reset') {
// signup user (or reset password)
var db = this.$("form [name=db]").val();
var name = this.$("form input[name=name]").val();
@@ -5,24 +5,27 @@
<t t-extend="Login">
<t t-jquery="form ul:first li:contains('Username')" t-operation="before">
<li class="oe_signup_show">Name</li>
<li class="oe_signup_show"><input name="name" type="text"/></li>
<li data-modes="signup reset">Name</li>
<li data-modes="signup reset"><input name="name" type="text"/></li>
</t>
<t t-jquery="form ul:first li:contains('Username')" t-operation="replace">
<li class="oe_signup_hide">Username</li>
<li class="oe_signup_show">Username (Email)</li>
<li data-modes="default">Username</li>
<li data-modes="signup reset">Username (Email)</li>
</t>
<t t-jquery="form ul:first li:has(input[name=password])" t-operation="after">
<li class="oe_signup_show">Confirm Password</li>
<li class="oe_signup_show"><input name="confirm_password" type="password"/></li>
<li data-modes="signup reset">Confirm Password</li>
<li data-modes="signup reset"><input name="confirm_password" type="password"/></li>
</t>
<t t-jquery="form ul:first li:has(button[name=submit])" t-operation="replace">
<li>
<button class="oe_signup_hide" name="submit">Log in</button>
<button class="oe_signup_show" name="submit">Sign up</button>
<a class="oe_signup_hide oe_signup_signup" href="#">Sign Up</a>
<a class="oe_signup_show oe_signup_back" href="#">Back to Login</a>
<a class="oe_signup_reset_password" href="#">Reset password</a>
<button name="submit">
<span data-modes="default">Log in</span>
<span data-modes="signup">Sign Up</span>
<span data-modes="reset">Reset password</span>
</button>
<a class="oe_signup_signup" data-modes="default" href="#">Sign Up</a>
<a class="oe_signup_back" data-modes="signup reset" href="#">Back to Login</a>
<a class="oe_signup_reset_password" data-modes="default" href="#">Reset password</a>
</li>
</t>
</t>