From e8e7211d62ff8b5fe9c0fea435505cba83e5d6f2 Mon Sep 17 00:00:00 2001 From: shariquerik Date: Thu, 8 Jul 2021 20:56:58 +0530 Subject: [PATCH] fix: Auto scroll sidebar to selected page --- frappe/desk/doctype/workspace/workspace.py | 6 +++--- frappe/public/js/frappe/views/workspace/workspace.js | 8 +++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/frappe/desk/doctype/workspace/workspace.py b/frappe/desk/doctype/workspace/workspace.py index 29a8100bd9..93a7b13d17 100644 --- a/frappe/desk/doctype/workspace/workspace.py +++ b/frappe/desk/doctype/workspace/workspace.py @@ -206,12 +206,12 @@ def save_page(title, parent, public, sb_items, deleted_pages, new_widgets, block doc.content = blocks doc.save(ignore_permissions=True) - if json.loads(sb_items): - sort_pages(json.loads(sb_items)) - if json.loads(new_widgets): save_new_widget(doc, title, blocks, new_widgets) + if json.loads(sb_items): + sort_pages(json.loads(sb_items)) + if json.loads(deleted_pages): return delete_pages(json.loads(deleted_pages)) diff --git a/frappe/public/js/frappe/views/workspace/workspace.js b/frappe/public/js/frappe/views/workspace/workspace.js index 2bc21060bd..c65c8aa232 100644 --- a/frappe/public/js/frappe/views/workspace/workspace.js +++ b/frappe/public/js/frappe/views/workspace/workspace.js @@ -145,6 +145,8 @@ frappe.views.Workspace = class Workspace { } this.build_sidebar_section(category, root_pages); }); + + this.sidebar.find('.selected')[0].scrollIntoView(); } build_sidebar_section(title, root_pages) { @@ -152,7 +154,7 @@ frappe.views.Workspace = class Workspace { let $title = $(`
${frappe.utils.icon("small-down", "xs")} - ${__(title)} + ${__(title)}
`).appendTo(sidebar_section); this.prepare_sidebar(root_pages, sidebar_section, this.sidebar); @@ -162,6 +164,10 @@ frappe.views.Workspace = class Workspace { $(e.target).parent().find('.sidebar-item-container').toggleClass('hidden'); }); + if (!this.current_page.name) { + $title.trigger("click"); + } + if (Object.keys(root_pages).length === 0) { sidebar_section.addClass('hidden'); }