[imp] implemented logout + improved login design
bzr revid: nicolas.vanhoren@openerp.com-20110606090454-b19vgrwvlj6v2fp6
This commit is contained in:
@@ -61,19 +61,20 @@ body.openerp {
|
||||
/* Login */
|
||||
.openerp .login {
|
||||
display: none;
|
||||
padding: 6px;
|
||||
z-index: 1002;
|
||||
width: 34%;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 33%;
|
||||
|
||||
}
|
||||
.openerp .login_valid {
|
||||
background-color: #8f8;
|
||||
}
|
||||
.openerp .login_invalid {
|
||||
background-color: #f88;
|
||||
}
|
||||
|
||||
.openerp.login-mode .login {
|
||||
display: block;
|
||||
}
|
||||
.openerp.login-mode #oe_menu,
|
||||
.openerp.login-mode #oe_secondary_menu,
|
||||
.openerp.login-mode #oe_app {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Main*/
|
||||
|
||||
@@ -441,6 +441,13 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b
|
||||
this.set_cookie('uid', this.uid);
|
||||
this.set_cookie('session_id', this.session_id);
|
||||
},
|
||||
logout: function() {
|
||||
this.uid = this.get_cookie('uid');
|
||||
this.session_id = this.get_cookie('session_id');
|
||||
this.set_cookie('uid', false);
|
||||
this.set_cookie('session_id', false);
|
||||
this.on_session_invalid(function() {});
|
||||
},
|
||||
/**
|
||||
* Fetches a cookie stored by an openerp session
|
||||
*
|
||||
@@ -777,14 +784,14 @@ openerp.base.Login = openerp.base.Controller.extend({
|
||||
on_login_invalid: function() {
|
||||
this.$element
|
||||
.removeClass("login_valid")
|
||||
.addClass("login_invalid")
|
||||
.show();
|
||||
.addClass("login_invalid");
|
||||
this.$element.closest(".openerp").addClass("login-mode");
|
||||
},
|
||||
on_login_valid: function() {
|
||||
this.$element
|
||||
.removeClass("login_invalid")
|
||||
.addClass("login_valid")
|
||||
.hide();
|
||||
.addClass("login_valid");
|
||||
this.$element.closest(".openerp").removeClass("login-mode");
|
||||
},
|
||||
on_submit: function(ev) {
|
||||
ev.preventDefault();
|
||||
@@ -810,6 +817,9 @@ openerp.base.Login = openerp.base.Controller.extend({
|
||||
unique: true,
|
||||
callback: continuation
|
||||
});
|
||||
},
|
||||
on_logout: function() {
|
||||
this.session.logout();
|
||||
}
|
||||
});
|
||||
|
||||
@@ -822,7 +832,9 @@ openerp.base.Header = openerp.base.Controller.extend({
|
||||
},
|
||||
do_update: function() {
|
||||
this.$element.html(QWeb.render("Header", this));
|
||||
}
|
||||
this.$element.find(".logout").click(this.on_logout);
|
||||
},
|
||||
on_logout: function() {}
|
||||
});
|
||||
|
||||
openerp.base.Menu = openerp.base.Controller.extend({
|
||||
@@ -937,6 +949,7 @@ openerp.base.WebClient = openerp.base.Controller.extend({
|
||||
|
||||
this.header = new openerp.base.Header(this.session, "oe_header");
|
||||
this.login = new openerp.base.Login(this.session, "oe_login");
|
||||
this.header.on_logout.add(this.login.on_logout);
|
||||
|
||||
this.session.on_session_invalid.add(this.login.do_ask_login);
|
||||
this.session.on_session_valid.add_last(this.header.do_update);
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
<p>#{text}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="oe_login" class="login"></div>
|
||||
<table border="0" cellpadding="0" cellspacing="0" width="100%" height="100%" class="main_table">
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
@@ -34,6 +33,11 @@
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div id="oe_login" class="login"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div id="oe_footer" class="oe_footer">
|
||||
|
||||
Reference in New Issue
Block a user