diff --git a/addons/base/static/src/js/form.js b/addons/base/static/src/js/form.js
index c12a965a6b5..d3fb86f844a 100644
--- a/addons/base/static/src/js/form.js
+++ b/addons/base/static/src/js/form.js
@@ -617,24 +617,47 @@ openerp.base.form.WidgetFrame = openerp.base.form.Widget.extend({
});
openerp.base.form.WidgetNotebook = openerp.base.form.Widget.extend({
+ template: 'WidgetNotebook',
init: function(view, node) {
this._super(view, node);
- this.template = "WidgetNotebook";
this.pages = [];
for (var i = 0; i < node.children.length; i++) {
var n = node.children[i];
if (n.tag == "page") {
- var page = new openerp.base.form.WidgetFrame(this.view, n);
+ var page = new openerp.base.form.WidgetNotebookPage(this.view, n, this, this.pages.length);
this.pages.push(page);
}
}
},
start: function() {
+ var self = this;
this._super.apply(this, arguments);
this.$element.tabs();
}
});
+openerp.base.form.WidgetNotebookPage = openerp.base.form.WidgetFrame.extend({
+ template: 'WidgetNotebookPage',
+ init: function(view, node, notebook, index) {
+ this.notebook = notebook;
+ this.index = index;
+ this.element_name = 'page_' + index;
+ this._super(view, node);
+ this.element_tab_id = this.element_id + '_tab';
+ },
+ start: function() {
+ this._super.apply(this, arguments);
+ this.$element_tab = $('#' + this.element_tab_id);
+ },
+ update_dom: function() {
+ if (this.invisible) {
+ this.notebook.$element.tabs('select', 0);
+ }
+ this.$element_tab.toggle(!this.invisible);
+ this.$element.toggle(!this.invisible);
+ }
+});
+
openerp.base.form.WidgetSeparator = openerp.base.form.Widget.extend({
init: function(view, node) {
this._super(view, node);
diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml
index 997a796bacc..9c2df09732f 100644
--- a/addons/base/static/src/xml/base.xml
+++ b/addons/base/static/src/xml/base.xml
@@ -419,18 +419,21 @@
-
-
-
+
+
+
+
+
+