lib/admino/action_view_extension.rb in admino-0.0.13 vs lib/admino/action_view_extension.rb in admino-0.0.14
- old
+ new
@@ -3,20 +3,25 @@
require 'admino/query/base_presenter'
module Admino
module ActionViewExtension
module Internals
- def self.present_query(query, context, options)
- presenter_klass = options.fetch(:presenter, Admino::Query::BasePresenter)
+ def self.present_query(query, context, options, key = :presenter)
+ presenter_klass = options.fetch(key, Admino::Query::BasePresenter)
presenter_klass.new(query, context)
end
end
def table_for(collection, options = {}, &block)
options.symbolize_keys!
- options.assert_valid_keys(:presenter, :class, :html)
+ options.assert_valid_keys(:presenter, :class, :query, :html)
presenter_klass = options.fetch(:presenter, Admino::Table::Presenter)
- presenter = presenter_klass.new(collection, options[:class], self)
+ query = if options[:query]
+ Internals.present_query(options[:query], self, options, :query_presenter)
+ else
+ nil
+ end
+ presenter = presenter_klass.new(collection, options[:class], query, self)
html_options = options.fetch(:html, {})
presenter.to_html(html_options, &block)
end
def filters_for(query, options = {}, &block)