diff --git a/addons/web_mobile/static/src/js/chrome_mobile.js b/addons/web_mobile/static/src/js/chrome_mobile.js
index ff75b26ef66..a4e8f0acd44 100644
--- a/addons/web_mobile/static/src/js/chrome_mobile.js
+++ b/addons/web_mobile/static/src/js/chrome_mobile.js
@@ -17,14 +17,17 @@ openerp.web_mobile.MobileWebClient = openerp.web.Widget.extend({
init: function(element_id) {
this._super(null, element_id);
- openerp.web.qweb.add_template("xml/web_mobile.xml");
- var params = {};
- this.$element.html(this.render());
this.crashmanager = new openerp.web.CrashManager(this);
this.login = new openerp.web_mobile.Login(this, "oe_login");
},
start: function() {
- this.login.start();
+ this._super.apply(this, arguments);
+ var self = this;
+ this.session.bind().then(function() {
+ openerp.web.qweb.add_template("xml/web_mobile.xml");
+ self.$element.html(self.render());
+ self.login.start();
+ });
}
});
@@ -45,7 +48,8 @@ openerp.web_mobile.Login = openerp.web.Widget.extend({
jQuery("#oe_header").children().remove();
this.rpc("/web/database/get_list", {}, function(result) {
self.db_list = result.db_list;
- self.$element.html(self.render(self));
+ $('#'+self.element_id).html(self.render(self));
+ self.$element = $('#'+self.element_id);
if(self.session.db!=""){
self.$element.find("#database").val(self.session.db);
}
@@ -64,7 +68,7 @@ openerp.web_mobile.Login = openerp.web.Widget.extend({
var password = $e.find("div input[name=password]").val();
//$e.hide();
// Should hide then call callback
- this.session.login(db, login, password, function() {
+ this.session.session_authenticate(db, login, password).then(function() {
if(self.session.session_is_valid()) {
if (self.has_local_storage) {
if(self.remember_creditentials) {
@@ -78,9 +82,13 @@ openerp.web_mobile.Login = openerp.web.Widget.extend({
}
}
self.on_login_valid();
- } else {
+ }
+ });
+ this.session.on_session_invalid.add({
+ callback: function () {
self.on_login_invalid();
- }
+ },
+ unique: true
});
},
on_login_invalid: function() {
@@ -185,6 +193,7 @@ openerp.web_mobile.Menu = openerp.web.Widget.extend({
this.menu = false;
},
start: function() {
+ this._super.apply(this, arguments);
this.rpc("/web/menu/load", {}, this.on_loaded);
},
on_loaded: function(data) {
diff --git a/addons/web_mobile/static/src/web_mobile.html b/addons/web_mobile/static/src/web_mobile.html
index 51f7633bdda..b63ddb2835f 100755
--- a/addons/web_mobile/static/src/web_mobile.html
+++ b/addons/web_mobile/static/src/web_mobile.html
@@ -13,6 +13,7 @@
+
@@ -26,10 +27,20 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+