From 09e6940f3ae11fcfcdafa0883e1e35f118ebb6b8 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 6 Sep 2024 22:44:05 +0530 Subject: [PATCH] fix(minor): workspace parent should be name, not title --- frappe/public/js/frappe/router.js | 8 ++--- frappe/public/js/frappe/ui/sidebar.js | 20 +++++++----- .../js/frappe/views/workspace/workspace.js | 31 +++++++++---------- 3 files changed, 30 insertions(+), 29 deletions(-) diff --git a/frappe/public/js/frappe/router.js b/frappe/public/js/frappe/router.js index 80a8917dd1..9c960e3821 100644 --- a/frappe/public/js/frappe/router.js +++ b/frappe/public/js/frappe/router.js @@ -165,7 +165,7 @@ frappe.router = { if (frappe.workspaces[route[0]]) { // public workspace - route = ["Workspaces", frappe.workspaces[route[0]].title]; + route = ["Workspaces", frappe.workspaces[route[0]].name]; } else if (route[0] == "private") { // private workspace let private_workspace = route[1] && `${route[1]}-${frappe.user.name.toLowerCase()}`; @@ -173,7 +173,7 @@ frappe.router = { frappe.msgprint(__("Workspace {0} does not exist", [route[1]])); return ["Workspaces"]; } - route = ["Workspaces", "private", frappe.workspaces[private_workspace].title]; + route = ["Workspaces", "private", frappe.workspaces[private_workspace].name]; } else if (this.routes[route[0]]) { // route route = await this.set_doctype_route(route); @@ -473,9 +473,7 @@ frappe.router = { if (workspace) { return ( - "/app/" + - (workspace.public ? "" : "private/") + - frappe.router.slug(workspace.title) + "/app/" + (workspace.public ? "" : "private/") + frappe.router.slug(workspace.name) ); } diff --git a/frappe/public/js/frappe/ui/sidebar.js b/frappe/public/js/frappe/ui/sidebar.js index 73741dca4c..6c1cc2900d 100644 --- a/frappe/public/js/frappe/ui/sidebar.js +++ b/frappe/public/js/frappe/ui/sidebar.js @@ -173,7 +173,7 @@ frappe.ui.Sidebar = class Sidebar { frappe.workspace_list = []; for (let page of this.all_pages) { frappe.workspaces[frappe.router.slug(page.name)] = { - title: page.title, + name: page.name, public: page.public, }; @@ -190,14 +190,14 @@ frappe.ui.Sidebar = class Sidebar { let app_workspaces = frappe.boot.app_data_map[frappe.current_app || "frappe"].workspaces; - let parent_pages = this.all_pages.filter((p) => !p.parent_page).uniqBy((p) => p.title); + let parent_pages = this.all_pages.filter((p) => !p.parent_page).uniqBy((p) => p.name); parent_pages = [ ...parent_pages.filter( (p) => !p.public && - (app_workspaces.includes(p.title) || p.app === frappe.current_app || !p.app) + (app_workspaces.includes(p.name) || p.app === frappe.current_app || !p.app) ), - ...parent_pages.filter((p) => p.public && app_workspaces.includes(p.title)), + ...parent_pages.filter((p) => p.public && app_workspaces.includes(p.name)), ]; this.build_sidebar_section("All", parent_pages); @@ -257,13 +257,15 @@ frappe.ui.Sidebar = class Sidebar { item.selected = is_current_page; if (is_current_page) { - this.current_page = { name: item.title, public: item.public }; + this.current_page = { name: item.name, public: item.public }; } let $item_container = this.sidebar_item_container(item); let sidebar_control = $item_container.find(".sidebar-item-control"); - let child_items = this.all_pages.filter((page) => page.parent_page == item.title); + let child_items = this.all_pages.filter( + (page) => page.parent_page == item.name || page.parent_page == item.title + ); if (child_items.length > 0) { let child_container = $item_container.find(".sidebar-child-item"); child_container.addClass("hidden"); @@ -271,7 +273,7 @@ frappe.ui.Sidebar = class Sidebar { } $item_container.appendTo(container); - this.sidebar_items[item.public ? "public" : "private"][item.title] = $item_container; + this.sidebar_items[item.public ? "public" : "private"][item.name] = $item_container; if ($item_container.parent().hasClass("hidden") && is_current_page) { $item_container.parent().toggleClass("hidden"); @@ -338,7 +340,9 @@ frappe.ui.Sidebar = class Sidebar { if ( this.all_pages.some( - (e) => e.parent_page == item.title && (e.is_hidden == 0 || !this.is_read_only) + (e) => + (e.parent_page == item.title || e.parent_page == item.name) && + (e.is_hidden == 0 || !this.is_read_only) ) ) { $drop_icon.removeClass("hidden"); diff --git a/frappe/public/js/frappe/views/workspace/workspace.js b/frappe/public/js/frappe/views/workspace/workspace.js index d6fd1938ee..71e0e0beb8 100644 --- a/frappe/public/js/frappe/views/workspace/workspace.js +++ b/frappe/public/js/frappe/views/workspace/workspace.js @@ -155,12 +155,12 @@ frappe.views.Workspace = class Workspace { if (frappe.boot.user.default_workspace) { default_page = { - name: frappe.boot.user.default_workspace.title, + name: frappe.boot.user.default_workspace.name, public: frappe.boot.user.default_workspace.public, }; } else if ( localStorage.current_page && - this.sidebar.all_pages.filter((page) => page.title == localStorage.current_page) + this.sidebar.all_pages.filter((page) => page.name == localStorage.current_page) .length != 0 ) { default_page = { @@ -169,7 +169,7 @@ frappe.views.Workspace = class Workspace { }; } else if (Object.keys(this.sidebar.all_pages).length !== 0) { default_page = { - name: this.sidebar.all_pages[0].title, + name: this.sidebar.all_pages[0].name, public: this.sidebar.all_pages[0].public, }; } else { @@ -193,7 +193,7 @@ frappe.views.Workspace = class Workspace { if (this.sidebar.all_pages.length) { this.create_page_skeleton(); - let current_page = this.sidebar.all_pages.filter((p) => p.title == page.name)[0]; + let current_page = this.sidebar.all_pages.filter((p) => p.name == page.name)[0]; this._page = current_page; let app = this._page.app || frappe.boot.module_app[frappe.router.slug(this._page.module)]; @@ -266,7 +266,7 @@ frappe.views.Workspace = class Workspace { } setup_actions(page) { - let current_page = this.sidebar.all_pages.filter((p) => p.title == page.name)[0]; + let current_page = this.sidebar.all_pages.filter((p) => p.name == page.name)[0]; if (!this.is_read_only) { this.setup_customization_buttons(current_page); @@ -352,7 +352,7 @@ frappe.views.Workspace = class Workspace { var me = this; let old_item = item; let parent_pages = this.sidebar.all_pages; - let idx = parent_pages.findIndex((x) => x == item.title); + let idx = parent_pages.findIndex((x) => x == item.name); if (idx !== -1) parent_pages.splice(idx, 1); const d = new frappe.ui.Dialog({ title: __("Update Details"), @@ -387,9 +387,6 @@ frappe.views.Workspace = class Workspace { d.set_df_property("indicator_color", "hidden", this.get_value() ? 1 : 0); }, }, - { - fieldtype: "Column Break", - }, { label: __("Icon"), fieldtype: "Icon", @@ -432,9 +429,13 @@ frappe.views.Workspace = class Workspace { }); if (this.make_page_selected) { - let pre_url = values.is_public ? "" : "private/"; - let route = pre_url + frappe.router.slug(values.title); - frappe.set_route(route); + if (values.is_public) { + frappe.set_route(frappe.router.slug(values.name)); + } else { + frappe.set_route( + "private/" + frappe.router.slug(values.name.split("-").at(-1)) + ); + } this.make_page_selected = false; } @@ -736,15 +737,13 @@ frappe.views.Workspace = class Workspace { get_parent_pages(page) { this.public_parent_pages = [ "", - ...this.sidebar.all_pages - .filter((p) => p.public && !p.parent_page) - .map((p) => p.title), + ...this.sidebar.all_pages.filter((p) => p.public && !p.parent_page).map((p) => p.name), ]; this.private_parent_pages = [ "", ...this.sidebar.all_pages .filter((p) => !p.public && !p.parent_page) - .map((p) => p.title), + .map((p) => p.name), ]; if (page) {