lib/active_admin/views/components/paginated_collection.rb in activeadmin-0.6.0 vs lib/active_admin/views/components/paginated_collection.rb in activeadmin-0.6.1
- old
+ new
@@ -34,18 +34,19 @@
# entry_name => The name to display for this resource collection
# param_name => Parameter name for page number in the links (:page by default)
# download_links => Download links override (false or [:csv, :pdf])
#
def build(collection, options = {})
- @collection = collection
+ @collection = collection
@param_name = options.delete(:param_name)
@download_links = options.delete(:download_links)
+ @display_total = options.delete(:pagination_total) { true }
unless collection.respond_to?(:num_pages)
raise(StandardError, "Collection is not a paginated scope. Set collection.page(params[:page]).per(10) before calling :paginated_collection.")
end
-
+
@contents = div(:class => "paginated_collection_contents")
build_pagination_with_formats(options)
@built = true
end
@@ -81,33 +82,40 @@
text_node paginate(collection, options.symbolize_keys)
end
include ::ActiveAdmin::Helpers::Collection
include ::ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
-
+
# modified from will_paginate
def page_entries_info(options = {})
if options[:entry_name]
- entry_name = options[:entry_name]
+ entry_name = options[:entry_name]
entries_name = options[:entries_name] || entry_name.pluralize
elsif collection_is_empty?
- entry_name = I18n.translate("active_admin.pagination.entry", :count => 1, :default => 'entry')
- entries_name = I18n.translate("active_admin.pagination.entry", :count => 2, :default => 'entries')
+ entry_name = I18n.t "active_admin.pagination.entry", :count => 1, :default => 'entry'
+ entries_name = I18n.t "active_admin.pagination.entry", :count => 2, :default => 'entries'
else
- entry_name = I18n.translate("activerecord.models.#{collection.first.class.model_name.i18n_key}", :count => 1, :default => collection.first.class.name.underscore.sub('_', ' '))
- entries_name = I18n.translate("activerecord.models.#{collection.first.class.model_name.i18n_key}", :count => collection.size, :default => entry_name.pluralize)
+ key = "activerecord.models." + collection.first.class.model_name.i18n_key.to_s
+ entry_name = I18n.translate key, :count => 1, :default => collection.first.class.name.underscore.sub('_', ' ')
+ entries_name = I18n.translate key, :count => collection.size, :default => entry_name.pluralize
end
if collection.num_pages < 2
case collection_size
- when 0; I18n.t('active_admin.pagination.empty', :model => entries_name)
- when 1; I18n.t('active_admin.pagination.one', :model => entry_name)
+ when 0; I18n.t('active_admin.pagination.empty', :model => entries_name)
+ when 1; I18n.t('active_admin.pagination.one', :model => entry_name)
else; I18n.t('active_admin.pagination.one_page', :model => entries_name, :n => collection.total_count)
end
else
offset = (collection.current_page - 1) * collection.limit_value
- total = collection.total_count
- I18n.t('active_admin.pagination.multiple', :model => entries_name, :from => offset + 1, :to => offset + collection_size, :total => total)
+ if @display_total
+ total = collection.total_count
+ I18n.t 'active_admin.pagination.multiple', :model => entries_name, :total => total,
+ :from => offset + 1, :to => offset + collection_size
+ else
+ I18n.t 'active_admin.pagination.multiple_without_total', :model => entries_name,
+ :from => offset + 1, :to => offset + collection_size
+ end
end
end
end
end