diff --git a/addons/web/static/src/views/kanban/kanban_header.xml b/addons/web/static/src/views/kanban/kanban_header.xml index 9ee9a45bd9c..19ba9d45631 100644 --- a/addons/web/static/src/views/kanban/kanban_header.xml +++ b/addons/web/static/src/views/kanban/kanban_header.xml @@ -3,14 +3,16 @@
-
-
+
+
diff --git a/addons/web/static/tests/views/kanban/kanban_view_tests.js b/addons/web/static/tests/views/kanban/kanban_view_tests.js index 52bc019f00e..b5ac4b2ec32 100644 --- a/addons/web/static/tests/views/kanban/kanban_view_tests.js +++ b/addons/web/static/tests/views/kanban/kanban_view_tests.js @@ -398,6 +398,49 @@ QUnit.module("Views", (hooks) => { ); }); + QUnit.test("Hide tooltip when user click inside a kanban headers item", async (assert) => { + patchWithCleanup(browser, { + setTimeout: (fn) => fn(), + }); + serviceRegistry.add("tooltip", tooltipService); + await makeView({ + type: "kanban", + resModel: "partner", + serverData, + arch: ` + + + + + + `, + }); + assert.hasClass(target.querySelector(".o_kanban_renderer"), "o_kanban_grouped"); + assert.containsN(target, ".o_column_title", 2); + + await mouseEnter( + target, + ".o_kanban_group:first-child .o_kanban_header_title .o_column_title" + ); + assert.containsOnce(target, ".o-tooltip"); + + await click( + target, + ".o_kanban_group:first-child .o_kanban_header_title .o_kanban_quick_add" + ); + assert.containsNone(target, ".o-tooltip"); + + await mouseEnter( + target, + ".o_kanban_group:first-child .o_kanban_header_title .o_column_title" + ); + assert.containsOnce(target, ".o-tooltip"); + + await click(target, ".o_kanban_group:first-child .o_kanban_header_title .fa-gear"); + await nextTick(); + assert.containsNone(target, ".o-tooltip"); + }); + QUnit.test("generic tags are case insensitive", async function (assert) { await makeView({ type: "kanban", @@ -8722,7 +8765,7 @@ QUnit.module("Views", (hooks) => { "first column should have a default title for when no value is provided" ); - const groupsTitle = [...target.querySelectorAll(".o_kanban_group .o_kanban_header_title")]; + const groupsTitle = [...target.querySelectorAll(".o_kanban_group .o_kanban_header_title .o_column_title")]; await mouseEnter(groupsTitle[0]); assert.containsNone( target, @@ -8779,17 +8822,17 @@ QUnit.module("Views", (hooks) => { assert.hasClass(target.querySelector(".o_kanban_renderer"), "o_kanban_grouped"); assert.containsN(target, ".o_column_title", 2); - await mouseEnter(target.querySelectorAll(".o_kanban_group .o_kanban_header_title")[0]); + await mouseEnter(target.querySelectorAll(".o_kanban_group .o_kanban_header_title .o_column_title")[0]); assert.containsNone(target, ".o-tooltip"); await triggerEvent( - target.querySelectorAll(".o_kanban_group .o_kanban_header_title")[0], + target.querySelectorAll(".o_kanban_group .o_kanban_header_title .o_column_title")[0], null, "mouseleave" ); assert.containsNone(target, ".o-tooltip"); - await mouseEnter(target.querySelectorAll(".o_kanban_group .o_kanban_header_title")[0]); + await mouseEnter(target.querySelectorAll(".o_kanban_group .o_kanban_header_title .o_column_title")[0]); assert.containsNone(target, ".o-tooltip"); prom.resolve(); @@ -8825,19 +8868,19 @@ QUnit.module("Views", (hooks) => { }, }); - await mouseEnter(target.querySelectorAll(".o_kanban_group .o_kanban_header_title")[0]); + await mouseEnter(target.querySelectorAll(".o_kanban_group .o_kanban_header_title .o_column_title")[0]); assert.containsOnce(target, ".o-tooltip"); assert.strictEqual(target.querySelector(".o-tooltip").textContent.trim(), "Namehello"); assert.verifySteps(["read: product"]); await triggerEvent( - target.querySelectorAll(".o_kanban_group .o_kanban_header_title")[0], + target.querySelectorAll(".o_kanban_group .o_kanban_header_title .o_column_title")[0], null, "mouseleave" ); assert.containsNone(target, ".o-tooltip", "tooltip should be closed"); - await mouseEnter(target.querySelectorAll(".o_kanban_group .o_kanban_header_title")[0]); + await mouseEnter(target.querySelectorAll(".o_kanban_group .o_kanban_header_title .o_column_title")[0]); assert.containsOnce(target, ".o-tooltip"); assert.strictEqual(target.querySelector(".o-tooltip").textContent.trim(), "Namehello"); assert.verifySteps([]);