diff options
| author | Nicolas Martinelli <nim@odoo.com> | 2018-01-10 14:19:45 +0100 |
|---|---|---|
| committer | Nicolas Martinelli <nim-odoo@users.noreply.github.com> | 2018-01-11 15:19:52 +0100 |
| commit | 411a9fa326fe159fd295c3d328d5fa2f57c10d6f (patch) | |
| tree | 996df5e88ff8f74e7991e5628b94a660f5ec5a21 /addons/web/static/src | |
| parent | 309b6b8e5ab476de6f432bbf64939a72af85be3b (diff) | |
[FIX] web: autofocus
Support autofocus on notebook pages:
```
<page autofocus="autofocus">
```
This was supported before the web client refactoring.
opw-801259
Diffstat (limited to 'addons/web/static/src')
| -rw-r--r-- | addons/web/static/src/js/views/form/form_renderer.js | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/addons/web/static/src/js/views/form/form_renderer.js b/addons/web/static/src/js/views/form/form_renderer.js index e18615c8caf..847c29b8830 100644 --- a/addons/web/static/src/js/views/form/form_renderer.js +++ b/addons/web/static/src/js/views/form/form_renderer.js @@ -693,6 +693,7 @@ var FormRenderer = BasicRenderer.extend({ var self = this; var $headers = $('<ul class="nav nav-tabs">'); var $pages = $('<div class="tab-content nav nav-tabs">'); + var autofocusTab = -1; // renderedTabs is used to aggregate the generated $headers and $pages // alongside their node, so that their modifiers can be registered once // all tabs have been rendered, to ensure that the first visible tab @@ -701,9 +702,8 @@ var FormRenderer = BasicRenderer.extend({ var pageID = _.uniqueId('notebook_page_'); var $header = self._renderTabHeader(child, pageID); var $page = self._renderTabPage(child, pageID); - if (index === 0) { - $header.addClass('active'); - $page.addClass('active'); + if (autofocusTab === -1 && child.attrs.autofocus === 'autofocus') { + autofocusTab = index; } self._handleAttributes($header, child); $headers.append($header); @@ -714,6 +714,11 @@ var FormRenderer = BasicRenderer.extend({ node: child, }; }); + if (renderedTabs.length) { + var tabToFocus = renderedTabs[Math.max(0, autofocusTab)]; + tabToFocus.$header.addClass('active'); + tabToFocus.$page.addClass('active'); + } // register the modifiers for each tab _.each(renderedTabs, function (tab) { self._registerModifiers(tab.node, self.state, tab.$header, { |
