From b2764ca4dcfd5e51acd7791e6e45ed4cb8967bf9 Mon Sep 17 00:00:00 2001 From: Faris Ansari Date: Wed, 10 Jul 2019 18:48:21 +0530 Subject: [PATCH] fix: Allow overriding breadcrumbs modules Some modules like Core, Email, Automation are shown in the Settings module. This change will allow apps to define which module the original module should map to. --- frappe/public/js/frappe/views/breadcrumbs.js | 14 ++++++++++++-- frappe/public/js/frappe/views/treeview.js | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/frappe/public/js/frappe/views/breadcrumbs.js b/frappe/public/js/frappe/views/breadcrumbs.js index bd80b44686..39a2b473e1 100644 --- a/frappe/public/js/frappe/views/breadcrumbs.js +++ b/frappe/public/js/frappe/views/breadcrumbs.js @@ -11,6 +11,16 @@ frappe.breadcrumbs = { "Dashboard Chart Source": "Customization", }, + module_map: { + 'Core': 'Settings', + 'Email': 'Settings', + 'Custom': 'Settings', + 'Workflow': 'Settings', + 'Printing': 'Settings', + 'Automation': 'Settings', + 'Setup': 'Settings', + }, + set_doctype_module: function(doctype, module) { localStorage["preferred_breadcrumbs:" + doctype] = module; }, @@ -73,8 +83,8 @@ frappe.breadcrumbs = { } if(breadcrumbs.module) { - if(in_list(["Core", "Email", "Custom", "Workflow", "Print"], breadcrumbs.module)) { - breadcrumbs.module = "Setup"; + if (frappe.breadcrumbs.module_map[breadcrumbs.module]) { + breadcrumbs.module = frappe.breadcrumbs.module_map[breadcrumbs.module]; } if(frappe.get_module(breadcrumbs.module)) { diff --git a/frappe/public/js/frappe/views/treeview.js b/frappe/public/js/frappe/views/treeview.js index 77a9c96b04..0b7b3aaa04 100644 --- a/frappe/public/js/frappe/views/treeview.js +++ b/frappe/public/js/frappe/views/treeview.js @@ -62,7 +62,7 @@ frappe.views.TreeView = Class.extend({ this.page = this.parent.page; frappe.container.change_to(this.page_name); - frappe.breadcrumbs.add(me.opts.breadcrumb || locals.DocType[me.doctype].module); + frappe.breadcrumbs.add(me.opts.breadcrumb || locals.DocType[me.doctype].module, me.doctype); this.set_title();