From 7e4b55977c055257496f123430b60fb30dd8cc5b Mon Sep 17 00:00:00 2001 From: KerollesFathy Date: Sun, 15 Mar 2026 14:22:43 +0000 Subject: [PATCH] fix(sidebar_item): make open URL behavior configurable added an "Open in new tab" checkbox to sidebar item settings, giving users direct control over how URLs are opened. defaults to checked (_blank) to preserve existing behavior --- frappe/boot.py | 1 + frappe/public/js/frappe/ui/sidebar/sidebar_editor.js | 8 ++++++++ frappe/public/js/frappe/ui/sidebar/sidebar_item.html | 2 +- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/frappe/boot.py b/frappe/boot.py index 43f9737929..4c6cbdd483 100644 --- a/frappe/boot.py +++ b/frappe/boot.py @@ -585,6 +585,7 @@ def get_sidebar_items(allowed_workspaces): "filters": item.filters, "route_options": item.route_options, "tab": item.navigate_to_tab, + "open_in_new_tab": item.open_in_new_tab, } if item.link_type == "Report" and item.link_to and frappe.db.exists("Report", item.link_to): report_type, ref_doctype = frappe.db.get_value( diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar_editor.js b/frappe/public/js/frappe/ui/sidebar/sidebar_editor.js index 8b849382e8..b4c8ffad74 100644 --- a/frappe/public/js/frappe/ui/sidebar/sidebar_editor.js +++ b/frappe/public/js/frappe/ui/sidebar/sidebar_editor.js @@ -333,6 +333,14 @@ export class SidebarEditor { fieldtype: "Data", label: "URL", }, + { + depends_on: 'eval: doc.link_type == "URL"', + fieldname: "open_in_new_tab", + fieldtype: "Check", + default: "1", + label: "Open in New Tab", + description: "open the URL in a new browser tab", + }, { depends_on: 'eval: doc.type == "Link" || (doc.indent == 1 && doc.type == "Section Break")', diff --git a/frappe/public/js/frappe/ui/sidebar/sidebar_item.html b/frappe/public/js/frappe/ui/sidebar/sidebar_item.html index 9106234bd7..0a95f06ed4 100644 --- a/frappe/public/js/frappe/ui/sidebar/sidebar_item.html +++ b/frappe/public/js/frappe/ui/sidebar/sidebar_item.html @@ -23,7 +23,7 @@