From 2973739f2e4d67cb3d13499690f7c4272dc0bafc Mon Sep 17 00:00:00 2001 From: Shariq Ansari Date: Fri, 30 Aug 2024 15:33:23 +0530 Subject: [PATCH] fix: show Apps if multiple app or show CRM if only CRM is installed in dropdown --- frappe/website/js/website.js | 23 ++++++++++++++++++++--- frappe/website/utils.py | 4 ++-- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/frappe/website/js/website.js b/frappe/website/js/website.js index 2b0290d1e9..56fc74b5bb 100644 --- a/frappe/website/js/website.js +++ b/frappe/website/js/website.js @@ -351,8 +351,9 @@ $.extend(frappe, { add_switch_to_desk: function () { $(".switch-to-desk").removeClass("hidden"); }, - add_apps: function () { - $(".apps").removeClass("hidden"); + add_apps: function (obj) { + $(".logged-in .apps").attr("href", obj.route).text(obj.label); + $(".logged-in .apps").removeClass("hidden"); }, add_link_to_headings: function () { $(".doc-content .from-markdown") @@ -610,10 +611,26 @@ $(document).ready(function () { frappe.bind_navbar_search(); + // add apps link + let apps = frappe.boot?.apps_data?.apps; + let obj = { + label: __("Apps"), + route: "/apps", + }; + if (apps?.length) { + if (apps.length == 1) { + obj = { + label: __(apps[0].title), + route: apps[0].route, + }; + } + let is_desk_apps = frappe.boot?.apps_data?.is_desk_apps; + !is_desk_apps && frappe.add_apps(obj); + } + // switch to app link if (frappe.get_cookie("system_user") === "yes" && logged_in) { frappe.add_switch_to_desk(); - frappe.add_apps(); } frappe.render_user(); diff --git a/frappe/website/utils.py b/frappe/website/utils.py index d1e2ea94d3..65a8ebf816 100644 --- a/frappe/website/utils.py +++ b/frappe/website/utils.py @@ -167,9 +167,9 @@ def get_boot_data(): return { "lang": frappe.local.lang or "en", "apps_data": { - "apps": get_apps(), + "apps": get_apps() or [], "is_desk_apps": 1 if bool(is_desk_apps(get_apps())) else 0, - "default_path": get_default_path(), + "default_path": get_default_path() or "", }, "sysdefaults": { "float_precision": cint(frappe.get_system_settings("float_precision")) or 3,