Add support for "simple" menus in base template

also flesh out the simple menu logic a bit, add separators etc.
This commit is contained in:
Lance Edgar 2018-11-29 14:00:11 -06:00
parent 291128b96f
commit 0eb394fb86
3 changed files with 86 additions and 11 deletions

View file

@ -0,0 +1,39 @@
## -*- coding: utf-8; -*-
<%def name="main_menu_items()">
% for topitem in menus:
<li>
<a>${topitem.title}</a>
<ul>
% for subitem in topitem.items:
% if subitem.is_sep:
<li>-</li>
% else:
<li>${h.link_to(subitem.title, subitem.url, target=subitem.target)}</li>
% endif
% endfor
</ul>
</li>
% endfor
## User Menu
% if request.user:
<li>
<a${' class="root-user"' if request.is_root else ''|n}>${request.user}${" ({})".format(inbox_count) if inbox_count else ''}</a>
<ul>
% if request.is_root:
<li class="root-user">${h.link_to("Stop being root", url('stop_root'))}</li>
% elif request.is_admin:
<li class="root-user">${h.link_to("Become root", url('become_root'))}</li>
% endif
<li>${h.link_to("Messages{}".format(" ({})".format(inbox_count) if inbox_count else ''), url('messages.inbox'))}</li>
<li>${h.link_to("Change Password", url('change_password'))}</li>
<li>${h.link_to("Logout", url('logout'))}</li>
</ul>
</li>
% else:
<li>${h.link_to("Login", url('login'))}</li>
% endif
</%def>

View file

@ -31,7 +31,11 @@
<a class="navbar-link">${topitem.title}</a>
<div class="navbar-dropdown">
% for subitem in topitem.items:
${h.link_to(subitem.title, subitem.url, class_='navbar-item')}
% if subitem.is_sep:
<hr class="navbar-divider">
% else:
${h.link_to(subitem.title, subitem.url, class_='navbar-item', target=subitem.target)}
% endif
% endfor
</div>
</div>