class ActiveAdmin::Views::PaginatedCollection
It will also generate pagination links.
* “Displaying Posts 1 - 30 of 31 in total”
* “Displaying all 10 Posts”
* “No Posts found”
posts in one of the following formats:
This will create a div with a sentence describing the number of
end
end
h2 “Inside the
div do
paginated_collection collection, :entry_name => ”Post“ do
Example:
Wraps the content with pagination and available formats.
def add_child(*args, &block)
def add_child(*args, &block) if @built @contents.add_child(*args, &block) else super end end
def build(collection, options = {})
-
options(Hash) -- These options will be passed on to the page_entries_info -
collection(Array) -- A "paginated" collection from kaminari
def build(collection, options = {}) @collection = collection div(page_entries_info(options).html_safe, :class => "pagination_information") @contents = div(:class => "paginated_collection_contents") build_pagination_with_formats @built = true end
def build_download_format_links(formats = [:csv, :xml, :json])
def build_download_format_links(formats = [:csv, :xml, :json]) links = formats.collect do |format| link_to format.to_s.upcase, { :format => format}.merge(request.query_parameters.except(:commit, :format)) end text_node [I18n.t('active_admin.download'), links].flatten.join(" ").html_safe end
def build_pagination
def build_pagination text_node paginate(collection) end
def build_pagination_with_formats
def build_pagination_with_formats div :id => "index_footer" do build_download_format_links build_pagination end end
def page_entries_info(options = {})
def page_entries_info(options = {}) entry_name = options[:entry_name] || (collection.empty?? 'entry' : collection.first.class.name.underscore.sub('_', ' ')) if collection.num_pages < 2 case collection.size when 0; I18n.t('active_admin.pagination.empty', :model => entry_name.pluralize) when 1; I18n.t('active_admin.pagination.one', :model => entry_name) else; I18n.t('active_admin.pagination.one_page', :model => entry_name.pluralize, :n => collection.size) end else offset = collection.current_page * active_admin_application.default_per_page total = collection.total_count I18n.t('active_admin.pagination.multiple', :model => entry_name.pluralize, :from => (offset - active_admin_application.default_per_page + 1), :to => offset > total ? total : offset, :total => total) end end