From e8fe24d7df0aa971ab5f0eebf4e83ef6e9d43524 Mon Sep 17 00:00:00 2001 From: Corentin Flr <10946971+cogk@users.noreply.github.com> Date: Fri, 29 Mar 2024 11:14:25 +0100 Subject: [PATCH] feat(router): Go to default workspace when clicking app logo (#25706) --- frappe/public/js/frappe/router.js | 35 ++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/frappe/public/js/frappe/router.js b/frappe/public/js/frappe/router.js index 5ba9b5efec..69a2bca04d 100644 --- a/frappe/public/js/frappe/router.js +++ b/frappe/public/js/frappe/router.js @@ -469,19 +469,34 @@ frappe.router = { return encodeURIComponent(String(a)); } }).join("/"); - let private_home = frappe.workspaces[`home-${frappe.user.name.toLowerCase()}`]; - let workspace_name = private_home || frappe.workspaces["home"] ? "home" : ""; - let is_private = !!private_home; - let first_workspace = Object.keys(frappe.workspaces)[0]; - - if (!workspace_name && first_workspace) { - workspace_name = frappe.workspaces[first_workspace].title; - is_private = !frappe.workspaces[first_workspace].public; + if (path_string) { + return "/app/" + path_string; } - let default_page = (is_private ? "private/" : "") + frappe.router.slug(workspace_name); - return "/app/" + (path_string || default_page); + // Workspace + let private_home = `home-${frappe.user.name.toLowerCase()}`; + let default_page = null; + if (frappe.boot.user.default_workspace) { + default_page = frappe.router.slug(frappe.boot.user.default_workspace.name); + } else if (frappe.workspaces[private_home]) { + default_page = private_home; + } else if (frappe.workspaces["home"]) { + default_page = "home"; + } else { + // Fallback to first workspace + default_page = Object.keys(frappe.workspaces)[0]; + } + + if (frappe.workspaces[default_page]?.public == false) { + default_page = "private/" + default_page; + } + + if (default_page) { + return "/app/" + default_page; + } + + return "/app"; }, /**