diff --git a/addons/website/static/src/services/website_service.js b/addons/website/static/src/services/website_service.js index 4d57e8544a9..ad505daea11 100644 --- a/addons/website/static/src/services/website_service.js +++ b/addons/website/static/src/services/website_service.js @@ -93,6 +93,7 @@ export const websiteService = { currentMetadata = {}; } else { const { mainObject, seoObject, isPublished, canPublish, editableInBackend, translatable, viewXmlid } = document.documentElement.dataset; + const contentMenuEl = document.querySelector('[data-content_menu_id]'); currentMetadata = { path: document.location.href, mainObject: unslugHtmlDataObject(mainObject), @@ -102,6 +103,7 @@ export const websiteService = { editableInBackend: editableInBackend === 'True', title: document.title, translatable: !!translatable, + contentMenuId: contentMenuEl && contentMenuEl.dataset.content_menu_id, // TODO: Find a better way to figure out if // a page is editable or not. For now, we use // the editable selector because it's the common diff --git a/addons/website_event/__manifest__.py b/addons/website_event/__manifest__.py index d39b254da22..b7c2ea21f63 100644 --- a/addons/website_event/__manifest__.py +++ b/addons/website_event/__manifest__.py @@ -65,6 +65,7 @@ ], 'website.assets_editor': [ 'website_event/static/src/js/systray_items/*.js', + 'website_event/static/src/js/components/navbar/navbar.js', ], }, 'license': 'LGPL-3', diff --git a/addons/website_event/static/src/js/components/navbar/navbar.js b/addons/website_event/static/src/js/components/navbar/navbar.js new file mode 100644 index 00000000000..6d400f9a8d5 --- /dev/null +++ b/addons/website_event/static/src/js/components/navbar/navbar.js @@ -0,0 +1,23 @@ +/** @odoo-module */ + +import { patch } from 'web.utils'; +import { NavBar } from '@web/webclient/navbar/navbar'; +import { EditMenuDialog } from '@website/components/dialog/edit_menu'; + +const { onWillStart } = owl; + +patch(NavBar.prototype, 'website_events_navbar', { + setup() { + this._super(); + + onWillStart(() => { + this.websiteEditingMenus['website_event.menu_edit_menu'] = { + Component: EditMenuDialog, + isDisplayed: () => this.websiteService.currentWebsite && this.websiteService.currentWebsite.metadata.contentMenuId, + getProps: () => ({ + rootID: parseInt(this.websiteService.currentWebsite.metadata.contentMenuId, 10), + }), + }; + }); + }, +}); diff --git a/addons/website_event/views/event_menus.xml b/addons/website_event/views/event_menus.xml index 623a223679b..8fe3cd4fc92 100644 --- a/addons/website_event/views/event_menus.xml +++ b/addons/website_event/views/event_menus.xml @@ -8,4 +8,10 @@ groups="base.group_no_one" sequence="99"/> + +