From 8c03c936c845055b2041835410ea0a1dfd3f1e60 Mon Sep 17 00:00:00 2001 From: =Bhumi Thakkar Date: Tue, 19 Jul 2011 11:53:35 +0530 Subject: [IMP]Improved selection menu and add message on invalid login. bzr revid: jra@tinyerp.com-20110719062335-ha1p559hg2xrp58u --- addons/web_mobile/static/src/js/chrome_mobile.js | 28 +++++++++++++++++++----- addons/web_mobile/static/src/js/form_mobile.js | 12 +++++++++- addons/web_mobile/static/src/xml/web_mobile.xml | 19 ++++++++++++---- 3 files changed, 48 insertions(+), 11 deletions(-) (limited to 'addons/web_mobile/static/src') diff --git a/addons/web_mobile/static/src/js/chrome_mobile.js b/addons/web_mobile/static/src/js/chrome_mobile.js index 138d37136a9..868d85bae94 100644 --- a/addons/web_mobile/static/src/js/chrome_mobile.js +++ b/addons/web_mobile/static/src/js/chrome_mobile.js @@ -130,16 +130,18 @@ openerp.web_mobile.Login = openerp.base.Controller.extend({ jQuery("#oe_header").children().remove(); this.rpc("/base/session/get_databases_list", {}, function(result) { + var selection = new openerp.web_mobile.Selection(); self.db_list = result.db_list; self.$element.html(QWeb.render("Login", self)); - self.$element.find('#database').click(self.on_db_select); + self.$element.find('#database').prev().find(".ui-btn-text").html($('#database').find("option:selected").text()); + self.$element.find('#database').change(function(ev){ + selection.on_select_option(ev); + }); self.$element.find("#login").click(self.on_login); $.mobile.initializePage(); - }) - }, - on_db_select: function(ev) { - var db = this.$element.find("#database option:selected").val(); - jQuery("#db_text").html(db); + }); + this.$element + .removeClass("login_invalid"); }, on_login: function(ev) { ev.preventDefault(); @@ -190,6 +192,20 @@ openerp.web_mobile.Login = openerp.base.Controller.extend({ }); } }); +openerp.web_mobile.Selection = openerp.base.Controller.extend({ + init: function (){ + this._super(); + }, + start: function(){ + this._super(); + var self = this; + }, + on_select_option: function(ev){ + ev.preventDefault(); + var $this = ev.currentTarget; + $($this).prev().find(".ui-btn-text").html($($this).find("option:selected").text()); + } +}); openerp.web_mobile.MobileWebClient = openerp.base.Controller.extend({ init: function(element_id) { var self = this; diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js index 9fa219ee86e..e5f9c0008f2 100644 --- a/addons/web_mobile/static/src/js/form_mobile.js +++ b/addons/web_mobile/static/src/js/form_mobile.js @@ -20,8 +20,10 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({ } } self.rpc("/base/formview/load", {"model": model, "view_id": view_id }, function (result) { + var view_fields = result.fields_view.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++) { if (view_fields[j].tag == 'notebook') { @@ -31,6 +33,10 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({ $("#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' : result.fields_view.fields, 'values' : data })); + self.$element.find('select').change(function(ev){ + selection.on_select_option(ev); + }); + self.$element.find('a').click(function(){ for (var k = 0; k < notebooks.children.length; k++) { @@ -80,6 +86,10 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({ } } } + + self.$element.find('select').change(function(ev){ + selection.on_select_option(ev); + }); }); }); }); @@ -98,7 +108,7 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({ } } return this.fields; - }, + } }); } \ No newline at end of file diff --git a/addons/web_mobile/static/src/xml/web_mobile.xml b/addons/web_mobile/static/src/xml/web_mobile.xml index fa5fe0c6b27..dac7d6ed58f 100644 --- a/addons/web_mobile/static/src/xml/web_mobile.xml +++ b/addons/web_mobile/static/src/xml/web_mobile.xml @@ -55,6 +55,7 @@ +
Bad username or password
@@ -133,7 +134,8 @@ - @@ -146,14 +148,23 @@
- + + + + - - + + + + + + -- cgit v1.2.3 From 26df2fb0baf581c4d8a0f83597a4dc4afe970c29 Mon Sep 17 00:00:00 2001 From: "Jiten Rangwala (OpenERP)" Date: Tue, 19 Jul 2011 12:00:45 +0530 Subject: [FIX] Fixed the path for get database list and set records for listview. bzr revid: jra@tinyerp.com-20110719063045-dllb5ehgga3zt45o --- addons/web_mobile/static/src/js/chrome_mobile.js | 2 +- addons/web_mobile/static/src/js/list_mobile.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'addons/web_mobile/static/src') diff --git a/addons/web_mobile/static/src/js/chrome_mobile.js b/addons/web_mobile/static/src/js/chrome_mobile.js index 868d85bae94..ed7a9774798 100644 --- a/addons/web_mobile/static/src/js/chrome_mobile.js +++ b/addons/web_mobile/static/src/js/chrome_mobile.js @@ -129,7 +129,7 @@ openerp.web_mobile.Login = openerp.base.Controller.extend({ var self = this; jQuery("#oe_header").children().remove(); - this.rpc("/base/session/get_databases_list", {}, function(result) { + this.rpc("/base/database/get_databases_list", {}, function(result) { var selection = new openerp.web_mobile.Selection(); self.db_list = result.db_list; self.$element.html(QWeb.render("Login", self)); diff --git a/addons/web_mobile/static/src/js/list_mobile.js b/addons/web_mobile/static/src/js/list_mobile.js index f7a88019e3d..da6c9d3d149 100644 --- a/addons/web_mobile/static/src/js/list_mobile.js +++ b/addons/web_mobile/static/src/js/list_mobile.js @@ -38,7 +38,7 @@ openerp.web_mobile.ListView = openerp.base.Controller.extend({ var dataset = new openerp.base.DataSetStatic(this.session, this.action.res_model, this.action.context); dataset.domain=[['name','ilike',search_val]]; dataset.name_search(search_val, dataset.domain, 'ilike',false ,function(result){ - self.$element.html(QWeb.render("ListView", {'records' : result.result})); + self.$element.html(QWeb.render("ListView", {'records' : result})); self.$element.find("#searchid").focus(); if(request.term){ self.$element.find("#searchid").val(request.term); -- cgit v1.2.3 From e4e0217d4facfc78d14ce2ffdbf7037e820fa286 Mon Sep 17 00:00:00 2001 From: "Jiten Rangwala (OpenERP)" Date: Tue, 19 Jul 2011 12:25:13 +0530 Subject: [IMP] Improved code for invalid login. bzr revid: jra@tinyerp.com-20110719065513-6bihgdw4mi3y6pit --- addons/web_mobile/static/src/css/web_mobile.css | 20 ++++++++++++++++++++ addons/web_mobile/static/src/xml/web_mobile.xml | 6 ++++-- 2 files changed, 24 insertions(+), 2 deletions(-) (limited to 'addons/web_mobile/static/src') diff --git a/addons/web_mobile/static/src/css/web_mobile.css b/addons/web_mobile/static/src/css/web_mobile.css index 18cf93f4d66..4017d5ae7e3 100644 --- a/addons/web_mobile/static/src/css/web_mobile.css +++ b/addons/web_mobile/static/src/css/web_mobile.css @@ -2,3 +2,23 @@ .ui-collapsible-content-expanded { display: block; } + +.login_error_message { + display: none; + background-color: #9A0404; + border-radius: 12px; + -moz-border-radius: 12px; + -webkit-border-radius: 12px; + color: white; + font-family: Ubuntu, Helvetica, sans-serif; + font-size: 16px; + padding: 5px; + margin-top: 5px; + text-align: center; +} +.login_invalid .login_error_message { + display: block; +} +.login_valid .login_error_message { + display: none; +} diff --git a/addons/web_mobile/static/src/xml/web_mobile.xml b/addons/web_mobile/static/src/xml/web_mobile.xml index dac7d6ed58f..d5843145651 100644 --- a/addons/web_mobile/static/src/xml/web_mobile.xml +++ b/addons/web_mobile/static/src/xml/web_mobile.xml @@ -33,7 +33,7 @@
- Choose Database... + + +
@@ -71,9 +73,9 @@
  • @@ -95,7 +97,7 @@
    - +
- + +
- + - - + -- cgit v1.2.3 From c9d824a1d9a2b03a29ef7d28fabef6e1ff86d3ed Mon Sep 17 00:00:00 2001 From: "Bhumi Thakkar (Open ERP)" Date: Tue, 16 Aug 2011 18:32:57 +0530 Subject: [IMP] One2many fields in formview. bzr revid: bth@tinyerp.com-20110816130257-bz614pn2722vo1pl --- addons/web_mobile/static/src/js/form_mobile.js | 76 +++++++++++++++------- addons/web_mobile/static/src/xml/web_mobile.xml | 86 ++++++++++++++----------- 2 files changed, 98 insertions(+), 64 deletions(-) (limited to 'addons/web_mobile/static/src') diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js index 017896affdd..826bee2e929 100644 --- a/addons/web_mobile/static/src/js/form_mobile.js +++ b/addons/web_mobile/static/src/js/form_mobile.js @@ -1,9 +1,16 @@ openerp.web_mobile.form_mobile = function (openerp) { openerp.web_mobile.FormView = openerp.base.Widget.extend({ + init: function(session, element_id, list_id, action) { this._super(session, element_id); this.list_id = list_id; this.action = action; + this.content_expanded_class = "ui-collapsible-content ui-collapsible-content-expanded"; + this.content_collapsed_class = "ui-collapsible-content ui-collapsible-content-collapsed"; + this.expanded_class = "ui-collapsible-content-expanded"; + this.collapsed_class = "ui-collapsible-content-collapsed"; + this.plus_class = "ui-icon-plus"; + this.minus_class = "ui-icon-minus"; }, start: function() { var self = this; @@ -13,7 +20,7 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ this.dataset = new openerp.base.DataSetSearch(this, this.action.res_model, null, null); this.dataset.read_slice([],function (result) { - for (var i = 0; i < result.length; i++) { + for (var i = 0; i < result.length; i++) { if (result[i].id == id) { var data = result[i]; } @@ -29,6 +36,7 @@ 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 })); @@ -43,12 +51,7 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ var text = $(this).find('.ui-btn-text').text(); var next = $(this).next(); var span = $(this).find('span .ui-icon'); - var content_expanded_class = "ui-collapsible-content ui-collapsible-content-expanded"; - var content_collapsed_class = "ui-collapsible-content ui-collapsible-content-collapsed"; - var expanded_class = "ui-collapsible-content-expanded"; - var collapsed_class = "ui-collapsible-content-collapsed"; - var plus_class = "ui-icon-plus"; - var minus_class = "ui-icon-minus"; + if (notebooks.children[k].attrs.string == $.trim(text)) { get_fields = self.get_fields(notebooks.children[k].children); @@ -56,42 +59,52 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ $(this).parents().find('form').find('div').each( function() { var prev = $(this).prev(); var trim_class = $.trim($(this).attr('class')); - if (trim_class == content_expanded_class || trim_class == content_collapsed_class) { + + if (trim_class == self.content_expanded_class || trim_class == self.content_collapsed_class) { prev.removeClass('ui-btn-active'); if ($.trim(prev.find('.ui-btn-text').text()) != notebooks.children[k].attrs.string) { - prev.find('span .ui-icon').removeClass(minus_class); - prev.find('span .ui-icon').addClass(plus_class); - $(this).removeClass(expanded_class); - $(this).addClass(collapsed_class); + self.expanded($(this),prev.find('span .ui-icon')); } } }); - if (next.hasClass(content_collapsed_class)) { - span.removeClass(plus_class); - span.addClass(minus_class); - next.removeClass(collapsed_class); - next.addClass(expanded_class); + if (next.hasClass(self.content_collapsed_class)) { + self.collapsed(next,span); } - else if (next.hasClass(content_expanded_class)) { - span.removeClass(minus_class); - span.addClass(plus_class); - next.removeClass(expanded_class); - next.addClass(collapsed_class); + else if (next.hasClass(self.content_expanded_class)) { + self.expanded(next,span); } 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; - next.find('.detail').append(QWeb.render("FormView", {'get_fields': get_fields_test,'fields' : fields_test, 'values' : data })); + var notebook=fields[get_fields[i].attrs.name].views.form.arch; } } - next.find('.detail').append(QWeb.render("FormView", {'get_fields': get_fields,'fields' : result.fields_view.fields, 'values' : data })); + if(notebook){ + next.find('.detail').append(QWeb.render("FormView", {'get_fields': get_fields,'fields' : result.fields_view.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').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')); + } + }); } } @@ -113,6 +126,19 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ } } return this.fields; + }, + collapsed: function(next,span) { + span.removeClass(this.plus_class); + span.addClass(this.minus_class); + next.removeClass(this.collapsed_class); + next.addClass(this.expanded_class); + + }, + expanded: function(next,span) { + span.removeClass(this.minus_class); + span.addClass(this.plus_class); + next.removeClass(this.expanded_class); + next.addClass(this.collapsed_class); } }); } \ No newline at end of file diff --git a/addons/web_mobile/static/src/xml/web_mobile.xml b/addons/web_mobile/static/src/xml/web_mobile.xml index b16beee47e0..beb206b7ef5 100644 --- a/addons/web_mobile/static/src/xml/web_mobile.xml +++ b/addons/web_mobile/static/src/xml/web_mobile.xml @@ -97,13 +97,14 @@
- + +
@@ -123,6 +124,30 @@
+ + +
+
+ +
+
+
+ + +
+
+ +
+
+
+ + +
+
+ +
+
+
@@ -176,44 +201,27 @@
- -
-
- -
-
-
- - -
-
- -
-
-
- - -
-
- -
-
-
- - -
-
- -
-
-
- - -
-
- -
-
+
-- cgit v1.2.3 From fe1687e58426b7a9fc4734b0d6970ecd7e7bef4e Mon Sep 17 00:00:00 2001 From: "Jiten (OpenERP)" Date: Thu, 18 Aug 2011 18:08:27 +0530 Subject: [IMP] Minor change to remove unnecessary dependency. bzr revid: jra@tinyerp.com-20110818123827-js5nl7i2k2uxm3mc --- addons/web_mobile/static/src/web_mobile.html | 1 - 1 file changed, 1 deletion(-) (limited to 'addons/web_mobile/static/src') diff --git a/addons/web_mobile/static/src/web_mobile.html b/addons/web_mobile/static/src/web_mobile.html index 14082ca72eb..bc23d533af2 100755 --- a/addons/web_mobile/static/src/web_mobile.html +++ b/addons/web_mobile/static/src/web_mobile.html @@ -5,7 +5,6 @@ OpenERP Web Mobile - -- cgit v1.2.3 From 7a258ccfbd97e037bd0fa877c0a19f0dd3b72934 Mon Sep 17 00:00:00 2001 From: "Jiten (OpenERP)" Date: Thu, 18 Aug 2011 18:54:18 +0530 Subject: [IMP] Improved code. bzr revid: jra@tinyerp.com-20110818132418-4n35o9q3i84ttjdi --- addons/web_mobile/static/src/js/chrome_mobile.js | 295 ++++++++++++----------- addons/web_mobile/static/src/js/form_mobile.js | 23 +- addons/web_mobile/static/src/js/list_mobile.js | 5 + addons/web_mobile/static/src/js/web_mobile.js | 4 + addons/web_mobile/static/src/web_mobile.html | 12 +- addons/web_mobile/static/src/xml/web_mobile.xml | 163 +++++++------ 6 files changed, 255 insertions(+), 247 deletions(-) (limited to 'addons/web_mobile/static/src') diff --git a/addons/web_mobile/static/src/js/chrome_mobile.js b/addons/web_mobile/static/src/js/chrome_mobile.js index c0230ae6379..0bf5deed6db 100644 --- a/addons/web_mobile/static/src/js/chrome_mobile.js +++ b/addons/web_mobile/static/src/js/chrome_mobile.js @@ -1,4 +1,133 @@ +/*--------------------------------------------------------- + * OpenERP Web Mobile chrome + *---------------------------------------------------------*/ + 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 + var client = new openerp.web_mobile.MobileWebClient(element_id); + client.start(); + return client; +}; + +openerp.web_mobile.MobileWebClient = openerp.base.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.on_session_invalid.add(this.login.do_ask_login); + }, + start: function() { + this.session.start(); + this.login.start(); + } +}); + +openerp.web_mobile.Login = openerp.base.Widget.extend({ + init: function(session, element_id) { + this._super(session, element_id); + }, + start: function() { + var self = this; + jQuery("#oe_header").children().remove(); + this.rpc("/base/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)); + self.$element.find('#database').prev().find(".ui-btn-text").html($('#database').find("option:selected").text()); + self.$element.find('#database').change(function(ev){ + selection.on_select_option(ev); + }); + self.$element.find("#login").click(self.on_login); + $.mobile.initializePage(); + }); + this.$element + .removeClass("login_invalid"); + }, + on_login: function(ev) { + ev.preventDefault(); + var self = this; + var $e = this.$element; + 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() { + if(self.session.session_is_valid()) { + self.on_login_valid(); + } else { + self.on_login_invalid(); + } + }); + }, + on_login_invalid: function() { + this.$element + .removeClass("login_valid") + .addClass("login_invalid") + .show(); + }, + on_login_valid: function() { + this.$element + .removeClass("login_invalid") + .addClass("login_valid"); + //.hide(); + this.header = new openerp.web_mobile.Header(this, "oe_header"); + this.homepage = new openerp.web_mobile.HomePage(this, "oe_app"); + this.header.start(); + this.homepage.start(); + }, + do_ask_login: function(continuation) { + this.on_login_invalid(); + this.on_login_valid.add({ + position: "last", + unique: true, + callback: continuation + }); + } +}); + +openerp.web_mobile.HomePage = openerp.base.Widget.extend({ + init: function(session, element_id) { + this._super(session, element_id); + }, + start: function() { + this.$element.html(QWeb.render("HomePage", {})); + 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.shortcuts.start(); + this.menu.start(); + this.options.start(); + jQuery("#oe_header").find("h1").html('Home'); + this.$element.find("a").click(this.on_clicked); + } +}); + +openerp.web_mobile.Header = openerp.base.Widget.extend({ + init: function(session, element_id) { + this._super(session, element_id); + }, + start: function() { + this.$element.html(QWeb.render("Header", this)); + this.$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(); + } + } +}); + openerp.web_mobile.Shortcuts = openerp.base.Widget.extend({ init: function(session, element_id) { this._super(session, element_id); @@ -19,23 +148,40 @@ openerp.web_mobile.Shortcuts = openerp.base.Widget.extend({ this.listview.start(); } }); -openerp.web_mobile.Header = openerp.base.Widget.extend({ - init: function(session, element_id) { + +openerp.web_mobile.Menu = openerp.base.Widget.extend({ + init: function(session, element_id, secondary_menu_id) { this._super(session, element_id); + this.secondary_menu_id = secondary_menu_id; + this.$secondary_menu = $("#" + secondary_menu_id); + this.menu = false; }, start: function() { - this.$element.html(QWeb.render("Header", this)); - this.$element.find("a").click(this.on_clicked); + this.rpc("/base/menu/load", {}, this.on_loaded); }, - on_clicked: function(ev) { - $opt = $(ev.currentTarget); - current_id = $opt.attr('id'); - if (current_id == 'home') { - this.homepage = new openerp.web_mobile.Login(this, "oe_app"); - this.homepage.on_login_valid(); + on_loaded: function(data) { + this.data = data; + this.$element.html(QWeb.render("Menu", this.data)); + this.$element.add(this.$secondary_menu).find("a").click(this.on_menu_click); + }, + on_menu_click: function(ev, id) { + $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(); } }); + openerp.web_mobile.Secondary = openerp.base.Widget.extend({ init: function(session, element_id, secondary_menu_id) { this._super(session, element_id); @@ -55,7 +201,6 @@ openerp.web_mobile.Secondary = openerp.base.Widget.extend({ } } jQuery("#oe_header").find("h1").html($menu.data('name')); - var child_len = this.children.children.length; if (child_len > 0) { this.$element @@ -74,38 +219,6 @@ openerp.web_mobile.Secondary = openerp.base.Widget.extend({ } }); -openerp.web_mobile.Menu = openerp.base.Widget.extend({ - init: function(session, element_id, secondary_menu_id) { - this._super(session, element_id); - this.secondary_menu_id = secondary_menu_id; - this.$secondary_menu = $("#" + secondary_menu_id); - this.menu = false; - }, - start: function() { - this.rpc("/base/menu/load", {}, this.on_loaded); - }, - on_loaded: function(data) { - this.data = data; - this.$element.html(QWeb.render("Menu", this.data)); - this.$element.add(this.$secondary_menu).find("a").click(this.on_menu_click); - }, - on_menu_click: function(ev, id) { - $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(); - } -}); openerp.web_mobile.Options = openerp.base.Widget.extend({ init: function(session, element_id) { this._super(session, element_id); @@ -121,78 +234,7 @@ openerp.web_mobile.Options = openerp.base.Widget.extend({ this.login.start(); } }); -openerp.web_mobile.Login = openerp.base.Widget.extend({ - init: function(session, element_id) { - this._super(session, element_id); - }, - start: function() { - var self = this; - - jQuery("#oe_header").children().remove(); - - this.rpc("/base/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)); - self.$element.find('#database').prev().find(".ui-btn-text").html($('#database').find("option:selected").text()); - self.$element.find('#database').change(function(ev){ - selection.on_select_option(ev); - }); - self.$element.find("#login").click(self.on_login); - $.mobile.initializePage(); - }); - this.$element - .removeClass("login_invalid"); - }, - on_login: function(ev) { - ev.preventDefault(); - var self = this; - var $e = this.$element; - 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() { - if(self.session.session_is_valid()) { - self.on_login_valid(); - } else { - self.on_login_invalid(); - } - }); - }, - on_login_invalid: function() { - this.$element - .removeClass("login_valid") - .addClass("login_invalid") - .show(); - }, - on_login_valid: function() { - this.$element - .removeClass("login_invalid") - .addClass("login_valid"); - //.hide(); - 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'); - }, - do_ask_login: function(continuation) { - this.on_login_invalid(); - this.on_login_valid.add({ - position: "last", - unique: true, - callback: continuation - }); - } -}); openerp.web_mobile.Selection = openerp.base.Widget.extend({ init: function (){ this._super(); @@ -207,29 +249,4 @@ openerp.web_mobile.Selection = openerp.base.Widget.extend({ $($this).prev().find(".ui-btn-text").html($($this).find("option:selected").text()); } }); -openerp.web_mobile.MobileWebClient = openerp.base.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.on_session_invalid.add(this.login.do_ask_login); - }, - start: function() { - this.session.start(); - this.login.start(); - } -}); -openerp.web_mobile.mobilewebclient = function(element_id) { - // TODO Helper to start mobile webclient rename it openerp.base.webclient - var client = new openerp.web_mobile.MobileWebClient(element_id); - client.start(); - return client; -}; } diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js index 826bee2e929..17d26decdd4 100644 --- a/addons/web_mobile/static/src/js/form_mobile.js +++ b/addons/web_mobile/static/src/js/form_mobile.js @@ -1,6 +1,10 @@ +/*--------------------------------------------------------- + * OpenERP Web Mobile Form View + *---------------------------------------------------------*/ + openerp.web_mobile.form_mobile = function (openerp) { -openerp.web_mobile.FormView = openerp.base.Widget.extend({ +openerp.web_mobile.FormView = openerp.base.Widget.extend({ init: function(session, element_id, list_id, action) { this._super(session, element_id); this.list_id = list_id; @@ -17,7 +21,6 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ 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); this.dataset.read_slice([],function (result) { for (var i = 0; i < result.length; i++) { @@ -30,45 +33,33 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ var view_fields = result.fields_view.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++) { if (view_fields[j].tag == 'notebook') { 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('select').change(function(ev){ selection.on_select_option(ev); }); - self.$element.find('a').click(function(){ - for (var k = 0; k < notebooks.children.length; k++) { - var text = $(this).find('.ui-btn-text').text(); var next = $(this).next(); var span = $(this).find('span .ui-icon'); - - if (notebooks.children[k].attrs.string == $.trim(text)) { get_fields = self.get_fields(notebooks.children[k].children); - $(this).parents().find('form').find('div').each( function() { var prev = $(this).prev(); var trim_class = $.trim($(this).attr('class')); - if (trim_class == self.content_expanded_class || trim_class == self.content_collapsed_class) { prev.removeClass('ui-btn-active'); - if ($.trim(prev.find('.ui-btn-text').text()) != notebooks.children[k].attrs.string) { self.expanded($(this),prev.find('span .ui-icon')); } } }); - if (next.hasClass(self.content_collapsed_class)) { self.collapsed(next,span); } @@ -76,7 +67,6 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ self.expanded(next,span); } 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); @@ -89,7 +79,6 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ }else{ next.find('.detail').append(QWeb.render("FormView", {'get_fields': get_fields,'fields' : result.fields_view.fields, 'values' : data })); } - } next.find('.detail').find('a').click(function(){ if(next.find('.detail').find('a').next().find('.detail').html().length){ @@ -107,7 +96,6 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ }); } } - self.$element.find('select').change(function(ev){ selection.on_select_option(ev); }); @@ -132,7 +120,6 @@ openerp.web_mobile.FormView = openerp.base.Widget.extend({ span.addClass(this.minus_class); next.removeClass(this.collapsed_class); next.addClass(this.expanded_class); - }, expanded: function(next,span) { span.removeClass(this.minus_class); diff --git a/addons/web_mobile/static/src/js/list_mobile.js b/addons/web_mobile/static/src/js/list_mobile.js index 617b234a00a..b4ba5e08cc3 100644 --- a/addons/web_mobile/static/src/js/list_mobile.js +++ b/addons/web_mobile/static/src/js/list_mobile.js @@ -1,4 +1,9 @@ +/*--------------------------------------------------------- + * OpenERP Web Mobile List View + *---------------------------------------------------------*/ + openerp.web_mobile.list_mobile = function (openerp) { + openerp.web_mobile.ListView = openerp.base.Widget.extend({ init: function(session, element_id, list_id) { this._super(session, element_id); diff --git a/addons/web_mobile/static/src/js/web_mobile.js b/addons/web_mobile/static/src/js/web_mobile.js index cdf25b22b38..119ffe1916f 100644 --- a/addons/web_mobile/static/src/js/web_mobile.js +++ b/addons/web_mobile/static/src/js/web_mobile.js @@ -1,3 +1,7 @@ +/*--------------------------------------------------------- + * OpenERP Web Mobile + *---------------------------------------------------------*/ + openerp.web_mobile = function(instance) { openerp.web_mobile.chrome_mobile(instance); openerp.web_mobile.list_mobile(instance); diff --git a/addons/web_mobile/static/src/web_mobile.html b/addons/web_mobile/static/src/web_mobile.html index bc23d533af2..18e51df9bfe 100755 --- a/addons/web_mobile/static/src/web_mobile.html +++ b/addons/web_mobile/static/src/web_mobile.html @@ -3,18 +3,18 @@ OpenERP Web Mobile - + + + - - + - @@ -26,7 +26,6 @@ - - -
- \ No newline at end of file diff --git a/addons/web_mobile/static/src/xml/web_mobile.xml b/addons/web_mobile/static/src/xml/web_mobile.xml index beb206b7ef5..ca31bb8f04e 100644 --- a/addons/web_mobile/static/src/xml/web_mobile.xml +++ b/addons/web_mobile/static/src/xml/web_mobile.xml @@ -70,6 +70,87 @@
+ +
    +
  • + Shortcuts +
  • +
  • +
    +
    + + + +
    + +
    +
  • +
+
+ + +
    +
  • + Menu +
  • +
  • +
    +
    + + + +
    + +
    +
  • +
+
+ + +
+ +
+
+ + + + +
@@ -254,86 +335,4 @@
- - -
    -
  • - Shortcuts -
  • -
  • -
    -
    - - - -
    - -
    -
  • -
-
- - -
    -
  • - Menu -
  • -
  • -
    -
    - - - -
    - -
    -
  • -
-
- - -
- -
-
- - - - - -- cgit v1.2.3 From c6ca8a3b702bce03d04ae15599497eee675bbd81 Mon Sep 17 00:00:00 2001 From: "Jiten (OpenERP)" Date: Fri, 19 Aug 2011 18:32:32 +0530 Subject: [IMP] Improved selection menu as custom menu from login page. bzr revid: jra@tinyerp.com-20110819130232-ixkvx5rgrs7dimce --- addons/web_mobile/static/src/js/chrome_mobile.js | 17 ++++---- addons/web_mobile/static/src/web_mobile.html | 2 +- addons/web_mobile/static/src/xml/web_mobile.xml | 50 ++++++++++-------------- 3 files changed, 29 insertions(+), 40 deletions(-) (limited to 'addons/web_mobile/static/src') diff --git a/addons/web_mobile/static/src/js/chrome_mobile.js b/addons/web_mobile/static/src/js/chrome_mobile.js index 0bf5deed6db..588c848c248 100644 --- a/addons/web_mobile/static/src/js/chrome_mobile.js +++ b/addons/web_mobile/static/src/js/chrome_mobile.js @@ -40,10 +40,6 @@ openerp.web_mobile.Login = openerp.base.Widget.extend({ var selection = new openerp.web_mobile.Selection(); self.db_list = result.db_list; self.$element.html(QWeb.render("Login", self)); - self.$element.find('#database').prev().find(".ui-btn-text").html($('#database').find("option:selected").text()); - self.$element.find('#database').change(function(ev){ - selection.on_select_option(ev); - }); self.$element.find("#login").click(self.on_login); $.mobile.initializePage(); }); @@ -78,9 +74,7 @@ openerp.web_mobile.Login = openerp.base.Widget.extend({ .removeClass("login_invalid") .addClass("login_valid"); //.hide(); - this.header = new openerp.web_mobile.Header(this, "oe_header"); this.homepage = new openerp.web_mobile.HomePage(this, "oe_app"); - this.header.start(); this.homepage.start(); }, do_ask_login: function(continuation) { @@ -99,9 +93,11 @@ openerp.web_mobile.HomePage = openerp.base.Widget.extend({ }, 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(); @@ -115,8 +111,9 @@ openerp.web_mobile.Header = openerp.base.Widget.extend({ this._super(session, element_id); }, start: function() { - this.$element.html(QWeb.render("Header", this)); - this.$element.find("a").click(this.on_clicked); + 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); @@ -230,8 +227,8 @@ openerp.web_mobile.Options = openerp.base.Widget.extend({ }, on_logout: function(ev) { this.session.logout(); - this.login = new openerp.web_mobile.Login(this, "oe_app"); - this.login.start(); +// this.login = new openerp.web_mobile.Login(this, "oe_app"); +// this.login.start(); } }); diff --git a/addons/web_mobile/static/src/web_mobile.html b/addons/web_mobile/static/src/web_mobile.html index 18e51df9bfe..a7ab447d905 100755 --- a/addons/web_mobile/static/src/web_mobile.html +++ b/addons/web_mobile/static/src/web_mobile.html @@ -35,6 +35,6 @@ -
+
\ No newline at end of file diff --git a/addons/web_mobile/static/src/xml/web_mobile.xml b/addons/web_mobile/static/src/xml/web_mobile.xml index ca31bb8f04e..746080315c6 100644 --- a/addons/web_mobile/static/src/xml/web_mobile.xml +++ b/addons/web_mobile/static/src/xml/web_mobile.xml @@ -4,47 +4,27 @@ -
+
- - - - -