diff options
Diffstat (limited to 'addons/web_mobile/static/src')
| -rw-r--r-- | addons/web_mobile/static/src/js/chrome_mobile.js | 219 | ||||
| -rw-r--r-- | addons/web_mobile/static/src/js/form_mobile.js | 79 | ||||
| -rw-r--r-- | addons/web_mobile/static/src/js/list_mobile.js | 81 | ||||
| -rwxr-xr-x | addons/web_mobile/static/src/web_mobile.html | 25 | ||||
| -rw-r--r-- | addons/web_mobile/static/src/xml/web_mobile.xml | 250 |
5 files changed, 369 insertions, 285 deletions
diff --git a/addons/web_mobile/static/src/js/chrome_mobile.js b/addons/web_mobile/static/src/js/chrome_mobile.js index 551856e01fb..2b9d8600fef 100644 --- a/addons/web_mobile/static/src/js/chrome_mobile.js +++ b/addons/web_mobile/static/src/js/chrome_mobile.js @@ -5,22 +5,21 @@ openerp.web_mobile.chrome_mobile = function(openerp) { openerp.web_mobile.mobilewebclient = function(element_id) { - // TODO Helper to start mobile webclient rename it openerp.base.webclient + // TODO Helper to start mobile webclient rename it openerp.web.webclient var client = new openerp.web_mobile.MobileWebClient(element_id); client.start(); return client; }; -openerp.web_mobile.MobileWebClient = openerp.base.Widget.extend({ +openerp.web_mobile.MobileWebClient = openerp.web.Widget.extend({ init: function(element_id) { - var self = this; this._super(null, element_id); QWeb.add_template("xml/web_mobile.xml"); var params = {}; this.$element.html(QWeb.render("WebClient", {})); - this.session = new openerp.base.Session("oe_errors"); - this.crashmanager = new openerp.base.CrashManager(this); - this.login = new openerp.web_mobile.Login(this, "oe_app"); + this.session = new openerp.web.Session("oe_errors"); + this.crashmanager = new openerp.web.CrashManager(this); + this.login = new openerp.web_mobile.Login(this, "oe_login"); // this.session.on_session_invalid.add(this.login.do_ask_login); }, start: function() { @@ -29,14 +28,11 @@ openerp.web_mobile.MobileWebClient = openerp.base.Widget.extend({ } }); -openerp.web_mobile.Login = openerp.base.Widget.extend({ - init: function(session, element_id) { - this._super(session, element_id); - }, +openerp.web_mobile.Login = openerp.web.Widget.extend({ start: function() { var self = this; jQuery("#oe_header").children().remove(); - this.rpc("/base/database/get_list", {}, function(result) { + this.rpc("/web/database/get_list", {}, function(result) { var selection = new openerp.web_mobile.Selection(); self.db_list = result.db_list; self.$element.html(QWeb.render("Login", self)); @@ -53,6 +49,7 @@ openerp.web_mobile.Login = openerp.base.Widget.extend({ var db = $e.find("div select[name=database]").val(); var login = $e.find("div input[name=login]").val(); var password = $e.find("div input[name=password]").val(); + //$e.hide(); // Should hide then call callback this.session.session_login(db, login, password, function() { @@ -74,8 +71,9 @@ openerp.web_mobile.Login = openerp.base.Widget.extend({ .removeClass("login_invalid") .addClass("login_valid"); //.hide(); - this.homepage = new openerp.web_mobile.HomePage(this, "oe_app"); - this.homepage.start(); + + this.menu = new openerp.web_mobile.Menu(this, "oe_menu", "oe_secondary_menu"); + this.menu.start(); }, do_ask_login: function(continuation) { this.on_login_invalid(); @@ -87,66 +85,60 @@ openerp.web_mobile.Login = openerp.base.Widget.extend({ } }); -openerp.web_mobile.HomePage = openerp.base.Widget.extend({ +openerp.web_mobile.Header = openerp.web.Widget.extend({ init: function(session, element_id) { this._super(session, element_id); }, start: function() { - this.$element.html(QWeb.render("HomePage", {})); - this.header = new openerp.web_mobile.Header(this, "oe_header"); - this.shortcuts = new openerp.web_mobile.Shortcuts(this, "oe_shortcuts"); - this.menu = new openerp.web_mobile.Menu(this, "oe_menu", "oe_secondary_menu"); - this.options = new openerp.web_mobile.Options(this, "oe_options"); - this.header.start(); - this.shortcuts.start(); - this.menu.start(); - this.options.start(); - jQuery("#oe_header").find("h1").html('Home'); - this.$element.find("a").click(this.on_clicked); + var self = this; + self.$element.html(QWeb.render("Header", this)); } }); -openerp.web_mobile.Header = openerp.base.Widget.extend({ +openerp.web_mobile.Footer = openerp.web.Widget.extend({ init: function(session, element_id) { this._super(session, element_id); }, start: function() { var self = this; - self.$element.html(QWeb.render("Header", this)); - self.$element.find("a").click(this.on_clicked); - }, - on_clicked: function(ev) { - $opt = $(ev.currentTarget); - current_id = $opt.attr('id'); - if (current_id == 'home') { - this.homepage = new openerp.web_mobile.HomePage(this, "oe_app"); - this.homepage.start(); - } + self.$element.html(QWeb.render("Footer", this)); } }); -openerp.web_mobile.Shortcuts = openerp.base.Widget.extend({ +openerp.web_mobile.Shortcuts = openerp.web.Widget.extend({ init: function(session, element_id) { this._super(session, element_id); }, start: function() { var self = this; - this.rpc('/base/session/sc_list',{} ,function(res){ + this.rpc('/web/session/sc_list',{} ,function(res){ self.$element.html(QWeb.render("Shortcuts", {'sc' : res})) - self.$element.find("a").click(self.on_clicked); - }) + self.$element.find('#content').find("a").click(self.on_clicked); + self.$element.find("#footer").find('#preference').click(function(){ + if(!$('#oe_options').html().length){ + this.options = new openerp.web_mobile.Options(self, "oe_options"); + this.options.start(); + } + else{ + self.$element.find("#footer").find('#preference').attr('href','#oe_options'); + } + }); + $.mobile.changePage($("#oe_shortcuts"), "slide", true, true); + }); }, on_clicked: function(ev) { $shortcut = $(ev.currentTarget); id = $shortcut.data('menu'); res_id = $shortcut.data('res'); - jQuery("#oe_header").find("h1").html($shortcut.data('name')); - this.listview = new openerp.web_mobile.ListView(this, "oe_app", res_id); +// this.header = new openerp.web_mobile.Header(this, "oe_header"); + this.listview = new openerp.web_mobile.ListView(this, "oe_list", res_id); +// this.header.start(); this.listview.start(); + jQuery("#oe_header").find("h1").html($shortcut.data('name')); } }); -openerp.web_mobile.Menu = openerp.base.Widget.extend({ +openerp.web_mobile.Menu = openerp.web.Widget.extend({ init: function(session, element_id, secondary_menu_id) { this._super(session, element_id); this.secondary_menu_id = secondary_menu_id; @@ -154,96 +146,141 @@ openerp.web_mobile.Menu = openerp.base.Widget.extend({ this.menu = false; }, start: function() { - this.rpc("/base/menu/load", {}, this.on_loaded); + this.rpc("/web/menu/load", {}, this.on_loaded); }, on_loaded: function(data) { + var self = this; this.data = data; this.$element.html(QWeb.render("Menu", this.data)); - this.$element.add(this.$secondary_menu).find("a").click(this.on_menu_click); + + this.$element.find("#footer").find('#shrotcuts').click(function(){ + if(!$('#oe_shortcuts').html().length){ + this.shortcuts = new openerp.web_mobile.Shortcuts(self, "oe_shortcuts"); + this.shortcuts.start(); + } + else{ + self.$element.find("#footer").find('#shrotcuts').attr('href','#oe_shortcuts'); + } + }); + this.$element.find("#footer").find('#preference').click(function(){ + if(!$('#oe_options').html().length){ + this.options = new openerp.web_mobile.Options(self, "oe_options"); + this.options.start(); + } + else{ + self.$element.find("#footer").find('#preference').attr('href','#oe_options'); + } + }); + this.$element.add(this.$secondary_menu).find("#content").find('a').click(this.on_menu_click); + $.mobile.changePage($("#oe_menu"), "slide", true, true); }, on_menu_click: function(ev, id) { - $menu = $(ev.currentTarget); + var $menu = $(ev.currentTarget); id = $menu.data('menu'); for (var i = 0; i < this.data.data.children.length; i++) { if (this.data.data.children[i].id == id) { this.children = this.data.data.children[i]; } } - jQuery("#oe_header").find("h1").html($menu.data('name')); this.$element .removeClass("login_valid") .addClass("secondary_menu"); //.hide(); - this.secondary = new openerp.web_mobile.Secondary(this, "oe_app", this.children); - this.secondary.start(); + if(!$('#oe_sec_menu').html().length){ + this.secondary = new openerp.web_mobile.Secondary(this, "oe_sec_menu", this.children); + this.secondary.start(); + }else{ + this.$element.find("#content").find('a').attr('href','#oe_sec_menu'); + } + /*if(!$('#oe_sec_menu').html().length){ + this.secondary = new openerp.web_mobile.Secondary(this, "oe_sec_menu", this.children); + this.secondary.start(); + }else{ + // self.$element.find("#content").find('a').attr('href','#oe_sec_menu'); + this.$element.add(this.$secondary_menu).find("#content").find('a').attr('href','#oe_sec_menu'); + }*/ + } }); - -openerp.web_mobile.Secondary = openerp.base.Widget.extend({ +openerp.web_mobile.Secondary = openerp.web.Widget.extend({ init: function(session, element_id, secondary_menu_id) { this._super(session, element_id); this.data = secondary_menu_id; }, start: function(ev, id) { + var self = this; + // console.log(this.data,this.$element.html().length); + + /* if(this.$element.html().length){ + self.$element.find('[data-role="listview"]').remove(); + + _.each(self.data.children,function(i){ + var newul = '<ul data-dividertheme="b" class="ui-listview ui-listview-inset ui-corner-all ui-shadow" data-theme="c" data-inset="true" data-role="listview"><li data-role="list-divider">'+ + i.name+'</li></ul>'; // Create New List Item + self.$element.find('#content').append(newul); + //console.log('in for loop',i.children); + }); + console.log('saaasasaaa',self.$element.find('#content'),self.data); + //self.$element.find('[data-role="listview"]').listview('refresh'); + }else{*/ + var v = { menu : this.data }; this.$element.html(QWeb.render("Menu.secondary", v)); - this.$element.add(this.$secondary_menu).find("a").click(this.on_menu_click); + this.$element.find("#header").find("h1").html(this.data.name); + this.$element.add(this.$secondary_menu).find('#content').find("a").click(this.on_menu_click); + this.$element.find("#footer").find('#shrotcuts').click(function(){ + if(!$('#oe_shortcuts').html().length){ + this.shortcuts = new openerp.web_mobile.Shortcuts(self, "oe_shortcuts"); + this.shortcuts.start(); + } + else{ + self.$element.find("#footer").find('#shrotcuts').attr('href','#oe_shortcuts'); + } + }); + this.$element.find("#footer").find('#preference').click(function(){ + if(!$('#oe_options').html().length){ + this.options = new openerp.web_mobile.Options(self, "oe_options"); + this.options.start(); + } + else{ + self.$element.find("#footer").find('#preference').attr('href','#oe_options'); + } + }); + $.mobile.changePage($("#oe_sec_menu"), "slide", true, true); }, on_menu_click: function(ev, id) { - $menu = $(ev.currentTarget); + var $menu = $(ev.currentTarget); id = $menu.data('menu'); - for (var i = 0; i < this.data.children.length; i++) { - if (this.data.children[i].id == id) { - this.children = this.data.children[i]; - } + if (id) { + this.listview = new openerp.web_mobile.ListView(this, "oe_list", id); + this.listview.start(); } jQuery("#oe_header").find("h1").html($menu.data('name')); - var child_len = this.children.children.length; - if (child_len > 0) { - this.$element - .removeClass("secondary_menu") - .addClass("content_menu"); - //.hide(); - this.secondary = new openerp.web_mobile.Secondary(this, "oe_app", this.children); - this.secondary.start(); - } - else { - if (id) { - this.listview = new openerp.web_mobile.ListView(this, "oe_app", id); - this.listview.start(); - } - } } }); -openerp.web_mobile.Options = openerp.base.Widget.extend({ - init: function(session, element_id) { - this._super(session, element_id); - }, +openerp.web_mobile.Options = openerp.web.Widget.extend({ start: function() { var self = this; this.$element.html(QWeb.render("Options", this)); - self.$element.find("#logout").click(self.on_logout); - }, - on_logout: function(ev) { - this.session.logout(); -// this.login = new openerp.web_mobile.Login(this, "oe_app"); -// this.login.start(); + this.$element.find("#footer").find('#shrotcuts').click(function(){ + if(!$('#oe_shortcuts').html().length){ + this.shortcuts = new openerp.web_mobile.Shortcuts(self, "oe_shortcuts"); + this.shortcuts.start(); + } + else{ + self.$element.find("#footer").find('#shrotcuts').attr('href','#oe_shortcuts'); + } + }); + $.mobile.changePage($("#oe_options"), "slide", true, true); } }); -openerp.web_mobile.Selection = openerp.base.Widget.extend({ - init: function (){ - this._super(); - }, - start: function(){ - this._super(); - var self = this; - }, +openerp.web_mobile.Selection = openerp.web.Widget.extend({ on_select_option: function(ev){ ev.preventDefault(); var $this = ev.currentTarget; $($this).prev().find(".ui-btn-text").html($($this).find("option:selected").text()); } }); -} +}; diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js index 4a3e2167c02..3dc777a2bd6 100644 --- a/addons/web_mobile/static/src/js/form_mobile.js +++ b/addons/web_mobile/static/src/js/form_mobile.js @@ -4,7 +4,7 @@ openerp.web_mobile.form_mobile = function (openerp) { -openerp.web_mobile.FormView = openerp.base.Widget.extend({ +openerp.web_mobile.FormView = openerp.web.Widget.extend({ init: function(session, element_id, list_id, action) { this._super(session, element_id); this.list_id = list_id; @@ -18,19 +18,20 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ }, start: function() { var self = this; - id = this.list_id; - model = this.action.res_model; - view_id = this.action.views[1][0]; - this.dataset = new openerp.base.DataSetSearch(this, this.action.res_model, null, null); + var id = this.list_id; + var model = this.action.res_model; + var view_id = this.action.views[1][0]; + this.dataset = new openerp.web.DataSetSearch(this, this.action.res_model, null, null); + var context = new openerp.web.CompoundContext(this.dataset.get_context()); this.dataset.read_slice([],{}, function (result) { for (var i = 0; i < result.length; i++) { if (result[i].id == id) { var data = result[i]; } } - self.rpc("/base/formview/load", {"model": model, "view_id": view_id }, function (result) { - var fields = result.fields_view.fields; - var view_fields = result.fields_view.arch.children; + self.rpc("/web/view/load", {"model": model, "view_id": view_id, "view_type": "form", context: context}, function (result) { + var fields = result.fields; + var view_fields = result.arch.children; var get_fields = self.get_fields(view_fields); var selection = new openerp.web_mobile.Selection(); for (var j = 0; j < view_fields.length; j++) { @@ -38,8 +39,9 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ var notebooks = view_fields[j]; } } - $("#oe_header").find("h1").html(result.fields_view.arch.attrs.string); self.$element.html(QWeb.render("FormView", {'get_fields': get_fields, 'notebooks': notebooks || false, 'fields' : fields, 'values' : data })); + + self.$element.find("#header").find('h1').html(self.action.name); self.$element.find('select').change(function(ev){ selection.on_select_option(ev); }); @@ -69,31 +71,50 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ if (!next.find('.detail').html().length) { for (var i = 0; i < get_fields.length; i++) { if (fields[get_fields[i].attrs.name].type == 'one2many'){ - var get_fields_test = self.get_fields(fields[get_fields[i].attrs.name].views.form.arch.children); - var fields_test = fields[get_fields[i].attrs.name]['views'].form.fields; - var notebook=fields[get_fields[i].attrs.name].views.form.arch; + if(fields[get_fields[i].attrs.name].views.form){ + var get_fields_test = self.get_fields(fields[get_fields[i].attrs.name].views.form.arch.children); + var fields_test = fields[get_fields[i].attrs.name]['views'].form.fields; + var notebook=fields[get_fields[i].attrs.name].views.form.arch; + } + var relational = get_fields[i].attrs.name; } } if(notebook){ - next.find('.detail').append(QWeb.render("FormView", {'get_fields': get_fields,'fields' : result.fields_view.fields, 'values' : data,'til': notebook.attrs.string })); + next.find('.detail').append(QWeb.render("FormView", {'get_fields': get_fields,'fields' : result.fields, 'values' : data,'til': notebook.attrs.string })); }else{ - next.find('.detail').append(QWeb.render("FormView", {'get_fields': get_fields,'fields' : result.fields_view.fields, 'values' : data })); + next.find('.detail').append(QWeb.render("FormView", {'get_fields': get_fields,'fields' : result.fields, 'values' : data })); } } - next.find('.detail').find('a').click(function(){ - if(next.find('.detail').find('a').next().find('.detail').html().length){ - if (next.find('.detail').find('a').next().hasClass(self.content_collapsed_class)) { - self.collapsed(next.find('.detail').find('a').next(),next.find('.detail').find('a').find('span .ui-icon')); - } - else if (next.find('.detail').find('a').next().hasClass(self.content_expanded_class)) { - self.expanded(next.find('.detail').find('a').next(),next.find('.detail').find('a').find('span .ui-icon')); - } - } - if(!next.find('.detail').find('a').next().find('.detail').html().length){ - next.find('.detail').find('a').next().find('.detail').append(QWeb.render("FormView", {'get_fields': get_fields_test,'fields' : fields_test, 'values' : data })); - self.collapsed(next.find('.detail').find('a').next(),next.find('.detail').find('a').find('span .ui-icon')); + + //$.mobile.changePage($("#oe_form"), "slide", true, true); + /*next.find('.detail').find('li').click(function(){ + if(data[relational]){ + var dataset = new openerp.web.DataSetStatic(self, result.fields[relational].relation, result.fields[relational].context); + dataset.domain=[['id', 'in', data[relational]]]; + dataset.name_search('', dataset.domain, 'in',false ,function(res){ + for(var i=0;i<res.length;i++){ + var splited_data = res[i][1].split(','); + res[i][1] = splited_data[0]; + } + self.$element.html(QWeb.render("ListView", {'records' : res})); + self.$element.find("#searchid").focus(); + self.$element.find("a#list-id").click(function(ev){ + dataset = new openerp.web.DataSetSearch(self, dataset.model, null, null); + dataset.read_slice([],{}, function (result_relational) { + for (var i = 0; i < result_relational.length; i++) { + if (result_relational[i].id == $(ev.currentTarget).data('id')) { + var data_relational = result_relational[i]; + } + } + self.$element.html(QWeb.render("FormView", {'get_fields': get_fields_test, 'notebooks': false, 'fields' : fields_test, 'values' : data_relational })); + self.$element.find('select').change(function(ev){ + selection.on_select_option(ev); + }); + }); + }); + }); } - }); + });*/ } } self.$element.find('select').change(function(ev){ @@ -101,6 +122,8 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ }); }); }); + $.mobile.changePage($("#oe_form"), "slide", true, true); + //$("#oe_header").find("h1").html(result.arch.attrs.string); }); }, get_fields: function(view_fields, fields) { @@ -128,4 +151,4 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ next.addClass(this.collapsed_class); } }); -}
\ No newline at end of file +}; diff --git a/addons/web_mobile/static/src/js/list_mobile.js b/addons/web_mobile/static/src/js/list_mobile.js index b4ba5e08cc3..1d4e0d72ca2 100644 --- a/addons/web_mobile/static/src/js/list_mobile.js +++ b/addons/web_mobile/static/src/js/list_mobile.js @@ -4,70 +4,67 @@ openerp.web_mobile.list_mobile = function (openerp) { -openerp.web_mobile.ListView = openerp.base.Widget.extend({ +openerp.web_mobile.ListView = openerp.web.Widget.extend({ init: function(session, element_id, list_id) { this._super(session, element_id); this.list_id = list_id; }, start: function() { - this.rpc('/base/menu/action', {'menu_id': this.list_id}, + this.rpc('/web/menu/action', {'menu_id': this.list_id}, this.on_menu_action_loaded); }, on_menu_action_loaded: function(data) { var self = this; if (data.action.length) { this.action = data.action[0][2]; - this.on_search_data(''); + this.on_search_data(); } }, - on_search_data: function(request){ - if(request){ - if(request.term){ - var search_val = request.term; - }else{ - if(request.which==27 || request.which==13 || request.which==9){ - var search_val = ''; - }else if(request.which==38 || request.which==40 || request.which==39 || request.which==37){ - return; - }else if($("#searchid").val()==""){ - var search_val = ''; - }else{ - return; - } - } - } - else{ - var search_val = ''; - } + on_search_data: function(ev){ var self = this; - - var dataset = new openerp.base.DataSetStatic(this, this.action.res_model, this.action.context); - dataset.domain=[['name','ilike',search_val]]; - dataset.name_search(search_val, dataset.domain, 'ilike',false ,function(result){ + var dataset = new openerp.web.DataSetStatic(this, this.action.res_model, this.action.context); + dataset.name_search('', [], 'ilike',false ,function(result){ + if(self.$element.html().length){ + self.$element.find('[data-role="listview"]').find('li').remove(); + for(var i=0;i<result.length;i++){ + var newli = '<li><a id="list-id" data-id='+ result[i][0] +' href="#">' + result[i][1] + '</a></li>'; // Create New List Item + self.$element.find('[data-role="listview"]').append(newli); + } + self.$element.find('[data-role="listview"]').listview('refresh'); + }else{ self.$element.html(QWeb.render("ListView", {'records' : result})); - self.$element.find("#searchid").focus(); - if(request.term){ - self.$element.find("#searchid").val(request.term); - } - self.$element.find("#searchid").autocomplete({ - source: function(req) { self.on_search_data(req); }, - focus: function(e, ui) { - e.preventDefault(); - }, - html: true, - minLength: 0, - delay: 0 + self.$element.find("#header").find('h1').html(self.action.name); + self.$element.find("#footer").find('#shortcuts').click(function(){ + if(!$('#oe_shortcuts').html().length){ + this.shortcut = new openerp.web_mobile.Options(self, "oe_shortcuts"); + this.options.start(); + } + else{ + self.$element.find("#footer").find('#shrotcuts').attr('href','#oe_shortcuts'); + } }); - self.$element.find("#searchid").keyup(self.on_search_data); + self.$element.find("#footer").find('#preference').click(function(){ + if(!$('#oe_options').html().length){ + this.options = new openerp.web_mobile.Options(self, "oe_options"); + this.options.start(); + } + else{ + self.$element.find("#footer").find('#preference').attr('href','#oe_options'); + } + }); + } self.$element.find("a#list-id").click(self.on_list_click); + $.mobile.changePage($("#oe_list"), "slide", true, true); }); }, on_list_click: function(ev) { - $record = $(ev.currentTarget); + var $record = $(ev.currentTarget); var self = this; id = $record.data('id'); - this.formview = new openerp.web_mobile.FormView(this, "oe_app", id, this.action); +// this.header = new openerp.web_mobile.Header(this, "oe_header"); + this.formview = new openerp.web_mobile.FormView(this, "oe_form", id, this.action); +// this.header.start(); this.formview.start(); } }); -}
\ No newline at end of file +}; diff --git a/addons/web_mobile/static/src/web_mobile.html b/addons/web_mobile/static/src/web_mobile.html index 6efc28b6532..9a17ff49dbb 100755 --- a/addons/web_mobile/static/src/web_mobile.html +++ b/addons/web_mobile/static/src/web_mobile.html @@ -7,19 +7,19 @@ <link rel="stylesheet" href="/web_mobile/static/lib/jquery_mobile/css/jquery.mobile-1.0a4.1.css"/>
<link rel="stylesheet" href="/web_mobile/static/src/css/web_mobile.css"/>
- <script type="text/javascript" src="/base/static/lib/jquery/jquery-1.6.2.js"></script>
- <script type="text/javascript" src="/base/static/lib/jquery.ui/js/jquery-ui-1.8.9.custom.min.js"></script>
- <script type="text/javascript" src="/base/static/lib/jquery.ba-bbq/jquery.ba-bbq.js"></script>
- <script type="text/javascript" src="/base/static/lib/underscore/underscore.js"></script>
- <script type="text/javascript" src="/base/static/lib/underscore/underscore.string.js"></script>
+ <script type="text/javascript" src="/web/static/lib/jquery/jquery-1.6.2.js"></script>
+ <script type="text/javascript" src="/web/static/lib/jquery.ui/js/jquery-ui-1.8.9.custom.min.js"></script>
+ <script type="text/javascript" src="/web/static/lib/jquery.ba-bbq/jquery.ba-bbq.js"></script>
+ <script type="text/javascript" src="/web/static/lib/underscore/underscore.js"></script>
+ <script type="text/javascript" src="/web/static/lib/underscore/underscore.string.js"></script>
<script type="text/javascript" src="/web_mobile/static/lib/jquery_mobile/js/jquery.mobile-1.0a4.1.js"></script>
- <script type="text/javascript" src="/base/static/lib/qweb/qweb2.js"></script>
- <script type="text/javascript" src="/base/static/src/js/boot.js"></script> - <script type="text/javascript" src="/base/static/src/js/core.js"></script>
- <script type="text/javascript" src="/base/static/src/js/chrome.js"></script>
- <script type="text/javascript" src="/base/static/src/js/data.js"></script>
- <script type="text/javascript" src="/base/static/src/js/formats.js"></script>
+ <script type="text/javascript" src="/web/static/lib/qweb/qweb2.js"></script>
+ <script type="text/javascript" src="/web/static/src/js/boot.js"></script>
+ <script type="text/javascript" src="/web/static/src/js/core.js"></script>
+ <script type="text/javascript" src="/web/static/src/js/chrome.js"></script>
+ <script type="text/javascript" src="/web/static/src/js/data.js"></script>
+ <script type="text/javascript" src="/web/static/src/js/formats.js"></script>
<script type="text/javascript" src="/web_mobile/static/src/js/web_mobile.js"></script>
<script type="text/javascript" src="/web_mobile/static/src/js/chrome_mobile.js"></script>
@@ -27,6 +27,7 @@ <script type="text/javascript" src="/web_mobile/static/src/js/form_mobile.js"></script>
<script type="text/javascript">
+ var QWeb;
$(function() {
QWeb = window.QWeb || new QWeb2.Engine();
var oe = openerp.init();
@@ -38,4 +39,4 @@ <body>
<div id="moe" class="openerp"></div>
</body>
-</html>
\ No newline at end of file +</html>
diff --git a/addons/web_mobile/static/src/xml/web_mobile.xml b/addons/web_mobile/static/src/xml/web_mobile.xml index a3af2e39b90..75d30af55b1 100644 --- a/addons/web_mobile/static/src/xml/web_mobile.xml +++ b/addons/web_mobile/static/src/xml/web_mobile.xml @@ -4,10 +4,14 @@ <templates id="template" xml:space="preserve"> <t t-name="WebClient"> - <div data-role="page"> - <div id="oe_header"></div> - <div id="oe_app"></div> - </div> + <div data-role="page" id="oe_login"></div> + <div data-role="page" id="oe_sec_menu"></div> + <div data-role="page" id="oe_sec_menu_new"></div> + <div data-role="page" id="oe_list"></div> + <div data-role="page" id="oe_form"></div> + <div data-role="page" id="oe_shortcuts"></div> + <div data-role="page" id="oe_menu"></div> + <div data-role="page" id="oe_options"></div> </t> <t t-name="Login"> @@ -38,131 +42,123 @@ </div> </t> -<t t-name="HomePage"> - <div role="main" class="ui-content" data-role="content"> - <div id="oe_shortcuts" class="shortcuts"></div> - <div id="oe_menu" class="menu"></div> - <div id="oe_options" class="options"></div> +<t t-name="Header"> + <div data-role="header" data-theme="b" data-position="fixed"> + <h1>OpenERP</h1> + <a id="home" class="ui-btn-right" data-iconpos="notext" data-icon="home" href="#" title="Home" data-theme="b"></a> </div> </t> -<t t-name="Header"> - <div role="banner" class="ui-bar-b ui-header" data-role="header" data-theme="b"> - <h1 aria-level="1" role="heading" tabindex="0" class="ui-title">OpenERP</h1> - <a id="home" class="ui-btn-right jqm-home ui-btn ui-btn-icon-notext ui-btn-corner-all ui-shadow ui-btn-up-b" data-direction="reverse" data-iconpos="notext" data-icon="home" href="#" title="Home" data-theme="b"> - <span class="ui-btn-inner ui-btn-corner-all"> - <span class="ui-btn-text">Home</span> - <span class="ui-icon ui-icon-home ui-icon-shadow"></span> - </span> - </a> +<t t-name="Footer"> + <div data-role="footer" data-theme="b" data-position="fixed"> + <h1></h1> </div> </t> <t t-name="Shortcuts"> - <ul data-dividertheme="b" data-theme="c" data-inset="true" data-role="listview" class="ui-listview ui-listview-inset ui-corner-all ui-shadow"> - <li data-role="list-divider" role="heading" class="ui-li ui-li-divider ui-btn ui-bar-b ui-corner-top ui-btn-up-undefined"> - Shortcuts - </li> - <li data-theme="c" class="ui-btn ui-btn-icon-right ui-li ui-btn-up-c" t-foreach="sc" t-as="opt"> - <div class="ui-btn-inner ui-li"> - <div class="ui-btn-text"> - <a href="#" class="ui-link-inherit" t-att-data-menu="opt.id" t-att-data-name="opt.name" t-att-data-res="opt.res_id"> - <span><t t-esc="opt.name"/></span> - </a> - </div> - <span class="ui-icon ui-icon-arrow-r"></span> - </div> - </li> - </ul> + <div id="header" data-role="header" data-theme="b" data-position="fixed"> + <h1>Favourite</h1> + <a id="application" class="ui-btn-right" data-iconpos="notext" data-icon="home" href="#oe_menu" title="Home" data-theme="b"></a> + </div> + <div id="content" data-role="content"> + <ul data-role="listview" data-inset="true"> + <li data-theme="c" t-foreach="sc" t-as="opt"> + <a href="#" t-att-data-menu="opt.id" t-att-data-name="opt.name" t-att-data-res="opt.res_id"> + <span><t t-esc="opt.name"/></span> + </a> + </li> + </ul> + </div> + <div id="footer" data-role="footer" data-theme="b" data-position="fixed"> + <a id="shrotcuts" href="#" title="Favourite" data-theme="b">Favourite</a> + <a id="preference" class="ui-btn-right" href="#" title="Preference" data-theme="b">Preference</a> + </div> </t> - <t t-name="Menu"> - <ul data-dividertheme="b" data-theme="c" data-inset="true" data-role="listview" class="ui-listview ui-listview-inset ui-corner-all ui-shadow"> - <li data-role="list-divider" role="heading" class="ui-li ui-li-divider ui-btn ui-bar-b ui-corner-top ui-btn-up-undefined"> - Menu - </li> - <li data-theme="c" class="ui-btn ui-btn-icon-right ui-li ui-btn-up-c" t-foreach="data.children" t-as="menu"> - <div class="ui-btn-inner ui-li"> - <div class="ui-btn-text"> - <a href="#" class="ui-link-inherit" t-att-data-menu="menu.id" t-att-data-name="menu.name"> - <span><t t-esc="menu.name"/></span> - </a> - </div> - <span class="ui-icon ui-icon-arrow-r"></span> - </div> - </li> - </ul> + <div data-role="header" data-theme="b" data-position="fixed"> + <h1>Applications</h1> + </div> + <div id="content" data-role="content"> + <ul data-role="listview" data-inset="true"> + <li data-theme="c" t-foreach="data.children" t-as="menu"> + <a href="#" t-att-data-menu="menu.id" t-att-data-name="menu.name"> + <span><t t-esc="menu.name"/></span> + </a> + </li> + </ul> + </div> + <div id="footer" data-role="footer" data-theme="b" data-position="fixed"> + <a id="shrotcuts" href="#" title="Favourite" data-theme="b">Favourite</a> + <a id="preference" href="#" title="Preference" data-theme="b">Preference</a> + </div> </t> <t t-name="Menu.secondary"> - <div role="main" class="ui-content" data-role="content"> - <ul data-role="listview" class="ui-listview"> - <li data-theme="c" class="ui-btn ui-btn-icon-right ui-li ui-btn-up-c" t-foreach="menu.children" t-as="menu"> - <div class="ui-btn-inner ui-li"> - <div class="ui-btn-text"> - <a href="#" class="ui-link-inherit" t-attf-id="menu_#{menu.id}" t-att-data-menu="menu.id" t-att-data-name="menu.name"> - <span><t t-esc="menu.name"/></span> + <div id="header" data-role="header" data-theme="b" data-position="fixed"> + <h1></h1> + <a id="application" class="ui-btn-right" data-iconpos="notext" data-icon="home" href="#oe_menu" title="Home" data-theme="b"></a> + </div> + <div id="content" data-role="content"> + <t t-foreach="menu.children" t-as="menu1" > + <ul data-dividertheme="b" data-theme="c" data-inset="true" data-role="listview"> + <li data-role="list-divider"> + <t t-esc="menu1.name"/> + </li> + <t t-if="menu1.children.length"> + <li data-theme="c" t-foreach="menu1.children" t-as="childmenu" > + <a href="#" t-attf-id="menu_#{childmenu.id}" t-att-data-menu="childmenu.id" t-att-data-name="childmenu.name"> + <t t-esc="childmenu.name" /> </a> - </div> - <span class="ui-icon ui-icon-arrow-r"></span> - </div> - </li> - </ul> + </li> + </t> + </ul> + </t> + </div> + <div id="footer" data-role="footer" data-theme="b" data-position="fixed"> + <a id="shrotcuts" href="#" title="Favourite" data-theme="b">Favourite</a> + <a id="preference" href="#" title="Preference" data-theme="b">Preference</a> </div> </t> - <t t-name="Options"> - <ul data-dividertheme="b" data-theme="c" data-inset="true" data-role="listview" class="ui-listview ui-listview-inset ui-corner-all ui-shadow"> - <li data-role="list-divider" role="heading" class="ui-li ui-li-divider ui-btn ui-bar-b ui-corner-top ui-btn-up-undefined"> - Options - </li> - <li data-theme="c" class="ui-btn ui-btn-icon-right ui-li ui-btn-up-c"> - <div class="ui-btn-inner ui-li"> - <div class="ui-btn-text"> - <a id="logout" href="#" class="ui-link-inherit"> - Logout - </a> - </div> - <span class="ui-icon ui-icon-arrow-r"></span> - </div> - </li> - <li data-theme="c" class="ui-btn ui-btn-icon-right ui-li ui-btn-up-c"> - <div class="ui-btn-inner ui-li"> - <div class="ui-btn-text"> - <a id="pref" href="#" class="ui-link-inherit"> - Preferences - </a> - </div> - <span class="ui-icon ui-icon-arrow-r"></span> - </div> - </li> - </ul> + <div id="header" data-role="header" data-theme="b" data-position="fixed"> + <h1>Options</h1> + <a id="application" class="ui-btn-right" data-iconpos="notext" data-icon="home" href="#oe_menu" title="Home" data-theme="b"></a> + </div> + <div data-role="content"> + <ul data-dividertheme="b" data-theme="c" data-inset="true" data-role="listview"> + <li data-theme="c"> + <a id="logout" href="#oe_login">Logout</a> + </li> + </ul> + </div> + <div id="footer" data-role="footer" data-theme="b" data-position="fixed"> + <a id="shrotcuts" href="#" title="Favourite" data-theme="b">Favourite</a> + <a id="preference" href="#" title="Preference" data-theme="b">Preference</a> + </div> </t> <t t-name="ListView"> - <div role="main" class="ui-content" data-role="content"> - <form class="ui-listview-filter ui-bar-c" role="search"> - <div id="search-data" class="ui-input-search ui-shadow-inset ui-btn-corner-all ui-btn-shadow ui-icon-searchfield ui-body-c"> - <input id="searchid" placeholder="Filter items..." data-type="search" class="ui-input-text ui-body-null" autosearch="true" setTimeDefault="700"/> - </div> - </form> - <ul role="listbox" data-role="listview" class="ui-listview"> - <li data-theme="c" class="ui-btn ui-btn-icon-right ui-li ui-btn-up-c" t-foreach="records" t-as="record"> - <div class="ui-btn-inner ui-li"> - <div class="ui-btn-text"> - <a id="list-id" t-att-data-id="record[0]" href="#" class="ui-link-inherit"> - <span><t t-esc="record[1]"/></span> - </a> - </div> - <span class="ui-icon ui-icon-arrow-r"></span> - </div> + <div id="header" data-role="header" data-theme="b" data-position="fixed"> + <h1></h1> + <a id="application" class="ui-btn-right" data-iconpos="notext" data-icon="home" href="#oe_menu" title="Home" data-theme="b"></a> + </div> + <div id="content" data-role="content"> + <ul data-role="listview" data-inset="true" data-theme="d" data-filter="true"> + <li data-theme="c" t-foreach="records" t-as="record"> + <a id="list-id" t-att-data-id="record[0]" href="#"> + <t t-esc="record[1]"/> + </a> </li> </ul> </div> + <div id="footer" data-role="footer" data-theme="b" data-position="fixed"> + <a id="shrotcuts" href="#" title="Favourite" data-theme="b">Favourite</a> + <a id="preference" href="#" title="Preference" data-theme="b">Preference</a> + </div> </t> <t t-name="FormView"> - <div role="main" class="ui-content" data-role="content"> + <div role="main" data-role="content"> <form> <t t-foreach="get_fields" t-as="field"> <div data-role="fieldcontain"> @@ -242,7 +238,6 @@ </div> </t> <t t-if="fields[field.attrs.name].type == 'many2one'"> - <div class="ui-select"> <div data-theme="c" class="ui-btn ui-btn-icon-right ui-btn-corner-all ui-shadow ui-btn-up-c"> <span class="ui-btn-inner ui-btn-corner-all"> @@ -270,12 +265,46 @@ </div> </t> <t t-if="fields[field.attrs.name].type == 'one2many'"> - <div class="info ui-collapsible-contain" data-collapsed="true" data-role="collapsible"> + <ul role="listbox" data-role="listview" class="ui-listview ui-listview-inset ui-corner-all ui-shadow"> + <li tabindex="0" data-theme="d" role="option" class="ui-btn ui-btn-icon-right ui-li ui-corner-top ui-corner-bottom ui-btn-up-d"> + <div class="ui-btn-inner"> + <div class="ui-btn-text"> + <a href="#" class="ui-link-inherit"> + <span><t t-esc="til"/></span> + </a> + </div> + <span class="ui-icon ui-icon-arrow-r"></span> + </div> + </li> + </ul> + <!-- <div class="info ui-collapsible-contain" data-collapsed="true" data-role="collapsible"> <h1 class="ui-collapsible-heading"> <a class="ui-collapsible-heading-toggle ui-btn ui-btn-icon-left ui-shadow ui-corner-all ui-btn-up-c" href="#" data-theme="c" t-id="page.attrs.string"> <span class="ui-btn-inner ui-corner-all"> <span class="ui-btn-text"> <t t-esc="til"></t> + <span class="ui-collapsible-heading-status"></span> + </span> + </span> + </a> + <span class="ui-icon ui-icon-arrow-r"></span> + <div class="ui-collapsible-content ui-collapsible-content-collapsed" aria-hidden="true"> + <div class="detail"></div> + </div> + </h1> + </div>--> + </t> + </div> + </t> + <t t-if="notebooks"> + <t t-foreach="notebooks.children" t-as="page"> + <t t-if="page.attrs.invisible"> + <div style="display:none;" class="info ui-collapsible-contain" data-collapsed="true" data-role="collapsible"> + <h1 class="ui-collapsible-heading"> + <a class="ui-collapsible-heading-toggle ui-btn ui-btn-icon-left ui-shadow ui-corner-all ui-btn-up-c" href="#" data-theme="c" t-id="page.attrs.string"> + <span class="ui-btn-inner ui-corner-all"> + <span class="ui-btn-text"> + <t t-esc="page.attrs.string"></t> <!-- <span class="ui-collapsible-heading-status"></span> --> </span> <span data-theme="d" class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-d"> @@ -291,11 +320,8 @@ </div> </h1> </div> - </t> - </div> - </t> - <t t-if="notebooks"> - <t t-foreach="notebooks.children" t-as="page"> + </t> + <t t-if="!page.attrs.invisible"> <div class="info ui-collapsible-contain" data-collapsed="true" data-role="collapsible"> <h1 class="ui-collapsible-heading"> <a class="ui-collapsible-heading-toggle ui-btn ui-btn-icon-left ui-shadow ui-corner-all ui-btn-up-c" href="#" data-theme="c" t-id="page.attrs.string"> @@ -317,10 +343,10 @@ </div> </h1> </div> + </t> </t> </t> </form> </div> </t> - </templates> |
