module ActiveAdmin::Resource::PagePresenters

Public Instance Methods

default_index_class() click to toggle source

for setting default css class in admin ui

# File lib/active_admin/resource/page_presenters.rb, line 6
def default_index_class
  @default_index
end
get_page_presenter(action, type = nil) click to toggle source

Returns a stored page config

@param [Symbol, String] action The action to get the config for @param [String] type The string specified in the presenters index_name method @return [PagePresenter, nil]

# File lib/active_admin/resource/page_presenters.rb, line 36
def get_page_presenter(action, type = nil)

  if action.to_s == "index" && type && page_presenters[:index].kind_of?(Hash)
    page_presenters[:index][type.to_sym]
  elsif action.to_s == "index" && page_presenters[:index].kind_of?(Hash)
    page_presenters[:index].default
  else
    page_presenters[action.to_sym]
  end

end
page_presenters() click to toggle source

A hash of page configurations for the controller indexed by action name

# File lib/active_admin/resource/page_presenters.rb, line 11
def page_presenters
  @page_presenters ||= {}
end
set_page_presenter(action, page_presenter) click to toggle source

Sets a page config for a given action

@param [String, Symbol] action The action to store this configuration for @param [PagePresenter] page_presenter The instance of PagePresenter to store

# File lib/active_admin/resource/page_presenters.rb, line 19
def set_page_presenter(action, page_presenter)

  if action.to_s == "index" && page_presenter[:as]
    index_class = find_index_class(page_presenter[:as])
    page_presenter_key = index_class.index_name.to_sym
    set_index_presenter page_presenter_key, page_presenter
  else
    page_presenters[action.to_sym] = page_presenter
  end

end

Protected Instance Methods

find_index_class(symbol_or_class) click to toggle source

Returns the actual class for renderering the main content on the index page. To set this, use the :as option in the page_presenter block.

@param [Symbol, Class] symbol_or_class The component symbol or class @return [Class]

# File lib/active_admin/resource/page_presenters.rb, line 71
def find_index_class(symbol_or_class)
  case symbol_or_class
  when Symbol
    ::ActiveAdmin::Views.const_get("IndexAs" + symbol_or_class.to_s.camelcase)
  when Class
    symbol_or_class
  end
end
set_index_presenter(index_as, page_presenter) click to toggle source

Stores a config for all index actions supplied

@param [Symbol] index_as The index type to store in the configuration @param [PagePresenter] page_presenter The intance of PagePresenter to store

# File lib/active_admin/resource/page_presenters.rb, line 54
def set_index_presenter(index_as, page_presenter)
  page_presenters[:index] ||= {}

  #set first index as default value or the index with default param set to to true
  if page_presenters[:index].empty? || page_presenter[:default] == true
    page_presenters[:index].default = page_presenter
    @default_index = find_index_class(page_presenter[:as])
  end

  page_presenters[:index][index_as] = page_presenter
end