diff --git a/frappe/desk/page/modules/modules.js b/frappe/desk/page/modules/modules.js index 02806396c2..e2d1c6838b 100644 --- a/frappe/desk/page/modules/modules.js +++ b/frappe/desk/page/modules/modules.js @@ -26,10 +26,31 @@ frappe.pages['modules'].on_page_load = function(wrapper) { }); } + page.get_page_modules = () => { + return frappe.get_desktop_icons(true) + .filter(d => d.type==='module' && !d.blocked) + .sort((a, b) => { return (a._label > b._label) ? 1 : -1 }); + } + + let get_module_sidebar_item = (item) => `
  • + + + ${item._label} + +
  • `; + + let get_sidebar_html = () => { + let sidebar_items_html = page.get_page_modules() + .map(get_module_sidebar_item.bind(this)).join(""); + + return ``; + } + // render sidebar - page.sidebar.html(frappe.render_template('modules_sidebar', - {modules: frappe.get_desktop_icons(true).sort( - function(a, b){ return (a._label > b._label) ? 1 : -1 })})); + page.sidebar.html(get_sidebar_html()); // help click page.main.on("click", '.module-section-link[data-type="help"]', function(event) { @@ -143,12 +164,18 @@ frappe.pages['modules'].on_page_load = function(wrapper) { } frappe.pages['modules'].on_page_show = function(wrapper) { - var route = frappe.get_route(); + let route = frappe.get_route(); + let modules = frappe.modules_page.get_page_modules().map(d => d._label); $("body").attr("data-sidebar", 1); if(route.length > 1) { // activate section based on route - frappe.modules_page.activate_link( - frappe.modules_page.sidebar.find('.module-link[data-name="'+ route[1] +'"]')); + let module_name = route[1]; + if(modules.includes(module_name)) { + frappe.modules_page.activate_link( + frappe.modules_page.sidebar.find('.module-link[data-name="'+ module_name +'"]')); + } else { + frappe.throw(__(`Module ${module_name} not found.`)); + } } else if(frappe.modules_page.last_link) { // open last link frappe.set_route('modules', frappe.modules_page.last_link.attr('data-name')) diff --git a/frappe/desk/page/modules/modules_sidebar.html b/frappe/desk/page/modules/modules_sidebar.html deleted file mode 100644 index 3d641c6235..0000000000 --- a/frappe/desk/page/modules/modules_sidebar.html +++ /dev/null @@ -1,7 +0,0 @@ - \ No newline at end of file diff --git a/frappe/desk/page/modules/modules_sidebar_item.html b/frappe/desk/page/modules/modules_sidebar_item.html deleted file mode 100644 index 4e4b2c7720..0000000000 --- a/frappe/desk/page/modules/modules_sidebar_item.html +++ /dev/null @@ -1,7 +0,0 @@ -
  • - - - {{ item._label }} -