diff --git a/addons/web_mobile/static/src/css/web_mobile.css b/addons/web_mobile/static/src/css/web_mobile.css
index e69de29bb2d..b1579889a19 100644
--- a/addons/web_mobile/static/src/css/web_mobile.css
+++ b/addons/web_mobile/static/src/css/web_mobile.css
@@ -0,0 +1 @@
+.ui-collapsible-content-expanded { display: block; }
\ No newline at end of file
diff --git a/addons/web_mobile/static/src/js/form_mobile.js b/addons/web_mobile/static/src/js/form_mobile.js
index 25c74dfcd51..9fa219ee86e 100644
--- a/addons/web_mobile/static/src/js/form_mobile.js
+++ b/addons/web_mobile/static/src/js/form_mobile.js
@@ -10,24 +10,77 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({
id = this.list_id;
model = this.action.res_model;
view_id = this.action.views[1][0];
+
this.dataset = new openerp.base.DataSetSearch(this.session, this.action.res_model, null, null);
- this.dataset.read_slice(false, false, false, function(result){
+ this.dataset.read_slice(false, false, false, 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 view_fields = result.fields_view.arch.children;
- get_fields = self.get_fields(view_fields);
- for (var j = 0; j < view_fields.length; j++) {
- if (view_fields[j].tag == 'notebook') {
- var notebooks = view_fields[j];
- }
+ 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);
+
+ for (var j = 0; j < view_fields.length; j++) {
+ if (view_fields[j].tag == 'notebook') {
+ var notebooks = view_fields[j];
}
- jQuery("#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}));
+ }
+ $("#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('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');
+ 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);
+
+ $(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) {
+ 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);
+ }
+ }
+ });
+
+ if (next.hasClass(content_collapsed_class)) {
+ span.removeClass(plus_class);
+ span.addClass(minus_class);
+ next.removeClass(collapsed_class);
+ next.addClass(expanded_class);
+ }
+ else if (next.hasClass(content_expanded_class)) {
+ span.removeClass(minus_class);
+ span.addClass(plus_class);
+ next.removeClass(expanded_class);
+ next.addClass(collapsed_class);
+ }
+ if (!next.find('.detail').html().length) {
+ next.find('.detail').append(QWeb.render("FormView", {'get_fields': get_fields,'fields' : result.fields_view.fields, 'values' : data }));
+ }
+ }
+ }
+ });
});
});
},
@@ -40,9 +93,12 @@ openerp.web_mobile.FormView = openerp.base.Controller.extend({
if (view_fields[i].tag == 'group') {
this.get_fields(view_fields[i].children, this.fields);
}
+ if (view_fields[i].tag == 'separator') {
+ this.get_fields(view_fields[i].children, this.fields);
+ }
}
return this.fields;
- }
+ },
});
}
\ 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 ba437501cb9..a73951e0ed3 100755
--- a/addons/web_mobile/static/src/web_mobile.html
+++ b/addons/web_mobile/static/src/web_mobile.html
@@ -26,6 +26,7 @@
+