[imp] login improvements

bzr revid: nicolas.vanhoren@openerp.com-20110608094528-kht3wkv3jo6trprk
This commit is contained in:
niv-openerp 2011-06-08 11:45:28 +02:00
commit 61c1c1e88c
3 changed files with 57 additions and 7 deletions

View File

@ -94,6 +94,12 @@ body.openerp {
.openerp .login .oe_box2 td select {
width: 100%;
}
.openerp .login .oe_box2 td.oe_remember {
text-align:left;
}
.openerp .login .oe_box2 td.oe_remember input {
width: inherit;
}
.openerp .login .oe_login_right_pane {
padding:70px 35px 5px 10px;
min-width: 200px;

View File

@ -776,6 +776,17 @@ openerp.base.Database = openerp.base.Controller.extend({
openerp.base.Login = openerp.base.Controller.extend({
init: function(session, element_id) {
this._super(session, element_id);
this.has_local_storage = typeof(localStorage) != 'undefined';
this.selected_db = null;
this.selected_login = null;
this.selected_password = null;
this.remember = false;
if (this.has_local_storage && localStorage.getItem('remember_creditentials') === 'true') {
this.remember = true;
this.selected_db = localStorage.getItem('last_db_login_success');
this.selected_login = localStorage.getItem('last_login_login_success');
this.selected_password = localStorage.getItem('last_password_login_success');
}
},
start: function() {
var self = this;
@ -786,10 +797,10 @@ openerp.base.Login = openerp.base.Controller.extend({
self.display();
});
},
display: function() {
display: function() {
this.$element.html(QWeb.render("Login", this));
this.$element.find("form").submit(this.on_submit);
},
},
on_login_invalid: function() {
this.$element.closest(".openerp").addClass("login-mode");
},
@ -803,10 +814,24 @@ openerp.base.Login = openerp.base.Controller.extend({
var db = $e.find("form [name=db]").val();
var login = $e.find("form input[name=login]").val();
var password = $e.find("form input[name=password]").val();
var remember = $e.find("form input[name=remember]").attr('checked');
//$e.hide();
// Should hide then call callback
this.session.session_login(db, login, password, function() {
if(self.session.session_is_valid()) {
if (self.has_local_storage) {
if(remember) {
localStorage.setItem('remember_creditentials', 'true');
localStorage.setItem('last_db_login_success', db);
localStorage.setItem('last_login_login_success', login);
localStorage.setItem('last_password_login_success', password);
} else {
localStorage.setItem('remember_creditentials', '');
localStorage.setItem('last_db_login_success', '');
localStorage.setItem('last_login_login_success', '');
localStorage.setItem('last_password_login_success', '');
}
}
self.on_login_valid();
} else {
self.$element.addClass("login_invalid");

View File

@ -60,14 +60,20 @@
<table align="center" cellspacing="2px" cellpadding="0">
<tr>
<td><label for="db">Database:</label></td>
<td class="oe_field_value">
<td>
<t t-if="!db_list">
<input type="text" name="db" value="trunk" autofocus="true"/>
</t>
<t t-if="db_list">
<select name="db">
<t t-foreach="db_list" t-as="db">
<option t-att-value="db" t-att-selected="db == 'trunk'"><t t-esc="db"/></option>
<t t-if="selected_db === db">
<option t-att-value="db" selected="true">
<t t-esc="db"/></option>
</t>
<t t-if="selected_db !== db">
<option t-att-value="db"><t t-esc="db"/></option>
</t>
</t>
</select>
</t>
@ -75,15 +81,28 @@
</tr>
<tr>
<td><label for="login">User:</label></td>
<td class="oe_field_value"><input type="text" name="login" value="admin" autofocus="true"/></td>
<td><input type="text" name="login"
t-att-value="selected_login || ''" autofocus="true"/></td>
</tr>
<tr>
<td><label for="password">Password:</label></td>
<td class="oe_field_value"><input type="password" name="password" value="a"/></td>
<td><input type="password" name="password"
t-att-value="selected_password || ''"/></td>
</tr>
<tr t-if="has_local_storage">
<td><label for="remember">Rember password:</label></td>
<td class="oe_remember">
<t t-if="remember">
<input type="checkbox" name="remember" checked="yes"/>
</t>
<t t-if="!remember">
<input type="checkbox" name="remember"/>
</t>
</td>
</tr>
<tr>
<td></td>
<td class="oe_field_value">
<td>
<button type="submit" name="submit">Login</button>
</td>
</tr>