summaryrefslogtreecommitdiff
path: root/addons/web_mobile/static/src/js/form_mobile.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web_mobile/static/src/js/form_mobile.js')
-rw-r--r--addons/web_mobile/static/src/js/form_mobile.js79
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
+};