module RailsAdmin::Config::Actions
Public Class Methods
add_action(key, parent_class, parent, &block)
click to toggle source
# File lib/rails_admin/config/actions.rb, line 50 def add_action(key, parent_class, parent, &block) a = "RailsAdmin::Config::Actions::#{parent_class.to_s.camelize}".constantize.new a.instance_eval(%( #{parent} true def key :#{key} end ), __FILE__, __LINE__ - 5) add_action_custom_key(a, &block) end
all(scope = nil, bindings = {})
click to toggle source
# File lib/rails_admin/config/actions.rb, line 7 def all(scope = nil, bindings = {}) if scope.is_a?(Hash) bindings = scope scope = :all end scope ||= :all init_actions! actions = case scope when :all @@actions when :root @@actions.select(&:root?) when :collection @@actions.select(&:collection?) when :bulkable @@actions.select(&:bulkable?) when :member @@actions.select(&:member?) end actions = actions.collect { |action| action.with(bindings) } bindings[:controller] ? actions.select(&:visible?) : actions end
collection(key, parent_class = :base, &block)
click to toggle source
# File lib/rails_admin/config/actions.rb, line 38 def collection(key, parent_class = :base, &block) add_action key, parent_class, :collection, &block end
find(custom_key, bindings = {})
click to toggle source
# File lib/rails_admin/config/actions.rb, line 32 def find(custom_key, bindings = {}) init_actions! action = @@actions.detect { |a| a.custom_key == custom_key }.try(:with, bindings) bindings[:controller] ? (action.try(:visible?) && action || nil) : action end
member(key, parent_class = :base, &block)
click to toggle source
# File lib/rails_admin/config/actions.rb, line 42 def member(key, parent_class = :base, &block) add_action key, parent_class, :member, &block end
register(name, klass = nil)
click to toggle source
# File lib/rails_admin/config/actions.rb, line 65 def register(name, klass = nil) if klass.nil? && name.is_a?(Class) klass = name name = klass.to_s.demodulize.underscore.to_sym end instance_eval %{ def #{name}(&block) action = #{klass}.new add_action_custom_key(action, &block) end }, __FILE__, __LINE__ - 5 end
reset()
click to toggle source
# File lib/rails_admin/config/actions.rb, line 61 def reset @@actions = nil end
root(key, parent_class = :base, &block)
click to toggle source
# File lib/rails_admin/config/actions.rb, line 46 def root(key, parent_class = :base, &block) add_action key, parent_class, :root, &block end
Private Class Methods
add_action_custom_key(action, &block)
click to toggle source
# File lib/rails_admin/config/actions.rb, line 97 def add_action_custom_key(action, &block) action.instance_eval(&block) if block @@actions ||= [] if action.custom_key.in?(@@actions.collect(&:custom_key)) raise "Action #{action.custom_key} already exists. Please change its custom key." else @@actions << action end end
init_actions!()
click to toggle source
# File lib/rails_admin/config/actions.rb, line 81 def init_actions! @@actions ||= [ Dashboard.new, Index.new, Show.new, New.new, Edit.new, Export.new, Delete.new, BulkDelete.new, HistoryShow.new, HistoryIndex.new, ShowInApp.new, ] end