diff --git a/addons/web/common/http.py b/addons/web/common/http.py index ad23dbc0c89..098731183ba 100644 --- a/addons/web/common/http.py +++ b/addons/web/common/http.py @@ -448,7 +448,7 @@ class Root(object): params = urllib.urlencode(request.args) return werkzeug.utils.redirect(self.root + '?' + params, 301)( environ, start_response) - elif request.path == '/mobile' or ('#' in request.path): + elif request.path == '/mobile': return werkzeug.utils.redirect( '/web_mobile/static/src/web_mobile.html', 301)(environ, start_response) diff --git a/addons/web_mobile/static/src/css/web_mobile.css b/addons/web_mobile/static/src/css/web_mobile.css index 4017d5ae7e3..2c7061c87a6 100644 --- a/addons/web_mobile/static/src/css/web_mobile.css +++ b/addons/web_mobile/static/src/css/web_mobile.css @@ -22,3 +22,8 @@ .login_valid .login_error_message { display: none; } +.desc{ + margin:0em 0 0em; + font-size:11px; + font-weight:normal; +} 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/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js index 448bc11c5aa..56754491c95 100644 --- a/addons/web_mobile/static/src/js/form_mobile.js +++ b/addons/web_mobile/static/src/js/form_mobile.js @@ -47,6 +47,7 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ var notebooks = view_fields[j]; } } + self.hidden_fields(get_fields,fields); self.$element.html(self.render({'get_fields': get_fields, 'notebooks': notebooks || false, 'fields' : fields, 'values' : values ,'temp_flag':'1'})); self.$element.find("[data-role=header]").find('h1').html(self.head_title); self.$element.find("[data-role=header]").find('#home').click(function(){ @@ -56,11 +57,12 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ for (var k = 0; k < notebooks.children.length; k++) { if (notebooks.children[k].attrs.string == $(this).attr('id')) { get_fields_notebook = self.get_fields(notebooks.children[k].children); + self.hidden_fields(get_fields_notebook,fields); $(this).find('div#page_content').html(self.render({'get_fields': get_fields_notebook,'fields' : fields, 'values' : values})); } } }); - self.$element.find('#o2m_m2m').click(function(ev) { + self.$element.find('#o2m_m2m').click(function(ev) { ev.preventDefault(); ev.stopPropagation(); var relational = $(this).attr('for'); @@ -68,12 +70,16 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ var rel_ids = values[relational]; var head = rel_field.string; if (rel_ids) { + var list_ids = []; var datasearch = new openerp.web.DataSetSearch(self, rel_field.relation, rel_field.context); datasearch.domain=[['id', 'in', rel_ids]]; datasearch.read_slice(['name'], {context:rel_field.context, domain: datasearch.domain, limit:80}, function(listrec){ + _.each(listrec, function(i) { + list_ids.push(i.id); + }); _.extend(rel_field.context,{"html_name_get" : true}); var dataset = new openerp.web.DataSet(self, rel_field.relation,rel_field.context); - dataset.name_get(listrec,function(res){ + dataset.name_get(list_ids,function(res){ var additional = ""; if(res['html_name_get']){ additional = res['display']; @@ -99,6 +105,7 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ } }); $.mobile.changePage("#oe_list_"+relational+"_"+self.element_id, "slide", false, true); + $('[id^="oe_list_'+relational+'_'+self.element_id+'"]').find("a#list-id").find('span').addClass('desc'); }else{ $.mobile.changePage("#oe_list_"+relational+"_"+self.element_id, "slide", false, true); } @@ -195,6 +202,13 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({ }); }); } + }, + hidden_fields: function(get_fields, fields) { + for(var i=0;i + @@ -26,10 +27,20 @@ - - - + + + + + + + + + + + + + @@ -38,7 +49,10 @@