diff options
Diffstat (limited to 'addons/web_mobile/static/src/js/form_mobile.js')
| -rw-r--r-- | addons/web_mobile/static/src/js/form_mobile.js | 79 |
1 files changed, 51 insertions, 28 deletions
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 +}; |
