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