From c31423a756599de1bcbf7c0cb4914957cf2fba49 Mon Sep 17 00:00:00 2001 From: Waleed Mohsen <91066610+wm-cortex@users.noreply.github.com> Date: Sat, 26 Mar 2022 16:31:37 +0000 Subject: [PATCH] [FIX] web: navbar: set action id in menu href Before this commit, the href attribute of menu elements didn't contain the "action=xx" part but only the id of the menu. closes odoo/odoo#87570 X-original-commit: 6b8242ee1918b784dfdb2160cca6df1c165a824b Signed-off-by: Aaron Bohy (aab) --- addons/web/static/src/webclient/navbar/navbar.js | 4 ++-- addons/web/static/tests/webclient/navbar_tests.js | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/addons/web/static/src/webclient/navbar/navbar.js b/addons/web/static/src/webclient/navbar/navbar.js index 92abbae9653..e86eda5aa86 100644 --- a/addons/web/static/src/webclient/navbar/navbar.js +++ b/addons/web/static/src/webclient/navbar/navbar.js @@ -180,8 +180,8 @@ export class NavBar extends Component { getMenuItemHref(payload) { const parts = [`menu_id=${payload.id}`]; - if (payload.action) { - parts.push(`action=${payload.action.split(",")[1]}`); + if (payload.actionID) { + parts.push(`action=${payload.actionID}`); } return "#" + parts.join("&"); } diff --git a/addons/web/static/tests/webclient/navbar_tests.js b/addons/web/static/tests/webclient/navbar_tests.js index 19d499080c0..1015c95bb1d 100644 --- a/addons/web/static/tests/webclient/navbar_tests.js +++ b/addons/web/static/tests/webclient/navbar_tests.js @@ -70,6 +70,19 @@ QUnit.test("dropdown menu can be toggled", async (assert) => { assert.containsNone(dropdown, ".dropdown-menu"); }); +QUnit.test("href attribute on apps menu items", async (assert) => { + baseConfig.serverData.menus = { + root: { id: "root", children: [1], name: "root", appID: "root" }, + 1: { id: 1, children: [2], name: "My app", appID: 1, actionID: 339 }, + }; + const env = await makeTestEnv(baseConfig); + await mount(NavBar, target, { env }); + const appsMenu = target.querySelector(".o_navbar_apps_menu"); + await click(appsMenu, "button.dropdown-toggle"); + const dropdownItem = target.querySelector(".o_navbar_apps_menu .dropdown-item"); + assert.strictEqual(dropdownItem.getAttribute("href"), "#menu_id=1&action=339"); +}); + QUnit.test("data-menu-xmlid attribute on AppsMenu items", async (assert) => { baseConfig.serverData.menus = { root: { id: "root", children: [1, 2], name: "root", appID: "root" },