Newer
Older
dmpopidor / app / views / layouts / _paginable.html.erb
<% 
  # Custom layout to be included on any view that needs pagination
  # locals: { controller, action, paginable, scope } 
%>
<% 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: { controller: controller, action: action }) 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><%= paginable_search_link(_('View all search results'), 'ALL') %></li>
                <% else %>
                  <%= paginable_search_link(_('View less search results'), 1) %>
                <% end %>
                  <li><%= link_to(_('Clear search results'), paginable_base_url(1), { 'data-remote': true, class: 'clear' }) %></li>
                </ul>
            <% else %>
              <% if paginable %>
                <%= link_to(_('View all'), paginable_base_url('ALL'), { 'data-remote': true }) %>
              <% else %>
                <%= link_to(_('View less'), paginable_base_url(1), { 'data-remote': true }) %>
              <% end %>
            <% end %>
          <% else %>
            <% if searchable? %>
              <%= link_to(_('Clear search results'), paginable_base_url(1), { 'data-remote': true, class: 'clear' }) %>
            <% end %>
          <% end %>
        </div>
        <div class="pull-right">
          <% if paginable %>
              <%= paginate(scope, params: { controller: controller, action: action }, remote: true) %>
          <% end %>
        </div>
        <div class="clearfix"></div>
      </div>
    </div>
  </div>
</div>