diff --git a/frappe/public/js/frappe/ui/menu.js b/frappe/public/js/frappe/ui/menu.js index d918f2740b..dbc40b903f 100644 --- a/frappe/public/js/frappe/ui/menu.js +++ b/frappe/public/js/frappe/ui/menu.js @@ -46,15 +46,22 @@ frappe.ui.menu = class ContextMenu { make() { this.template.empty(); this.menu_items_to_show = []; - this.menu_items.forEach((f) => { - f.condition = - f.condition || + this.menu_items.forEach((item) => { + item.condition = + item.condition || function () { return true; }; - if (f.condition()) { - this.add_menu_item(f); - this.menu_items_to_show.push(f); + console.log(typeof item.condition); + let render = false; + if (typeof item.condition == "function") { + render = item.condition(); + } else { + render = frappe.utils.eval_expression(item.condition); + } + if (render) { + this.add_menu_item(item); + this.menu_items_to_show.push(item); } }); diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar_header.js b/frappe/public/js/frappe/ui/sidebar/sidebar_header.js index 95529364ac..c587f3ae1d 100644 --- a/frappe/public/js/frappe/ui/sidebar/sidebar_header.js +++ b/frappe/public/js/frappe/ui/sidebar/sidebar_header.js @@ -87,12 +87,18 @@ frappe.ui.SidebarHeader = class SidebarHeader { } ); } + this.add_navbar_items(); this.make(); this.setup_app_switcher(); this.populate_dropdown_menu(); this.setup_select_options(); } - + add_navbar_items() { + frappe.boot.navbar_settings.settings_dropdown.forEach((item) => { + item.label = item.item_label; + this.dropdown_items.push(item); + }); + } fetch_related_icons() { let sibling_workspaces = []; let workspaces_not_to_show = ["My Workspaces"];