From 1b78c5d9ae364b1de25e7fbde471e30c6bdbd1a9 Mon Sep 17 00:00:00 2001 From: Ejaaz Khan Date: Thu, 29 Jan 2026 12:43:05 +0530 Subject: [PATCH] fix: global search not working --- .../js/frappe/ui/toolbar/search_utils.js | 2 +- frappe/public/js/frappe/ui/toolbar/toolbar.js | 84 +++++++++++++++++++ 2 files changed, 85 insertions(+), 1 deletion(-) diff --git a/frappe/public/js/frappe/ui/toolbar/search_utils.js b/frappe/public/js/frappe/ui/toolbar/search_utils.js index 2de07432a2..663168cc91 100644 --- a/frappe/public/js/frappe/ui/toolbar/search_utils.js +++ b/frappe/public/js/frappe/ui/toolbar/search_utils.js @@ -570,7 +570,7 @@ frappe.search.utils = { { title: __("Desktop Icon"), fetch_type: "Nav", - results: sort_uniques(this.get_workspaces(keywords)), + results: sort_uniques(this.get_desktop_icons(keywords)), }, { title: __("Dashboard"), diff --git a/frappe/public/js/frappe/ui/toolbar/toolbar.js b/frappe/public/js/frappe/ui/toolbar/toolbar.js index c8e652f952..0b5f546f2c 100644 --- a/frappe/public/js/frappe/ui/toolbar/toolbar.js +++ b/frappe/public/js/frappe/ui/toolbar/toolbar.js @@ -24,6 +24,8 @@ frappe.ui.toolbar.Toolbar = class { $(this).closest(".dropdown-menu").prev().dropdown("toggle"); }); + this.setup_help(); + this.setup_read_only_mode(); this.setup_announcement_widget(); this.make(); @@ -35,6 +37,88 @@ frappe.ui.toolbar.Toolbar = class { this.navbar = $(".navbar-brand"); this.bind_click(); } + + setup_help() { + if (!frappe.boot.desk_settings.notifications) { + // hide the help section + $(".navbar .vertical-bar").removeClass("d-sm-block"); + $(".dropdown-help").removeClass("d-lg-block"); + return; + } + frappe.provide("frappe.help"); + frappe.help.show_results = show_results; + + this.search = new frappe.search.SearchDialog(); + frappe.provide("frappe.searchdialog"); + frappe.searchdialog.search = this.search; + + $(".dropdown-help .dropdown-toggle").on("click", function () { + $(".dropdown-help input").focus(); + }); + + $(".dropdown-help .dropdown-menu").on("click", "input, button", function (e) { + e.stopPropagation(); + }); + + $("#input-help").on("keydown", function (e) { + if (e.which == 13) { + $(this).val(""); + } + }); + + $(document).on("page-change", function () { + var $help_links = $(".dropdown-help #help-links"); + $help_links.html(""); + + var route = frappe.get_route_str(); + var breadcrumbs = route.split("/"); + + var links = []; + for (let i = 0; i < breadcrumbs.length; i++) { + var r = route.split("/", i + 1); + var key = r.join("/"); + var help_links = frappe.help.help_links[key] || []; + links = $.merge(links, help_links); + } + + if (links.length === 0) { + $help_links.next().hide(); + } else { + $help_links.next().show(); + } + + for (let i = 0; i < links.length; i++) { + var link = links[i]; + var url = link.url; + $("", { + href: url, + class: "dropdown-item", + text: __(link.label), + target: "_blank", + }).appendTo($help_links); + } + + $(".dropdown-help .dropdown-menu").on("click", "a", show_results); + }); + + var $result_modal = frappe.get_modal("", ""); + $result_modal.addClass("help-modal"); + + $(document).on("click", ".help-modal a", show_results); + + function show_results(e) { + //edit links + var href = e.target.href; + if (href.indexOf("blob") > 0) { + window.open(href, "_blank"); + } + var path = $(e.target).attr("data-path"); + if (path) { + e.preventDefault(); + } + } + } + change_toolbar() { $(".navbar .container").css("max-width", "43%"); $(".navbar-brand").css("display", "block");