summaryrefslogtreecommitdiff
path: root/addons/web/static/src/js/fields
diff options
context:
space:
mode:
authorDavid Monjoie <dmo@odoo.com>2017-05-11 13:29:52 +0200
committerDavid Monjoie <dmo@odoo.com>2017-05-12 14:53:48 +0200
commit42d95cbfc3d85a8ab79e5ac6fceee5d8f7c6c550 (patch)
tree9bc3c2b562ae2aa59579cc9e054f17e96fc5a769 /addons/web/static/src/js/fields
parent310588b8136527837e76f152d93b5d8079b8087c (diff)
[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.
Diffstat (limited to 'addons/web/static/src/js/fields')
-rw-r--r--addons/web/static/src/js/fields/basic_fields.js14
1 files changed, 14 insertions, 0 deletions
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