Module: RailsAdmin::Config::Actions
- Defined in:
- lib/rails_admin/config/actions.rb,
lib/rails_admin/config/actions/new.rb,
lib/rails_admin/config/actions/base.rb,
lib/rails_admin/config/actions/edit.rb,
lib/rails_admin/config/actions/show.rb,
lib/rails_admin/config/actions/index.rb,
lib/rails_admin/config/actions/delete.rb,
lib/rails_admin/config/actions/export.rb,
lib/rails_admin/config/actions/dashboard.rb,
lib/rails_admin/config/actions/bulk_delete.rb,
lib/rails_admin/config/actions/show_in_app.rb,
lib/rails_admin/config/actions/history_show.rb,
lib/rails_admin/config/actions/history_index.rb
Defined Under Namespace
Classes: Base, BulkDelete, Dashboard, Delete, Edit, Export, HistoryIndex, HistoryShow, Index, New, Show, ShowInApp
Class Method Summary
collapse
-
.add_action(key, parent_class, parent, &block) ⇒ Object
-
.all(scope = nil, bindings = {}) ⇒ Object
-
.collection(key, parent_class = :base, &block) ⇒ Object
-
.find(custom_key, bindings = {}) ⇒ Object
-
.member(key, parent_class = :base, &block) ⇒ Object
-
.register(name, klass = nil) ⇒ Object
-
.reset ⇒ Object
-
.root(key, parent_class = :base, &block) ⇒ Object
Class Method Details
.add_action(key, parent_class, parent, &block) ⇒ Object
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
# File 'lib/rails_admin/config/actions.rb', line 47
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
})
a.instance_eval(&block) if block
unless a.custom_key.in?((@@actions || []).map(&:custom_key))
(@@actions ||= []) << a
else
raise "Action #{a.custom_key} already exist. Please change its custom key"
end
end
|
.all(scope = nil, bindings = {}) ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/rails_admin/config/actions.rb', line 6
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.map{ |action| action.with(bindings) }
bindings[:controller] ? actions.select(&:visible?) : actions
end
|
.collection(key, parent_class = :base, &block) ⇒ Object
35
36
37
|
# File 'lib/rails_admin/config/actions.rb', line 35
def collection key, parent_class = :base, &block
add_action key, parent_class, :collection, &block
end
|
.find(custom_key, bindings = {}) ⇒ Object
29
30
31
32
33
|
# File 'lib/rails_admin/config/actions.rb', line 29
def find custom_key, bindings = {}
init_actions!
action = @@actions.find{ |a| a.custom_key == custom_key }.try(:with, bindings)
bindings[:controller] ? (action.try(:visible?) && action || nil) : action
end
|
.member(key, parent_class = :base, &block) ⇒ Object
39
40
41
|
# File 'lib/rails_admin/config/actions.rb', line 39
def member key, parent_class = :base, &block
add_action key, parent_class, :member, &block
end
|
.register(name, klass = nil) ⇒ Object
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
# File 'lib/rails_admin/config/actions.rb', line 67
def register(name, klass = nil)
if klass == nil && name.kind_of?(Class)
klass = name
name = klass.to_s.demodulize.underscore.to_sym
end
instance_eval %{
def #{name}(&block)
action = #{klass}.new
action.instance_eval &block if block
unless action.custom_key.in?((@@actions || []).map(&:custom_key))
(@@actions ||= []) << action
else
raise "Action \#{action.custom_key} already exist. Please change its custom key"
end
end
}
end
|
.reset ⇒ Object
63
64
65
|
# File 'lib/rails_admin/config/actions.rb', line 63
def reset
@@actions = nil
end
|
.root(key, parent_class = :base, &block) ⇒ Object
43
44
45
|
# File 'lib/rails_admin/config/actions.rb', line 43
def root key, parent_class = :base, &block
add_action key, parent_class, :root, &block
end
|