Module: RailsAdmin::ApplicationHelper
Instance Method Summary
collapse
-
#action(key, abstract_model = nil, object = nil) ⇒ Object
-
#actions(scope = :all, abstract_model = nil, object = nil) ⇒ Object
-
#authorized?(*args) ⇒ Boolean
-
#breadcrumb(action = @action, acc = []) ⇒ Object
-
#bulk_menu(abstract_model = @abstract_model) ⇒ Object
-
#current_action?(action) ⇒ Boolean
-
#edit_user_link ⇒ Object
-
#menu_for(parent, abstract_model = nil, object = nil) ⇒ Object
parent => :root, :collection, :member.
-
#wording_for(label, action = @action, abstract_model = @abstract_model, object = @object) ⇒ Object
#abbr_day_names, #abbr_month_names, #date_format, #day_names, #month_names
Instance Method Details
#action(key, abstract_model = nil, object = nil) ⇒ Object
16
17
18
19
|
# File 'app/helpers/rails_admin/application_helper.rb', line 16
def action(key, abstract_model = nil, object = nil)
action = RailsAdmin::Config::Actions.find(key, { :controller => self.controller, :abstract_model => abstract_model, :object => object })
action && authorized?(action.authorization_key, (action.collection? || action.member?) && abstract_model || nil, action.member? && object || nil) ? action : nil
end
|
#actions(scope = :all, abstract_model = nil, object = nil) ⇒ Object
21
22
23
24
25
|
# File 'app/helpers/rails_admin/application_helper.rb', line 21
def actions(scope = :all, abstract_model = nil, object = nil)
RailsAdmin::Config::Actions.all(scope, { :controller => self.controller, :abstract_model => abstract_model, :object => object }).select do |action|
authorized?(action.authorization_key, (action.collection? || action.member?) && abstract_model || nil, action.member? && object || nil)
end
end
|
#authorized?(*args) ⇒ Boolean
8
9
10
|
# File 'app/helpers/rails_admin/application_helper.rb', line 8
def authorized?(*args)
@authorization_adapter.nil? || @authorization_adapter.authorized?(*args)
end
|
#breadcrumb(action = @action, acc = []) ⇒ Object
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
# File 'app/helpers/rails_admin/application_helper.rb', line 48
def breadcrumb action = @action, acc = []
acc << content_tag(:li, :class => "#{"active" if current_action?(action)}") do
if action.http_methods.include?(:get)
link_to wording_for(:breadcrumb, action), { :action => action.action_name, :controller => 'rails_admin/main' }
else
content_tag(:span, wording_for(:breadcrumb, action))
end
end
unless action.breadcrumb_parent && (parent = action(action.breadcrumb_parent, @abstract_model, @object)) content_tag(:ul, :class => "breadcrumb") do
acc.reverse.join('<span class="divider">/</span>').html_safe
end
else
breadcrumb parent, acc end
end
|
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
# File 'app/helpers/rails_admin/application_helper.rb', line 81
def abstract_model = @abstract_model
actions = actions(:bulkable, abstract_model)
return '' if actions.empty?
content_tag :li, { :class => 'dropdown', :style => 'float:right', :'data-dropdown' => "dropdown" } do
content_tag(:a, { :class => 'dropdown-toggle', :href => '#' }) { t('admin.misc.bulk_menu_title') } +
content_tag(:ul, :class => 'dropdown-menu') do
actions.map do |action|
content_tag :li do
link_to_function wording_for(:bulk_link, action), "jQuery('#bulk_action').val('#{action.action_name}'); jQuery('#bulk_form').submit()"
end
end.join.html_safe
end
end
end
|
#current_action?(action) ⇒ Boolean
12
13
14
|
# File 'app/helpers/rails_admin/application_helper.rb', line 12
def current_action?(action)
@action.custom_key == action.custom_key
end
|
#edit_user_link ⇒ Object
27
28
29
30
31
32
|
# File 'app/helpers/rails_admin/application_helper.rb', line 27
def edit_user_link
return nil unless authorized?(:edit, _current_user.class, _current_user) && _current_user.respond_to?(:email)
return nil unless abstract_model = RailsAdmin.config(_current_user.class).abstract_model
return nil unless edit_action = RailsAdmin::Config::Actions.find(:edit, {:controller => self.controller, :abstract_model => abstract_model, :object => _current_user })
link_to _current_user.email, url_for(:action => edit_action.action_name, :model_name => abstract_model.to_param, :id => _current_user.id, :controller => 'rails_admin/main')
end
|
parent => :root, :collection, :member
68
69
70
71
72
73
74
75
76
77
78
79
|
# File 'app/helpers/rails_admin/application_helper.rb', line 68
def (parent, abstract_model = nil, object = nil) actions = actions(parent, abstract_model, object).select{ |action| action.http_methods.include?(:get) }
actions.map do |action|
%{
<li class="#{action.key}_#{parent}_link #{'active' if current_action?(action)}">
<a href="#{url_for({ :action => action.action_name, :controller => 'rails_admin/main', :model_name => abstract_model.try(:to_param), :id => object.try(:id) })}">
#{wording_for(:menu, action)}
</a>
</li>
}
end.join.html_safe
end
|
#wording_for(label, action = @action, abstract_model = @abstract_model, object = @object) ⇒ Object
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'app/helpers/rails_admin/application_helper.rb', line 35
def wording_for(label, action = @action, abstract_model = @abstract_model, object = @object)
model_config = abstract_model && RailsAdmin.config(abstract_model)
object = abstract_model && object.is_a?(abstract_model.model) ? object : nil
action = RailsAdmin::Config::Actions.find(action.to_sym) if (action.is_a?(Symbol) || action.is_a?(String))
I18n.t("admin.actions.#{action.i18n_key}.#{label}",
:model_label => model_config.try(:label),
:model_label_plural => model_config.try(:label_plural),
:object_label => model_config && object.try(model_config.object_label_method)
)
end
|