fix(minor): workspace parent should be name, not title

This commit is contained in:
Rushabh Mehta 2024-09-06 22:44:05 +05:30
parent 0b902d1ea6
commit 09e6940f3a
3 changed files with 30 additions and 29 deletions

View file

@ -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 <b>{0}</b> 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)
);
}

View file

@ -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");

View file

@ -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) {