From 42d95cbfc3d85a8ab79e5ac6fceee5d8f7c6c550 Mon Sep 17 00:00:00 2001 From: David Monjoie Date: Thu, 11 May 2017 13:29:52 +0200 Subject: [FIX] web: keep focus on checkboxes after rerendering Previously, when a checkbox was re-rendered, it was losing focus since it was removed and re-created. Now, if the checkbox itself is the origin point of the re-rendering, we give the focus to the newly re-rendered checkbox, resulting in a seamless experience just as if the checkbox was never removed and re-rendered. --- addons/web/static/src/js/fields/basic_fields.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'addons/web/static/src/js/fields/basic_fields.js') diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index 6fc1736870f..b1b51e69e36 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -613,6 +613,20 @@ var FieldBoolean = AbstractField.extend({ isSet: function () { return true; }, + /** + * When the checkbox is rerendered, we need to check if it was the actual + * origin of the reset. If it is, we need to activate it back so it looks + * like it was not rerendered but is still the same input. + * + * @override + */ + reset: function (record, event) { + var rendered = this._super.apply(this, arguments); + if (event && event.target.name === this.name) { + this.activate(); + } + return rendered; + }, //-------------------------------------------------------------------------- // Private -- cgit v1.2.3