% content_for :css do %>
.index-paging {
text-align: center;
padding-left: 1em;
padding-right: 1em;
background-color: whitesmoke;
}
<% end %>
<% if results.result_offset != nil and results.result_limit != nil and results.items_available != nil %>
<% if results.result_offset > 0 %>
<% if results.result_offset > results.result_limit %>
<% prev_offset = results.result_offset - results.result_limit %>
<% else %>
<% prev_offset = 0 %>
<% end %>
<% else %>
<% prev_offset = nil %>
<% end %>
<% this_offset = results.result_offset %>
<% this_page = results.result_offset / results.result_limit %>
<% if (results.result_offset + results.result_limit) < results.items_available %>
<% next_offset = results.result_offset + results.result_limit %>
<% else %>
<% next_offset = nil %>
<% end %>
<% if results.result_offset > 0 %>
<%= link_to raw(""), {:id => object, :offset => 0, :limit => results.result_limit} %>
<% else %>
<% end %>
<% if prev_offset %>
<%= link_to raw(""), {:id => object, :offset => prev_offset, :limit => results.result_limit} %>
<% else %>
<% end %>
<% n = this_page - 10 %>
<% if n >= 0 %>
<% last = this_page + 10 %>
…
<% else %>
<% n = 0 %>
<% last = 20 %>
<% end %>
<% i = n * results.result_limit %>
<% while i < results.items_available and n < last %>
<% if n != this_page %>
<%= link_to "#{n+1}", {:id => @object, :offset => i, :limit => results.result_limit} %>
<% else %>
<%= n+1 %>
<% end %>
<% i += results.result_limit %>
<% n += 1 %>
<% end %>
<% if i < results.items_available %>
…
<% end %>
<% if next_offset %>
<%= link_to raw(""), {:id => @object, :offset => next_offset, :limit => results.result_limit} %>
<% else %>
<% end %>
<% if (results.items_available - results.result_offset) >= results.result_limit %>
<%= link_to raw(""), {:id => @object, :offset => results.items_available - (results.items_available % results.result_limit),
:limit => results.result_limit} %>
<% else %>
<% end %>
<% end %>