Sha256: 0426582d9b3135aefe53f862d400c2e5edac87f93a1fce60c12a13198b3e2a71
Contents?: true
Size: 1.62 KB
Versions: 1
Compression:
Stored size: 1.62 KB
Contents
module Kadmin class FinderDecorator # @return [Kadmin::Finder] underlying finder model attr_reader :finder delegate :filters, :scope, :results, to: :finder def initialize(finder) @finder = finder end # @return [Boolean] true if no results, false otherwise def empty? return finder.results.count.zero? end # @return [String] how many resources are being displayed (along with indices) def currently_showing resource = resource_name.downcase displayed = empty? ? 0 : pager.displayed_items currently_showing_phrase = "#{displayed} #{resource}" currently_showing_phrase = "#{currently_showing_phrase} (#{pager.page_start} - #{pager.page_end})" if finder.results.count > 1 return currently_showing_phrase end # @return [String] human readable, singular/plural form of the finder's model def resource_name return @finder.scope.model_name.human(count: pager.displayed_items) end # @return [String] a description of the current applied filters def applied_filters applied_filters = '' filters = @finder.filters.reduce([]) do |acc, (name, filter)| next(acc) if filter.value.blank? acc << %(<strong>#{filter.value}</strong> on <em>#{name}</em>) end applied_filters = "(filtering: #{filters.join('; ')})" unless filters.empty? return applied_filters.html_safe end # @return [Kadmin::PagerDecorator] decorated pager of the underlying finder def pager return @pager ||= Kadmin::PagerDecorator.new(@finder.pager) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
kadmin-0.3.2 | app/decorators/kadmin/finder_decorator.rb |