{% set ul_active = [] %}
{% macro sidebar_item(s) -%}
  {% if s.url %}
    {% if not ul_active[-1] %}
      <ul class="sidebarmenu">
      {% do ul_active.append(True) %}
    {% endif %}
    <li{% if request.url.find(s.url,-s.url.__len__()) != -1 %} class="active"{% endif %}>
      <a href="{{s.url}}"{% if s.className %} class="{{s.className or ''}}"{% endif %}>{% if s.ui_icon %}<b data-icon="{{s.ui_icon.char}}" class="ico {{s.ui_icon.css}}"></b> {% endif %}<span{% if s.small != None %} class="has_small"{% endif %}>{{h.really_unicode(s.label)|safe}}</span>{% if s.small != None %}<small>{{s.small}}</small>{% endif %}</a>
    </li>
  {% else %}
    {% if ul_active[-1] %}
      </ul>
      {% do ul_active.append(False) %}
    {% endif %}
    {% if s.label %}
      <h3 class="{{s.className or ''}}">{% if s.ui_icon %}<b data-icon="{{s.ui_icon.char}}" class="ico {{s.ui_icon.css}}"></b>{% endif %}{{s.label|safe}}</h3>
    {% endif %}
  {% endif %}
{%- endmacro %}

<div id="sidebar">
  {% if c.app and c.app.searchable %}
    <form id="search" method="GET" action="{{c.app.url + 'search/'}}">
      <input name="q" type="text" title="Search {{c.app.config.options.mount_point.title()}}" placeholder="Search {{c.app.config.options.mount_point.title()}}">
    </form>
  {% else %}
    <div>&nbsp;</div>
  {% endif %}
    {% if c.custom_sidebar_menu %}
      {% for s in c.custom_sidebar_menu %}
        {{sidebar_item(s)}}
      {% endfor %}
    {% endif %}
    {% if c.app %}
      {% for s in c.app.sidebar_menu() %}
        {{sidebar_item(s)}}
      {% endfor %}
    {% elif c.project %}
      {% for s in c.project.sidebar_menu() %}
        {{sidebar_item(s)}}
      {% endfor %}
    {% endif %}
    {% if ul_active[-1] %}
      </ul>
      {% do ul_active.append(False) %}
    {% endif %}
    {% if c.app and c.app.sidebar_menu_js() %}
      <script>
        {{c.app.sidebar_menu_js()|safe}}
      </script>
    {% endif %}
</div>
