fix: Add navbar items in boot

This commit is contained in:
Deepesh Garg 2020-08-06 20:27:12 +05:30
parent 170d3c221b
commit 2e3e9bf283
3 changed files with 55 additions and 28 deletions

View file

@ -21,6 +21,7 @@ from frappe.website.doctype.web_page_view.web_page_view import is_tracking_enabl
from frappe.social.doctype.energy_point_log.energy_point_log import get_energy_points
from frappe.model.base_document import get_controller
from frappe.social.doctype.post.post import frequently_visited_links
from frappe.core.doctype.navbar_settings.navbar_settings import get_navbar_items
def get_bootinfo():
"""build and return boot info"""
@ -59,6 +60,7 @@ def get_bootinfo():
load_print(bootinfo, doclist)
doclist.extend(get_meta_bundle("Page"))
bootinfo.home_folder = frappe.db.get_value("File", {"is_home_folder": 1})
bootinfo.navbar_items = get_navbar_items()
# ipinfo
if frappe.session.data.get('ipinfo'):

View file

@ -5,13 +5,12 @@
<i class="octicon octicon-three-bars"></i>
</a>
<a class="navbar-brand navbar-home hidden-xs hidden-sm" href="#">
<img class="app-logo" src="{{ frappe.app.logo_url }}">
<img class="app-logo" style="width: {{navbar_items.logo_width || 24}}px" src="{{ frappe.app.logo_url }}">
</a>
<ul class="nav navbar-nav" id="navbar-breadcrumbs">
</ul>
</div>
<div class="navbar-center ellipsis" style="display: none;"></div>
<ul class="nav navbar-nav navbar-right">
<li class="visible-xs">
<a class="navbar-search-button" href="#" data-toggle="modal" data-target="#search-modal"><i class="octicon octicon-search"></i></a>
@ -24,25 +23,25 @@
{%= __("Settings") %}</span>
<b class="caret hidden-xs hidden-sm"></b></a>
<ul class="dropdown-menu" id="toolbar-user" role="menu">
<li><a href="#user-profile">
{%= __("My Profile") %}</a></li>
<li><a href="#Form/User/{%= encodeURIComponent(frappe.session.user) %}">
{%= __("My Settings") %}</a></li>
<li><a href="#" onclick="return frappe.ui.toolbar.setup_session_defaults();">
{%= __("Session Defaults") %}</a></li>
<li class="navbar-reload">
<a href="" onclick="return frappe.ui.toolbar.clear_cache();">
{%= __("Reload") %}</a></li>
<li><a href="/index" target="_blank" rel="noopener noreferrer">
{%= __("View Website") %}</a></li>
<li class="navbar-toggle-full-width">
<a href="#" onclick="return false">{%= __("Toggle Full Width") %}</a>
</li>
<li><a href="#background_jobs">
{%= __("Background Jobs") %}</a></li>
<li class="divider"></li>
<li><a href="#" onclick="return frappe.app.logout();">
{%= __("Logout") %}</a></li>
{% for item in navbar_items.settings_dropdown %}
{% if (!item.hidden) { %}
{% if (item.route) { %}
<li>
<a href="{{ item.route }}">
{%= __(item.label) %}
</a>
</li>
{% } else if (item.action) { %}
<li>
<a onclick="return {{ item.action }}">
{%= __(item.label) %}
</a>
</li>
{% } else { %}
<li class="divider"></li>
{% } %}
{% } %}
{% endfor %}
</ul>
</li>
@ -53,13 +52,28 @@
<span class="visible-xs visible-sm standard-image help-icon">?</span>
</a>
<ul class="dropdown-menu" id="toolbar-help" role="menu">
<!-- For custom links added via jquery -->
<li id="help-links"></li>
<li class="divider"></li>
<li class="divider documentation-links"></li>
<li><a href="#" onclick="return frappe.ui.toolbar.show_about();">
{%= __("About") %}</a></li>
<li><a href="#" onclick="return frappe.ui.toolbar.show_shortcuts(event);">
{%= __("Keyboard Shortcuts") %}</a></li>
{% for item in navbar_items.help_dropdown %}
{% if (!item.hidden) { %}
{% if (item.route) { %}
<li>
<a href="{{ item.route }}">
{%= __(item.label) %}
</a>
</li>
{% } else if (item.action) { %}
<li>
<a onclick="return {{ item.action }}">
{%= __(item.label) %}
</a>
</li>
{% } else { %}
<li class="divider"></li>
{% } %}
{% } %}
{% endfor %}
</ul>
</li>
@ -112,4 +126,4 @@
</form>
</div>
</div>
</div>
</div>

View file

@ -7,7 +7,8 @@ frappe.provide('frappe.search');
frappe.ui.toolbar.Toolbar = Class.extend({
init: function() {
$('header').append(frappe.render_template("navbar", {
avatar: frappe.avatar(frappe.session.user)
avatar: frappe.avatar(frappe.session.user),
navbar_items: frappe.boot.navbar_items
}));
$('.dropdown-toggle').dropdown();
@ -236,6 +237,16 @@ frappe.ui.toolbar.show_about = function() {
return false;
};
frappe.ui.toolbar.route_to_user = function() {
frappe.set_route('Form', 'User', frappe.session.user);
}
frappe.ui.toolbar.view_website = function() {
let website_tab = window.open();
website_tab.opener = null;
website_tab.location = '/index';
}
frappe.ui.toolbar.setup_session_defaults = function() {
let fields = [];
frappe.call({