11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
# File 'lib/pageable/action_view/base.rb', line 11
def (relation, options = {})
navigation = options[:navigation] || Rails.application.config..default_navigation
if relation.total_pages >= navigation
middle = (navigation / 2).ceil
if relation.current_page > relation.total_pages - middle
starts_at = relation.total_pages - navigation + 1
ends_at = relation.total_pages
elsif relation.current_page <= middle
starts_at = 1
ends_at = navigation
else
starts_at = relation.current_page - middle
ends_at = relation.current_page + middle
end
else
starts_at = 1
ends_at = relation.total_pages
end
render partial: 'pageable/pager', locals: {
relation: relation,
options: options,
pages: Range.new(starts_at, ends_at),
less_pages: starts_at > 1,
more_pages: ends_at < relation.total_pages
}
end
|