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)