diff --git a/frappe/public/js/frappe/router.js b/frappe/public/js/frappe/router.js index c4ee4d2659..2631c6374e 100644 --- a/frappe/public/js/frappe/router.js +++ b/frappe/public/js/frappe/router.js @@ -177,8 +177,18 @@ frappe.router = { if (frappe.workspaces[route[0]]) { // public workspace route = ["Workspaces", frappe.workspaces[route[0]].title]; - } else if (route[0] == "private" && frappe.workspaces[private_workspace]) { + } else if (route[0] == "private") { // private workspace + if (!frappe.workspaces[private_workspace] && localStorage.new_workspace) { + let new_workspace = JSON.parse(localStorage.new_workspace); + if (frappe.router.slug(new_workspace.title) === route[1]) { + frappe.workspaces[private_workspace] = new_workspace; + } + } + if (!frappe.workspaces[private_workspace]) { + frappe.msgprint(__("Workspace {0} does not exist", [route[1]])); + return ["Workspaces"]; + } route = ["Workspaces", "private", frappe.workspaces[private_workspace].title]; } else if (this.routes[route[0]]) { // route diff --git a/frappe/public/js/frappe/views/workspace/workspace.js b/frappe/public/js/frappe/views/workspace/workspace.js index 9b135338ca..9dc5c07a95 100644 --- a/frappe/public/js/frappe/views/workspace/workspace.js +++ b/frappe/public/js/frappe/views/workspace/workspace.js @@ -1210,6 +1210,7 @@ frappe.views.Workspace = class Workspace { this.make_sidebar(); this.show_sidebar_actions(); + localStorage.setItem("new_workspace", JSON.stringify(new_page)); }); }, });