From fc080b960d5477d415e7f52aaac9f46d6c2a7239 Mon Sep 17 00:00:00 2001 From: Antoine Guenet Date: Fri, 25 Nov 2022 12:51:03 +0000 Subject: [PATCH] [IMP] web: extend form default autofocus to textarea and contenteditable When rendering, the form view looks for the element it should autofocus, and defaults to the first text input it finds. This extends that default behavior to the first textarea or contenteditable element. closes odoo/odoo#106622 X-original-commit: 82a98715ae2937bff8b58212c452a28d0b28e102 Signed-off-by: David Monjoie (dmo) --- addons/web/static/src/views/form/form_renderer.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/views/form/form_renderer.js b/addons/web/static/src/views/form/form_renderer.js index fafe11ac96b..6ae97402c9e 100644 --- a/addons/web/static/src/views/form/form_renderer.js +++ b/addons/web/static/src/views/form/form_renderer.js @@ -49,9 +49,10 @@ export class FormRenderer extends Component { } let elementToFocus; if (isVirtual) { + const focusableSelectors = ['input[type="text"]', 'textarea', '[contenteditable]']; elementToFocus = (autofocusFieldId && rootEl.querySelector(`#${autofocusFieldId}`)) || - rootEl.querySelector(`.o_content .o_field_widget input[type="text"]`); + rootEl.querySelector(focusableSelectors.map(sel => `.o_content .o_field_widget ${sel}`).join(', ')); } if (elementToFocus) { elementToFocus.focus();