diff --git a/frappe/desk/page/modules/modules.js b/frappe/desk/page/modules/modules.js index b786749a77..50d9ef333f 100644 --- a/frappe/desk/page/modules/modules.js +++ b/frappe/desk/page/modules/modules.js @@ -12,7 +12,7 @@ frappe.pages['modules'].on_page_load = function(wrapper) { // page.wrapper.find('.page-content').css({'margin-top': '0px'}); // render sidebar - page.sidebar.html(frappe.render_template('modules_sidebar', {modules: frappe.get_desktop_icons()})); + page.sidebar.html(frappe.render_template('modules_sidebar', {modules: frappe.get_desktop_icons(true)})); page.activate_link = function(link) { page.wrapper.find('.module-sidebar-item.active, .module-link.active').removeClass('active'); @@ -20,27 +20,6 @@ frappe.pages['modules'].on_page_load = function(wrapper) { show_section($(link).attr('data-name')); } - page.add_menu_item(__("Hide this section"), function() { - frappe.call({ - method: "frappe.desk.moduleview.hide_module", - args: { - module: frappe.get_route()[1] - }, - callback: function() { - frappe.set_route('modules', page.wrapper.find('.module-link:first').attr('data-name')); - window.location.reload(); - } - }) - }); - - page.add_menu_item(__("Settings"), function() { - frappe.route_options = { - "user": user - }; - frappe.set_route("modules_setup"); - }); - - var show_section = function(module_name) { if(module_name in page.section_data) { render_section(page.section_data[module_name]); @@ -102,8 +81,12 @@ frappe.pages['modules'].on_page_load = function(wrapper) { item.route=strip(item.link, "#") } else if(item.type==="doctype") { - item.route="List/" + item.doctype - item.style = 'text-decoration: underline;'; + if(frappe.model.is_single(item.doctype)) { + item.route = 'Form/' + item.doctype; + } else { + item.route="List/" + item.doctype + item.style = 'text-decoration: underline;'; + } // item.style = 'font-weight: bold;'; } else if(item.type==="report" && item.is_query_report) { @@ -126,7 +109,6 @@ frappe.pages['modules'].on_page_load = function(wrapper) { (item.doctype && frappe.model.can_read(item.doctype))) { item.shown = true; } - }); }); } @@ -135,7 +117,18 @@ frappe.pages['modules'].on_page_load = function(wrapper) { frappe.pages['modules'].on_page_show = function(wrapper) { var route = frappe.get_route(); if(route.length > 1) { - var link = frappe.modules_page.sidebar.find('.module-link[data-name="'+ route[1] +'"]'); + var get_link = function() { + return frappe.modules_page.sidebar.find('.module-link[data-name="'+ route[1] +'"]'); + } + + var link = get_link(); + + if(!link || !link.length) { + var new_link_html = frappe.render_template('modules_sidebar_item', + {item: frappe.get_module(route[1])}); + $(new_link_html).appendTo(frappe.modules_page.sidebar.find('.module-sidebar-nav')); + link = get_link(); + } frappe.modules_page.activate_link(link); } } diff --git a/frappe/desk/page/modules/modules_section.html b/frappe/desk/page/modules/modules_section.html index d74e683eb4..177c01195f 100644 --- a/frappe/desk/page/modules/modules_section.html +++ b/frappe/desk/page/modules/modules_section.html @@ -14,7 +14,7 @@ {% if(item.type==="help") { %} data-youtube-id="{{ item.youtube_id }}"{% } %} href="#{{ item.route }}" style="{{ item.style }}"> - {{ item.label }} + {{ item.label || __(item.name) }} {% if(item.type==="doctype") { %} diff --git a/frappe/desk/page/modules/modules_sidebar.html b/frappe/desk/page/modules/modules_sidebar.html index 28a6df4866..1b4125a4a9 100644 --- a/frappe/desk/page/modules/modules_sidebar.html +++ b/frappe/desk/page/modules/modules_sidebar.html @@ -1,12 +1,6 @@ diff --git a/frappe/desk/page/modules/modules_sidebar_item.html b/frappe/desk/page/modules/modules_sidebar_item.html new file mode 100644 index 0000000000..38fbe44df0 --- /dev/null +++ b/frappe/desk/page/modules/modules_sidebar_item.html @@ -0,0 +1,7 @@ +
  • + + + {{ item.label }} +
  • diff --git a/frappe/public/js/frappe/desk.js b/frappe/public/js/frappe/desk.js index 7237d0f401..8a4491d8bc 100644 --- a/frappe/public/js/frappe/desk.js +++ b/frappe/public/js/frappe/desk.js @@ -353,7 +353,7 @@ frappe.get_module = function(m, default_module) { return module; }; -frappe.get_desktop_icons = function() { +frappe.get_desktop_icons = function(show_hidden) { // filter valid icons var out = []; @@ -363,22 +363,27 @@ frappe.get_desktop_icons = function() { out.push(module); } - var is_permitted = function(module) { + var show_module = function(module) { + var out = true; if(m.type==="page") { - return m.link in frappe.boot.page_info; + out = m.link in frappe.boot.page_info; } if(m._doctype) { - return frappe.model.can_read(m._doctype); + out = frappe.model.can_read(m._doctype); } else { - return frappe.boot.user.allow_modules.indexOf(m.module_name) !== -1 + out = frappe.boot.user.allow_modules.indexOf(m.module_name) !== -1 } + if(out && !show_hidden) { + if(m.hidden) out = false; + } + + return out; } for (var i=0, l=frappe.boot.desktop_icons.length; i < l; i++) { var m = frappe.boot.desktop_icons[i]; if ((['Setup', 'Core'].indexOf(m.module_name) === -1) - && is_permitted(m) - && !m.hidden) { + && show_module(m)) { add_to_out(m) } } diff --git a/frappe/public/js/frappe/model/model.js b/frappe/public/js/frappe/model/model.js index 1fd0754964..20a9a2b72b 100644 --- a/frappe/public/js/frappe/model/model.js +++ b/frappe/public/js/frappe/model/model.js @@ -260,7 +260,7 @@ $.extend(frappe.model, { is_single: function(doctype) { if(!doctype) return false; - return locals.DocType[doctype] && locals.DocType[doctype].issingle; + return frappe.boot.single_types.indexOf(doctype) != -1; }, can_import: function(doctype, frm) { diff --git a/frappe/public/js/frappe/views/breadcrumbs.js b/frappe/public/js/frappe/views/breadcrumbs.js index 5eb1f10f06..a163d4d195 100644 --- a/frappe/public/js/frappe/views/breadcrumbs.js +++ b/frappe/public/js/frappe/views/breadcrumbs.js @@ -44,7 +44,7 @@ frappe.breadcrumbs = { if(in_list(["Core", "Email", "Custom", "Workflow", "Print"], breadcrumbs.module)) breadcrumbs.module = "Setup"; - if(frappe.user.is_module(breadcrumbs.module)) { + if(frappe.get_module(breadcrumbs.module)) { // if module access exists var module_info = frappe.get_module(breadcrumbs.module), icon = module_info && module_info.icon,