{% macro filter_options(btn_class='dropdown-toggle') %}
    <a class="nav-link {{ btn_class }}" data-toggle="dropdown" href="javascript:void(0)">{{ _gettext('Add Filter') }}</a>
    <div class="dropdown-menu field-filters">
        {% for k in filter_groups %}
            <a href="javascript:void(0)" class="dropdown-item filter" onclick="return false;">{{ k }}</a>
        {% endfor %}
    </div>
{% endmacro %}

{% macro export_options(btn_class='dropdown-toggle') %}
    {% if admin_view.export_types|length > 1 %}
        <li class="dropdown">
            <a class="nav-link {{ btn_class }}" data-toggle="dropdown" href="javascript:void(0)" role="button"
               aria-haspopup="true" aria-expanded="false">{{ _gettext('Export') }}</a>
            <div class="dropdown-menu">
                {% for export_type in admin_view.export_types %}
                    <a class="dropdown-item"
                       href="{{ get_url('.export', export_type=export_type, **request.args) }}"
                       title="{{ _gettext('Export') }}">{{ _gettext('Export') + ' ' + export_type|upper }}</a>
                {% endfor %}
            </div>
        </li>
    {% else %}
        <li>
            <a class="nav-link" href="{{ get_url('.export', export_type=admin_view.export_types[0], **request.args) }}"
               title="{{ _gettext('Export') }}">{{ _gettext('Export') }}</a>
        </li>
    {% endif %}
{% endmacro %}

{% macro filter_form() %}
    <form id="filter_form" method="GET" action="{{ return_url }}">
        {% for arg_name, arg_value in extra_args.items() %}
            <input type="hidden" name="{{ arg_name }}" value="{{ arg_value }}">
        {% endfor %}
        {% if sort_column is not none %}
            <input type="hidden" name="sort" value="{{ sort_column }}">
        {% endif %}
        {% if sort_desc %}
            <input type="hidden" name="desc" value="1">
        {% endif %}
        {% if search %}
            <input type="hidden" name="search" value="{{ search }}">
        {% endif %}
        {% if page_size != default_page_size %}
            <input type="hidden" name="page_size" value="{{ page_size }}">
        {% endif %}
        <div class="pull-right">
            <button type="submit" class="btn btn-primary d-none">{{ _gettext('Apply') }}</button>
            {% if active_filters %}
                <a href="{{ clear_search_url }}" class="btn btn-secondary">{{ _gettext('Reset Filters') }}</a>
            {% endif %}
        </div>

        <table class="filters"></table>
    </form>
    <div class="clearfix"></div>
{% endmacro %}

{% macro search_form(input_class="col-auto") %}
    <form method="GET" action="{{ return_url }}" class="form-inline my-2 my-lg-0" role="search">
        {% for flt_name, flt_value in filter_args.items() %}
            <input type="hidden" name="{{ flt_name }}" value="{{ flt_value }}">
        {% endfor %}
        {% if page_size != default_page_size %}
            <input type="hidden" name="page_size" value="{{ page_size }}">
        {% endif %}
        {% for arg_name, arg_value in extra_args.items() %}
        <input type="hidden" name="{{ arg_name }}" value="{{ arg_value }}">
        {% endfor %}
        {% if sort_column is not none %}
            <input type="hidden" name="sort" value="{{ sort_column }}">
        {% endif %}
        {% if sort_desc %}
            <input type="hidden" name="desc" value="1">
        {% endif %}
        {% if search %}
            <div class="form-inline input-group">
              <input  class="form-control {{ input_class }}" size="30" type="text" name="search" value="{{ search }}"
                       placeholder="{{ _gettext('%(placeholder)s', placeholder=search_placeholder) }}">
                <div class="input-group-append">
                  <span class="input-group-text">
                    <a href="{{ clear_search_url }}" class="align-middle">
                      <span class="fa fa-times glyphicon glyphicon-remove"></span>
                    </a>
                  </span>
                </div>
                <button class="btn btn-secondary my-2 my-sm-0 ml-2" type="submit">{{ _gettext('Search') }}</button>
            </div>
        {% else %}
            <div class="form-inline">
              <input class="form-control {{ input_class }}" size="30" type="text" name="search" value=""
                       placeholder="{{ _gettext('%(placeholder)s', placeholder=search_placeholder) }}">
                <button class="btn btn-secondary my-2 my-sm-0 ml-2" type="submit">{{ _gettext('Search') }}</button>
            </div>
        {% endif %}
    </form>
{% endmacro %}

{% macro page_size_form(generator, page_size_options, btn_class='nav-link dropdown-toggle') %}
    <a class="{{ btn_class }}" data-toggle="dropdown" href="javascript:void(0)">
        {{ page_size }} {{ _gettext('items') }}
    </a>
    <div class="dropdown-menu">
      {% for option in page_size_options %}
      <a class="dropdown-item{% if page_size == option %} active{% endif %}" href="{{ generator(option) }}">{{ _ngettext('{} item'.format(option), '{} items'.format(option), option) }}</a>
      {% endfor %}
    </div>
{% endmacro %}
