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" },