From 588112b833fd54e22bc514ac2dd56287e732be58 Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Thu, 23 Apr 2026 11:26:20 +0530 Subject: [PATCH] refactor: bring back collapse button (#38742) --- .../public/js/frappe/ui/sidebar/sidebar.html | 12 ++++++++-- frappe/public/js/frappe/ui/sidebar/sidebar.js | 23 +++++++++++++++++- frappe/public/scss/desk/avatar.scss | 8 +++++++ frappe/public/scss/desk/sidebar.scss | 24 +++++++++++++++---- 4 files changed, 60 insertions(+), 7 deletions(-) diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar.html b/frappe/public/js/frappe/ui/sidebar/sidebar.html index 14af2e31fc..a6fe3871ff 100644 --- a/frappe/public/js/frappe/ui/sidebar/sidebar.html +++ b/frappe/public/js/frappe/ui/sidebar/sidebar.html @@ -55,17 +55,25 @@ aria-label="{{ __("User Menu") }}" >
{{ avatar }}
-
+
{{ frappe.session.user_fullname }} - + {{ frappe.session.user_email }}
+ diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar.js b/frappe/public/js/frappe/ui/sidebar/sidebar.js index fdb52c5788..0d22db0160 100644 --- a/frappe/public/js/frappe/ui/sidebar/sidebar.js +++ b/frappe/public/js/frappe/ui/sidebar/sidebar.js @@ -336,7 +336,7 @@ frappe.ui.Sidebar = class Sidebar { this.wrapper = $( frappe.render_template("sidebar", { expanded: this.sidebar_expanded, - avatar: frappe.avatar(frappe.session.user, "avatar-medium"), + avatar: frappe.avatar(frappe.session.user, "avatar-medium-2"), navbar_settings: frappe.boot.navbar_settings, }) ).prependTo("body"); @@ -346,6 +346,14 @@ frappe.ui.Sidebar = class Sidebar { this.toggle_width(); }); + this.wrapper.find(".body-sidebar .collapse-sidebar-link").on("click", () => { + this.toggle_width(); + }); + + this.wrapper.find(".body-sidebar .about-sidebar-link").on("click", () => { + frappe.ui.toolbar.show_about(); + }); + this.wrapper.find(".overlay").on("click", () => { this.close(); }); @@ -434,6 +442,8 @@ frappe.ui.Sidebar = class Sidebar { } make_sidebar() { this.empty(); + this.wrapper.find(".collapse-sidebar-link").removeClass("hidden"); + this.wrapper.find(".about-sidebar-link").removeClass("hidden"); if (this.editor.edit_mode) { this.create_sidebar(this.editor.new_sidebar_items); } else { @@ -461,6 +471,8 @@ frappe.ui.Sidebar = class Sidebar { "
No Sidebar Items
" ); this.wrapper.find(".sidebar-items").append(no_items_message); + this.wrapper.find(".collapse-sidebar-link").addClass("hidden"); + this.wrapper.find(".about-sidebar-link").addClass("hidden"); } if (this.edit_mode) { $(".edit-menu").removeClass("hidden"); @@ -563,21 +575,30 @@ frappe.ui.Sidebar = class Sidebar { } expand_sidebar() { + let direction; if (this.sidebar_expanded) { this.wrapper.addClass("expanded"); + direction = "right"; $('[data-toggle="tooltip"]').tooltip("dispose"); this.wrapper.find(".avatar-name-email").show(); + this.wrapper.find(".about-sidebar-link").show(); } else { this.wrapper.removeClass("expanded"); + direction = "left"; $('[data-toggle="tooltip"]').tooltip({ boundary: "window", container: "body", trigger: "hover", }); this.wrapper.find(".avatar-name-email").hide(); + this.wrapper.find(".about-sidebar-link").hide(); } localStorage.setItem("sidebar-expanded", this.sidebar_expanded); + this.wrapper + .find(".body-sidebar .collapse-sidebar-link") + .find("use") + .attr("href", `#icon-panel-${direction}-open`); this.sidebar_header.toggle_width(this.sidebar_expanded); $(document).trigger("sidebar-expand", { sidebar_expand: this.sidebar_expanded, diff --git a/frappe/public/scss/desk/avatar.scss b/frappe/public/scss/desk/avatar.scss index 059518c414..2381770115 100644 --- a/frappe/public/scss/desk/avatar.scss +++ b/frappe/public/scss/desk/avatar.scss @@ -116,6 +116,14 @@ } } +.avatar-medium-2 { + width: 32px; + height: 32px; + .standard-image { + @include get_textstyle("base", "regular"); + } +} + .avatar-large { width: 64px; height: 64px; diff --git a/frappe/public/scss/desk/sidebar.scss b/frappe/public/scss/desk/sidebar.scss index fc5365f6a8..73b85a5336 100644 --- a/frappe/public/scss/desk/sidebar.scss +++ b/frappe/public/scss/desk/sidebar.scss @@ -72,7 +72,7 @@ } .body-sidebar-bottom { - padding: 7px; + padding: 0px; width: 100%; } @@ -153,8 +153,9 @@ } .nav-item { - margin-left: -5px; + padding: 4px 0px; } + .standard-items-sections { .dropdown-notifications { .notifications-list { @@ -175,8 +176,24 @@ } } + .collapse-sidebar-link { + text-decoration: none; + font-size: var(--text-sm); + display: flex; + align-items: center; + svg { + margin: 0px; + flex: 0 0 auto; + } + span { + margin-left: 10px; + @include truncate(); + } + @include transition(all, 0.3s, cubic-bezier(0.4, 0, 0.2, 1)); + } + .nav-item { - margin-left: -5px; + padding: 4px 8px; } .dropdown-navbar-user { @@ -185,7 +202,6 @@ } .sidebar-user-button { - padding: var(--padding-sm); border-radius: var(--border-radius-sm); } }