Merge pull request #36566 from sokumon/private-workspace

This commit is contained in:
Soham Kulkarni 2026-02-02 13:05:39 +05:30 committed by GitHub
commit 2810de2dc0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 20 additions and 5 deletions

View file

@ -72,7 +72,7 @@
"grid_page_length": 50,
"index_web_pages_for_search": 1,
"links": [],
"modified": "2026-01-10 22:12:40.504715",
"modified": "2026-02-02 12:35:38.009501",
"modified_by": "Administrator",
"module": "Desk",
"name": "Workspace Sidebar",
@ -90,6 +90,18 @@
"role": "System Manager",
"share": 1,
"write": 1
},
{
"create": 1,
"delete": 1,
"email": 1,
"export": 1,
"print": 1,
"read": 1,
"report": 1,
"role": "Desk User",
"share": 1,
"write": 1
}
],
"row_format": "Dynamic",

View file

@ -54,7 +54,9 @@ class WorkspaceSidebar(Document):
self.set_module()
def export_sidebar(self):
allow_export = self.app and not frappe.flags.in_import and frappe.conf.developer_mode
allow_export = (
self.app and self.standard and not frappe.flags.in_import and frappe.conf.developer_mode
)
if allow_export:
folder_path = create_directory_on_app_path("workspace_sidebar", self.app)
file_path = os.path.join(folder_path, f"{frappe.scrub(self.title)}.json")

View file

@ -173,7 +173,8 @@ frappe.router = {
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()}`;
let private_workspace =
route[1] && frappe.router.slug(`${route[1]}-${frappe.user.name.toLowerCase()}`);
if (!frappe.workspaces[private_workspace]) {
frappe.msgprint(
__("Workspace <b>{0}</b> does not exist", [

View file

@ -31,6 +31,7 @@ frappe.ui.Sidebar = class Sidebar {
this.add_standard_items();
this.sidebar_data = frappe.boot.workspace_sidebar_item[this.workspace_title];
this.workspace_sidebar_items = this.sidebar_data.items;
this.all_sidebar_items = frappe.boot.workspace_sidebar_item;
if (this.edit_mode) {
this.workspace_sidebar_items = this.editor.new_sidebar_items;
}
@ -551,7 +552,6 @@ frappe.ui.Sidebar = class Sidebar {
let sidebars = [];
Object.entries(this.all_sidebar_items).forEach(([name, sidebar]) => {
const { items, label } = sidebar;
if (label.includes("My Workspaces")) return;
items.forEach((item) => {
if (item.link_to === link_to) {
sidebars.push(label || name);

View file

@ -36,7 +36,7 @@ frappe.ui.sidebar_item.TypeLink = class SidebarItem {
if (workspaces.public) {
path = "/desk/" + frappe.router.slug(this.item.link_to);
} else {
path = "/desk/private/" + frappe.router.slug(workspaces.title);
path = "/desk/private/" + frappe.router.slug(this.item.link_to);
}
if (this.item.route) {