diff options
| author | Mahendra Barad <mba@odoo.com> | 2018-09-07 13:46:20 +0200 |
|---|---|---|
| committer | Thibault Delavallée <tde@odoo.com> | 2018-09-07 14:39:32 +0200 |
| commit | f81f85eba2eebb71671c7bc677bd872e2e3311d8 (patch) | |
| tree | c3a0562cc913b9b843257a2ad08a1a3f208908a9 /odoo | |
| parent | 9c277c6b6d00415c02c8b0a79556905bcfb82207 (diff) | |
[IMP] base: properly focus search input in settings
Before this commit, the search input was focused everytime the settings
view was rendered after a timeout of 0. This is not considered as correct.
It is fragile as asynchronous code could break in many situations.
This commit fixes that behavior by using a hook 'on_attach_callback' which
is called when the widget is put in the DOM.
This commit is linked to task ID 47221 and PR #26483.
Diffstat (limited to 'odoo')
| -rw-r--r-- | odoo/addons/base/static/src/js/res_config_settings.js | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/odoo/addons/base/static/src/js/res_config_settings.js b/odoo/addons/base/static/src/js/res_config_settings.js index 69a54ff2df6..855b03452ae 100644 --- a/odoo/addons/base/static/src/js/res_config_settings.js +++ b/odoo/addons/base/static/src/js/res_config_settings.js @@ -33,6 +33,15 @@ var BaseSettingRenderer = FormRenderer.extend({ }, /** + * @override + */ + on_attach_callback: function () { + this._super.apply(this, arguments); + // set default focus on searchInput + this.searchInput.focus(); + }, + + /** * initialize modules list. * remove module that restricted in groups * data contains @@ -213,6 +222,7 @@ var BaseSettingRenderer = FormRenderer.extend({ }, _onSettingTabClick: function (event) { + this.searchInput.focus(); if (this.searchText.length > 0) { this.searchInput.val(''); this.searchText = ""; @@ -341,6 +351,7 @@ var BaseSettingRenderer = FormRenderer.extend({ var BaseSettingController = FormController.extend({ init: function () { this._super.apply(this, arguments); + this.disableAutofocus = true; this.renderer.activeSettingTab = this.initialState.context.module; }, }); |
