diff --git a/addons/web_mobile/__init__.py b/addons/web_mobile/__init__.py
index ee5959455ad..e69de29bb2d 100644
--- a/addons/web_mobile/__init__.py
+++ b/addons/web_mobile/__init__.py
@@ -1 +0,0 @@
-import controllers
diff --git a/addons/web_mobile/controllers/__init__.py b/addons/web_mobile/controllers/__init__.py
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/addons/web_mobile/static/src/js/chrome_mobile.js b/addons/web_mobile/static/src/js/chrome_mobile.js
index ff5601d56df..2b9d8600fef 100644
--- a/addons/web_mobile/static/src/js/chrome_mobile.js
+++ b/addons/web_mobile/static/src/js/chrome_mobile.js
@@ -19,7 +19,7 @@ openerp.web_mobile.MobileWebClient = openerp.web.Widget.extend({
this.$element.html(QWeb.render("WebClient", {}));
this.session = new openerp.web.Session("oe_errors");
this.crashmanager = new openerp.web.CrashManager(this);
- this.login = new openerp.web_mobile.Login(this, "oe_app");
+ this.login = new openerp.web_mobile.Login(this, "oe_login");
// this.session.on_session_invalid.add(this.login.do_ask_login);
},
start: function() {
@@ -49,6 +49,7 @@ openerp.web_mobile.Login = openerp.web.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() {
@@ -70,8 +71,9 @@ openerp.web_mobile.Login = openerp.web.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();
@@ -83,25 +85,6 @@ openerp.web_mobile.Login = openerp.web.Widget.extend({
}
});
-openerp.web_mobile.HomePage = 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);
- }
-});
-
openerp.web_mobile.Header = openerp.web.Widget.extend({
init: function(session, element_id) {
this._super(session, element_id);
@@ -109,15 +92,16 @@ openerp.web_mobile.Header = openerp.web.Widget.extend({
start: function() {
var self = this;
self.$element.html(QWeb.render("Header", this));
- self.$element.find("a").click(this.on_clicked);
+ }
+});
+
+openerp.web_mobile.Footer = openerp.web.Widget.extend({
+ init: function(session, element_id) {
+ this._super(session, element_id);
},
- on_clicked: function(ev) {
- var $opt = $(ev.currentTarget);
- var current_id = $opt.attr('id');
- if (current_id == 'home') {
- this.homepage = new openerp.web_mobile.HomePage(this, "oe_app");
- this.homepage.start();
- }
+ start: function() {
+ var self = this;
+ self.$element.html(QWeb.render("Footer", this));
}
});
@@ -128,17 +112,29 @@ openerp.web_mobile.Shortcuts = openerp.web.Widget.extend({
start: function() {
var self = this;
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.html(QWeb.render("Shortcuts", {'sc' : res}))
+ 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) {
- var $shortcut = $(ev.currentTarget);
- var id = $shortcut.data('menu');
- var 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);
+ $shortcut = $(ev.currentTarget);
+ id = $shortcut.data('menu');
+ res_id = $shortcut.data('res');
+// 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'));
}
});
@@ -153,9 +149,30 @@ openerp.web_mobile.Menu = openerp.web.Widget.extend({
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) {
var $menu = $(ev.currentTarget);
@@ -165,50 +182,80 @@ openerp.web_mobile.Menu = openerp.web.Widget.extend({
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.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 = '
'; // 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) {
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();
- }
- }
}
});
@@ -216,12 +263,16 @@ 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);
}
});
diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js
index 03291a70bfa..3dc777a2bd6 100644
--- a/addons/web_mobile/static/src/js/form_mobile.js
+++ b/addons/web_mobile/static/src/js/form_mobile.js
@@ -22,15 +22,16 @@ openerp.web_mobile.FormView = openerp.web.Widget.extend({
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("/web/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.web.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.web.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'));
- }
+
+ //$.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' + result[i][1] + ''; // 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) {
var $record = $(ev.currentTarget);
var self = this;
- var id = $record.data('id');
- this.formview = new openerp.web_mobile.FormView(this, "oe_app", id, this.action);
+ id = $record.data('id');
+// 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();
}
});
diff --git a/addons/web_mobile/static/src/web_mobile.html b/addons/web_mobile/static/src/web_mobile.html
index 254c4a6ea36..9a17ff49dbb 100755
--- a/addons/web_mobile/static/src/web_mobile.html
+++ b/addons/web_mobile/static/src/web_mobile.html
@@ -7,19 +7,19 @@
-
-
-
-
-
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
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 @@
-
+
+
+
+
+
+
+
+
@@ -38,131 +42,123 @@
-
-