Newer
Older
dmpopidor / app / views / layouts / _paginable.html.erb
<%
  # Custom layout to be included on any view that needs pagination
  # locals: { scope, search_term }
%>
<% total = paginable? ? scope.total_count : scope.length %>
<div class="paginable">
  <div class="paginable-search">
    <div class="row">
      <div class="col-md-12">
        <%= render(partial: '/shared/search', locals: { search_term: search_term }) if searchable? || total > Kaminari.config.default_per_page %>
      </div>
    </div>
  </div>
  <div class="paginable-results">
    <div class="row">
      <div class="col-md-12">
        <% if scope.length > 0 %>
          <%= yield %>
        <% else %>
          <p class="bg-info">
            <%= _('There are no records associated') %>
          </p>
        <% end %>
      </div>
    </div>
    <div class="row">
      <div class="col-md-12">
        <div class="pull-left">
          <% if total > Kaminari.config.default_per_page %>
            <% if searchable? %>
                <ul class="list-inline">
                <% if paginable? %>
                  <li><%= link_to(_('View all search results'), paginable_base_url('ALL'), { 'data-remote': true, class: 'paginable-action' }) %></li>
                <% else %>
                  <%= link_to(_('View less search results'), paginable_base_url(1), { 'data-remote': true, class: 'paginable-action' }) %>
                <% end %>
                  <li><%= link_to(_('Clear search results'), paginable_base_url(1), { 'data-remote': true, class: 'paginable-action' }) %></li>
                </ul>
            <% else %>
              <% if paginable? %>
                <%= link_to(_('View all'), paginable_base_url('ALL'), { 'data-remote': true, class: 'paginable-action' }) if @paginable_options[:view_all] %>
              <% else %>
                <%= link_to(_('View less'), paginable_base_url(1), { 'data-remote': true, class: 'paginable-action' }) %>
              <% end %>
            <% end %>
          <% else %>
            <% if searchable? %>
              <%= link_to(_('Clear search results'), paginable_base_url(1), { 'data-remote': true, class: 'paginable-action' }) %>
            <% end %>
          <% end %>
        </div>
        <div class="pull-right">
          <% if paginable? %>
              <%= paginate(scope, params: @paginable_params, remote: true) %>
          <% end %>
        </div>
        <div class="clearfix"></div>
      </div>
    </div>
  </div>
</div>