fix: add header icon to workspace sidebar itself

This commit is contained in:
sokumon 2025-10-26 22:54:44 +05:30
parent a054ae9621
commit 3e137957c2
3 changed files with 16 additions and 21 deletions

View file

@ -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

View file

@ -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);
}
});
});

View file

@ -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");