module ApplicationHelper

def pagination_for(list, options={})

and a 'show all' depagination link is added if relevant.
options are passed through to will_paginate
returns the usual set of pagination links.
def pagination_for(list, options={})
  if list.respond_to? :total_pages
    options = {
      :max_per_page => @trusty_config['pagination.max_per_page'] || 500,
      :depaginate => true
    }.merge(options.symbolize_keys)
    depaginate = options.delete(:depaginate)                                     # supply :depaginate => false to omit the 'show all' link
    depagination_limit = options.delete(:max_per_page)                           # supply :max_per_page => false to include the 'show all' link no matter how large the collection
    html = will_paginate(list, will_paginate_options.merge(options))
    if depaginate && list.total_pages > 1 && (!depagination_limit.blank? || list.total_entries <= depagination_limit.to_i)
      html << content_tag(:div, link_to(t('show_all'), :pp => 'all'), :class => 'depaginate')
    elsif depaginate && list.total_entries > depagination_limit.to_i
      html = content_tag(:div, link_to("paginate", :p => 1), :class => 'pagination')
    end
    html
  end
end