diff --git a/frappe/boot.py b/frappe/boot.py index e0f18eeef8..f5ced18cfd 100644 --- a/frappe/boot.py +++ b/frappe/boot.py @@ -525,13 +525,12 @@ def get_sentry_dsn(): def get_sidebar_items(): - sidebars = frappe.get_all("Workspace Sidebar", pluck="name") + sidebars = frappe.get_all("Workspace Sidebar", fields=["name", "header_icon"]) sidebar_items = {} for s in sidebars: - w = frappe.get_doc("Workspace Sidebar", s) - sidebar_items[s.lower()] = [] - print(s) + w = frappe.get_doc("Workspace Sidebar", s["name"]) + sidebar_items[s["name"].lower()] = {"label": s["name"], "items": [], "header_icon": s["header_icon"]} for si in w.items: workspace_sidebar = { "label": si.label, @@ -553,6 +552,6 @@ def get_sidebar_items(): "report_type": report_type, "ref_doctype": ref_doctype, } - sidebar_items[s.lower()].append(workspace_sidebar) + sidebar_items[s["name"].lower()]["items"].append(workspace_sidebar) return sidebar_items diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar.js b/frappe/public/js/frappe/ui/sidebar/sidebar.js index 717ddf202f..c72c264e57 100644 --- a/frappe/public/js/frappe/ui/sidebar/sidebar.js +++ b/frappe/public/js/frappe/ui/sidebar/sidebar.js @@ -21,8 +21,8 @@ frappe.ui.Sidebar = class Sidebar { } prepare() { - this.workspace_sidebar_items = - frappe.boot.workspace_sidebar_item[this.workspace_title.toLowerCase()]; + this.sidebar_data = frappe.boot.workspace_sidebar_item[this.workspace_title.toLowerCase()]; + this.workspace_sidebar_items = this.sidebar_data.items; this.choose_app_name(); this.find_nested_items(); } @@ -278,7 +278,7 @@ frappe.ui.Sidebar = class Sidebar { let route = frappe.get_route(); if (frappe.get_route()[0] == "setup-wizard") return; if (route[0] == "Workspaces") { - let workspace = route[1] || "Build"; + let workspace = route[1]; frappe.app.sidebar.setup(workspace); } else if (route[0] == "List" || route[0] == "Form") { let doctype = route[1]; @@ -286,7 +286,7 @@ frappe.ui.Sidebar = class Sidebar { if (this.workspace_title && sidebars.includes(this.workspace_title.toLowerCase())) { frappe.app.sidebar.setup(this.workspace_title.toLowerCase()); } else { - frappe.app.sidebar.setup(sidebars[0] || "Build"); + frappe.app.sidebar.setup(sidebars[0]); } } else if (route[0] == "query-report") { let doctype = route[1]; @@ -318,10 +318,11 @@ frappe.ui.Sidebar = class Sidebar { get_correct_workspace_sidebars(link_to) { let sidebars = []; - Object.entries(this.all_sidebar_items).forEach(([name, items]) => { + Object.entries(this.all_sidebar_items).forEach(([name, sidebar]) => { + const { items, label } = sidebar; items.forEach((item) => { - if (item.link_to == link_to) { - sidebars.push(name); + if (item.link_to === link_to) { + sidebars.push(label || name); } }); }); diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar_header.js b/frappe/public/js/frappe/ui/sidebar/sidebar_header.js index 1735f34d51..b24063d3d8 100644 --- a/frappe/public/js/frappe/ui/sidebar/sidebar_header.js +++ b/frappe/public/js/frappe/ui/sidebar/sidebar_header.js @@ -3,7 +3,7 @@ frappe.ui.SidebarHeader = class SidebarHeader { this.sidebar = sidebar; this.sidebar_wrapper = $(".body-sidebar"); this.drop_down_expanded = false; - this.workspace_title = frappe.utils.to_title_case(this.sidebar.workspace_title); + this.workspace_title = this.sidebar.workspace_title; const me = this; this.dropdown_items = [ { @@ -39,7 +39,7 @@ frappe.ui.SidebarHeader = class SidebarHeader { make() { $(".sidebar-header").remove(); $(".sidebar-header-menu").remove(); - this.set_header_icon_and_color(); + this.set_header_icon(); $( frappe.render_template("sidebar_header", { workspace_title: this.workspace_title, @@ -61,13 +61,8 @@ frappe.ui.SidebarHeader = class SidebarHeader { this.$header_title = this.wrapper.find(".header-title"); this.$drop_icon = this.wrapper.find(".drop-icon"); } - set_header_icon_and_color() { - let icon = frappe.boot.desktop_icons.filter( - (f) => f.label.toLowerCase() == this.workspace_title.toLowerCase() - ); - if (icon.length > 0) { - this.header_icon = icon[0].icon; - } + set_header_icon() { + this.header_icon = this.sidebar.sidebar_data.header_icon; } setup_app_switcher() { this.dropdown_menu = $(".sidebar-header-menu");