diff --git a/addons/web/static/src/legacy/js/views/form/form_renderer.js b/addons/web/static/src/legacy/js/views/form/form_renderer.js index 3340ccc2988..99f623dab7a 100644 --- a/addons/web/static/src/legacy/js/views/form/form_renderer.js +++ b/addons/web/static/src/legacy/js/views/form/form_renderer.js @@ -1007,6 +1007,8 @@ var FormRenderer = BasicRenderer.extend({ self.inactiveNotebooks.push(renderedTabs); } } + // if all pages are invisible then hide notebooks header's ul as well + $headers.toggleClass('o_invisible_modifier', !$headers.find('li:not(.o_invisible_modifier)').length); }, }); }); diff --git a/addons/web/static/tests/legacy/views/form_tests.js b/addons/web/static/tests/legacy/views/form_tests.js index fd04e076aaf..fde1d1076b2 100644 --- a/addons/web/static/tests/legacy/views/form_tests.js +++ b/addons/web/static/tests/legacy/views/form_tests.js @@ -947,6 +947,39 @@ QUnit.module('Views', { form.destroy(); }); + QUnit.test('hide notebook element if all pages hidden', async function (assert) { + assert.expect(4); + + const form = await createView({ + View: FormView, + model: 'partner', + data: this.data, + arch: `
`, + }); + + assert.ok(form.$('.o_notebook .nav li:not(.o_invisible_modifier)').length, + "there should be visible page"); + assert.notOk(form.$('.o_notebook .nav').hasClass('o_invisible_modifier'), + 'the notebook headers should not be hidden if one of the page is visible'); + + await testUtils.dom.click(form.$('.o_field_boolean input')); + assert.notOk(form.$('.o_notebook .nav li:not(.o_invisible_modifier)').length, + "there should not be any visible page"); + assert.ok(form.$('.o_notebook .nav').hasClass('o_invisible_modifier'), + 'the notebook headers should be hidden if none of the page is visible'); + + form.destroy(); + }); + QUnit.test('autofocus on second notebook page', async function (assert) { assert.expect(2);