[modules-page] route if module exists, fixes #4117, fixes frappe/erpnext#11548 (#4621)
This commit is contained in:
parent
6f164ed975
commit
a4ced6e4f2
3 changed files with 33 additions and 20 deletions
|
|
@ -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) => `<li class="strong module-sidebar-item">
|
||||
<a class="module-link" data-name="${item.module_name}" href="#modules/${item.module_name}">
|
||||
<i class="fa fa-chevron-right pull-right" style="display: none;"></i>
|
||||
<span>${item._label}</span>
|
||||
</a>
|
||||
</li>`;
|
||||
|
||||
let get_sidebar_html = () => {
|
||||
let sidebar_items_html = page.get_page_modules()
|
||||
.map(get_module_sidebar_item.bind(this)).join("");
|
||||
|
||||
return `<ul class="module-sidebar-nav overlay-sidebar nav nav-pills nav-stacked">
|
||||
${sidebar_items_html}
|
||||
<li class="divider"></li>
|
||||
</ul>`;
|
||||
}
|
||||
|
||||
// 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'))
|
||||
|
|
|
|||
|
|
@ -1,7 +0,0 @@
|
|||
<ul class="module-sidebar-nav overlay-sidebar nav nav-pills nav-stacked">
|
||||
{% for (var i=0, l= modules.length; i < l; i++) { var item = modules[i];
|
||||
if(item.type==="module" && !item.blocked) { %}
|
||||
{{ frappe.render_template("modules_sidebar_item", {"item": item}) }}
|
||||
{% }; } %}
|
||||
<li class="divider"></li>
|
||||
</ul>
|
||||
|
|
@ -1,7 +0,0 @@
|
|||
<li class="strong module-sidebar-item">
|
||||
<a class="module-link" data-name="{{ item.module_name }}"
|
||||
href="#modules/{{ item.module_name }}">
|
||||
<i class="fa fa-chevron-right pull-right"
|
||||
style="display: none;"></i>
|
||||
<span>{{ item._label }}</span></a>
|
||||
</li>
|
||||
Loading…
Add table
Reference in a new issue