From 06d2b067e56ef7fde5e5ad21e99d868ea5914adb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lien=20Warnon?= Date: Fri, 30 Oct 2020 08:19:46 +0000 Subject: [FIX] web: improve the hit box of the kanban quick_create When the user clicks outside of the kanban quick create element, it's closing itself automatically. However, the "hit box" of this behavior is not entirely accurate and clicking on the very edge of the box would also close the element. This commit fixes the click behavior and allows clicking anywhere inside the quick create element. Task 2373095 closes odoo/odoo#61761 X-original-commit: 72ed82489daa2b82628dfdefeb06262e17e6548e Signed-off-by: Aaron Bohy (aab) Signed-off-by: awa-odoo --- .../src/js/views/kanban/kanban_record_quick_create.js | 2 +- addons/web/static/tests/views/kanban_tests.js | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) (limited to 'addons') diff --git a/addons/web/static/src/js/views/kanban/kanban_record_quick_create.js b/addons/web/static/src/js/views/kanban/kanban_record_quick_create.js index 902a8ef22aa..eae7c6b401b 100644 --- a/addons/web/static/src/js/views/kanban/kanban_record_quick_create.js +++ b/addons/web/static/src/js/views/kanban/kanban_record_quick_create.js @@ -283,7 +283,7 @@ var RecordQuickCreate = Widget.extend({ } // ignore clicks if target is inside the quick create - if (this.el.contains(ev.target) && this.el !== ev.target) { + if (this.el.contains(ev.target) || this.el === ev.target) { return; } diff --git a/addons/web/static/tests/views/kanban_tests.js b/addons/web/static/tests/views/kanban_tests.js index 70e63d34eda..d483bdc8418 100644 --- a/addons/web/static/tests/views/kanban_tests.js +++ b/addons/web/static/tests/views/kanban_tests.js @@ -1405,7 +1405,7 @@ QUnit.module('Views', { }); QUnit.test('quick create record: cancel when not dirty', async function (assert) { - assert.expect(9); + assert.expect(11); var kanban = await createView({ View: KanbanView, @@ -1464,6 +1464,17 @@ QUnit.module('Views', { assert.containsOnce(kanban, '.o_kanban_group:first .o_kanban_record', "first column should still contain one record"); + // click to reopen the quick create + await testUtils.dom.click(kanban.$('.o_kanban_header .o_kanban_quick_add i').first()); + assert.containsOnce(kanban, '.o_kanban_quick_create', + "should have open the quick create widget"); + + // clicking on the quick create itself should keep it open + await testUtils.dom.click(kanban.$('.o_kanban_quick_create')); + assert.containsOnce(kanban, '.o_kanban_quick_create', + "the quick create should not have been destroyed when clicked on itself"); + + kanban.destroy(); }); -- cgit v1.2.3