diff --git a/frappe/hooks.py b/frappe/hooks.py index 7af56e2c19..719d94d3c4 100644 --- a/frappe/hooks.py +++ b/frappe/hooks.py @@ -471,21 +471,6 @@ get_changelog_feed = "frappe.desk.doctype.changelog_feed.changelog_feed.get_feed export_python_type_annotations = True -standard_navbar_items = [ - { - "item_label": "User Settings", - "item_type": "Action", - "action": "frappe.ui.toolbar.route_to_user()", - "is_standard": 1, - }, - { - "item_label": "Log out", - "item_type": "Action", - "action": "frappe.app.logout()", - "is_standard": 1, - }, -] - standard_help_items = [ { "item_label": "About", diff --git a/frappe/public/js/frappe/ui/menu.js b/frappe/public/js/frappe/ui/menu.js index 80fd98495a..48c060f874 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.html b/frappe/public/js/frappe/ui/sidebar/sidebar.html index 20458ff16d..9728d3ab16 100644 --- a/frappe/public/js/frappe/ui/sidebar/sidebar.html +++ b/frappe/public/js/frappe/ui/sidebar/sidebar.html @@ -52,10 +52,10 @@ {%= __("Collapse") %}
- - + diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar_header.js b/frappe/public/js/frappe/ui/sidebar/sidebar_header.js index c96f210105..c587f3ae1d 100644 --- a/frappe/public/js/frappe/ui/sidebar/sidebar_header.js +++ b/frappe/public/js/frappe/ui/sidebar/sidebar_header.js @@ -76,15 +76,29 @@ frappe.ui.SidebarHeader = class SidebarHeader { label: "Help", icon: "info", items: this.get_help_siblings(), + }, + { + name: "logout", + label: "Logout", + icon: "logout", + onClick: function () { + return frappe.app.logout(); + }, } ); } + 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"];