From 24758f6be2ae93ba6c07672991e8b14ef9747942 Mon Sep 17 00:00:00 2001 From: Ejaaz Khan Date: Tue, 13 Jan 2026 12:52:47 +0530 Subject: [PATCH] feat(form): redesign sidebar --- .../js/frappe/form/sidebar/form_sidebar.js | 39 ++++++++++++-- .../frappe/form/templates/form_sidebar.html | 40 ++++++++++---- frappe/public/js/frappe/form/toolbar.js | 53 ++++++------------- frappe/public/scss/desk/form_sidebar.scss | 20 ++++++- 4 files changed, 98 insertions(+), 54 deletions(-) diff --git a/frappe/public/js/frappe/form/sidebar/form_sidebar.js b/frappe/public/js/frappe/form/sidebar/form_sidebar.js index 803bf40d4e..22d354915f 100644 --- a/frappe/public/js/frappe/form/sidebar/form_sidebar.js +++ b/frappe/public/js/frappe/form/sidebar/form_sidebar.js @@ -38,11 +38,9 @@ frappe.ui.form.Sidebar = class { this.indicator = $(this.sidebar).find(".sidebar-meta-details .indicator-pill"); this.setup_copy_event(); this.make_like(); + this.setup_print(); + this.setup_editable_title(); this.refresh(); - - // setup editable title - let form_sidebar_text = $(this.sidebar).find(".sidebar-meta-details .form-title-text"); - this.toolbar.setup_editable_title(form_sidebar_text); } setup_keyboard_shortcuts() { @@ -79,6 +77,39 @@ frappe.ui.form.Sidebar = class { }); } + setup_editable_title() { + // setup editable title + let form_sidebar_text = $(this.sidebar).find(".form-stats-likes .form-title-text"); + this.toolbar.setup_editable_title(form_sidebar_text); + } + + setup_print() { + const print_settings = frappe.model.get_doc(":Print Settings", "Print Settings"); + const allow_print_for_draft = cint(print_settings.allow_print_for_draft); + const allow_print_for_cancelled = cint(print_settings.allow_print_for_cancelled); + + if ( + !frappe.model.is_submittable(this.frm.doc.doctype) || + this.frm.doc.docstatus == 1 || + (allow_print_for_cancelled && this.frm.doc.docstatus == 2) || + (allow_print_for_draft && this.frm.doc.docstatus == 0) + ) { + if (frappe.model.can_print(null, this.frm) && !this.frm.meta.issingle) { + let print_icon = this.page.add_action_icon( + "printer", + () => { + this.frm.print_doc(); + }, + "", + __("Print") + ); + print_icon.css("background-color", "transparent"); + print_icon.addClass("p-0"); + this.sidebar.find(".form-print").append(print_icon); + } + } + } + make_like() { this.like_wrapper = this.sidebar.find(".liked-by"); this.like_icon = this.sidebar.find(".liked-by .like-icon"); diff --git a/frappe/public/js/frappe/form/templates/form_sidebar.html b/frappe/public/js/frappe/form/templates/form_sidebar.html index 7db10aa603..a6314507b2 100644 --- a/frappe/public/js/frappe/form/templates/form_sidebar.html +++ b/frappe/public/js/frappe/form/templates/form_sidebar.html @@ -17,7 +17,10 @@ {% endif %} -
+ {% if image_field %} +
+
+
+ {% endif %}
-