activeadmin 0.5.1 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.travis.yml +8 -5
- data/CHANGELOG.md +151 -0
- data/Gemfile +16 -16
- data/LICENSE +1 -1
- data/activeadmin.gemspec +1 -0
- data/app/assets/images/active_admin/index_list_icons/block_icon.svg +10 -0
- data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +4 -0
- data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +13 -0
- data/app/assets/images/active_admin/index_list_icons/table_icon.svg +3 -0
- data/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee +17 -44
- data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +2 -4
- data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +0 -3
- data/app/assets/javascripts/active_admin/components/jquery.aa.table-checkbox-toggler.js.coffee +10 -12
- data/app/assets/javascripts/active_admin/pages/application.js.coffee +13 -10
- data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +3 -3
- data/app/assets/stylesheets/active_admin/_base.css.scss +1 -0
- data/app/assets/stylesheets/active_admin/_header.css.scss +5 -2
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +2 -2
- data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
- data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +2 -2
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +2 -2
- data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +4 -4
- data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +5 -4
- data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +1 -1
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +1 -1
- data/app/assets/stylesheets/active_admin/print.css.scss +2 -2
- data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +1 -1
- data/app/views/active_admin/devise/unlocks/new.html.erb +14 -12
- data/docs/1-general-configuration.md +13 -0
- data/docs/10-custom-pages.md +40 -28
- data/docs/11-decorators.md +6 -4
- data/docs/12-arbre-components.md +1 -1
- data/docs/13-authorization-adapter.md +206 -0
- data/docs/2-resource-customization.md +129 -14
- data/docs/3-index-pages.md +65 -0
- data/docs/3-index-pages/create-an-index.md +29 -0
- data/docs/3-index-pages/index-as-table.md +35 -11
- data/docs/5-forms.md +2 -2
- data/features/authorization.feature +64 -0
- data/features/authorization_cancan.feature +52 -0
- data/features/belongs_to.feature +41 -5
- data/features/index/batch_actions.feature +27 -3
- data/features/index/formats.feature +27 -0
- data/features/index/index_as_table.feature +74 -2
- data/features/index/index_parameters.feature +69 -0
- data/features/index/index_scopes.feature +7 -11
- data/features/index/page_title.feature +18 -0
- data/features/index/switch_index_view.feature +73 -0
- data/features/menu.feature +27 -0
- data/features/registering_pages.feature +21 -0
- data/features/step_definitions/additional_web_steps.rb +4 -0
- data/features/step_definitions/batch_action_steps.rb +16 -6
- data/features/step_definitions/index_scope_steps.rb +3 -3
- data/features/step_definitions/index_views_steps.rb +3 -0
- data/features/step_definitions/menu_steps.rb +4 -0
- data/features/support/env.rb +4 -0
- data/features/support/paths.rb +3 -0
- data/lib/active_admin.rb +4 -0
- data/lib/active_admin/application.rb +43 -76
- data/lib/active_admin/authorization_adapter.rb +128 -0
- data/lib/active_admin/base_controller.rb +18 -1
- data/lib/active_admin/base_controller/authorization.rb +153 -0
- data/lib/active_admin/base_controller/menu.rb +8 -3
- data/lib/active_admin/batch_actions/resource_extension.rb +8 -7
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
- data/lib/active_admin/cancan_adapter.rb +40 -0
- data/lib/active_admin/dashboards.rb +4 -5
- data/lib/active_admin/dashboards/dashboard_controller.rb +1 -1
- data/lib/active_admin/devise.rb +22 -7
- data/lib/active_admin/dsl.rb +18 -5
- data/lib/active_admin/engine.rb +1 -1
- data/lib/active_admin/filters/dsl.rb +1 -1
- data/lib/active_admin/filters/forms.rb +9 -7
- data/lib/active_admin/filters/resource_extension.rb +20 -15
- data/lib/active_admin/form_builder.rb +44 -49
- data/lib/active_admin/helpers/optional_display.rb +4 -8
- data/lib/active_admin/inputs/filter_boolean_input.rb +1 -1
- data/lib/active_admin/inputs/filter_string_input.rb +5 -1
- data/lib/active_admin/locales/bg.yml +1 -1
- data/lib/active_admin/locales/ca.yml +1 -1
- data/lib/active_admin/locales/cs.yml +26 -25
- data/lib/active_admin/locales/da.yml +1 -1
- data/lib/active_admin/locales/de.yml +1 -1
- data/lib/active_admin/locales/en.yml +11 -1
- data/lib/active_admin/locales/es.yml +16 -16
- data/lib/active_admin/locales/fr.yml +1 -1
- data/lib/active_admin/locales/he.yml +1 -1
- data/lib/active_admin/locales/hr.yml +1 -1
- data/lib/active_admin/locales/hu.yml +1 -1
- data/lib/active_admin/locales/it.yml +1 -1
- data/lib/active_admin/locales/ja.yml +4 -1
- data/lib/active_admin/locales/ko.yml +1 -1
- data/lib/active_admin/locales/lt.yml +1 -1
- data/lib/active_admin/locales/lv.yml +12 -1
- data/lib/active_admin/locales/nl.yml +2 -2
- data/lib/active_admin/locales/no-NB.yml +22 -1
- data/lib/active_admin/locales/pl.yml +1 -1
- data/lib/active_admin/locales/pt-BR.yml +1 -1
- data/lib/active_admin/locales/pt-PT.yml +81 -0
- data/lib/active_admin/locales/ro.yml +1 -1
- data/lib/active_admin/locales/ru.yml +1 -1
- data/lib/active_admin/locales/sv-SE.yml +1 -1
- data/lib/active_admin/locales/tr.yml +1 -1
- data/lib/active_admin/locales/vi.yml +1 -1
- data/lib/active_admin/locales/zh-CN.yml +1 -1
- data/lib/active_admin/locales/zh-TW.yml +1 -1
- data/lib/active_admin/menu.rb +76 -38
- data/lib/active_admin/menu_collection.rb +96 -0
- data/lib/active_admin/menu_item.rb +61 -71
- data/lib/active_admin/namespace.rb +67 -5
- data/lib/active_admin/page.rb +6 -0
- data/lib/active_admin/page_controller.rb +13 -3
- data/lib/active_admin/resource.rb +11 -20
- data/lib/active_admin/resource/action_items.rb +3 -3
- data/lib/active_admin/resource/controllers.rb +0 -17
- data/lib/active_admin/resource/menu.rb +52 -24
- data/lib/active_admin/resource/naming.rb +6 -10
- data/lib/active_admin/resource/page_presenters.rb +57 -3
- data/lib/active_admin/resource/routes.rb +46 -0
- data/lib/active_admin/resource_controller.rb +2 -17
- data/lib/active_admin/resource_controller/data_access.rb +299 -0
- data/lib/active_admin/resource_controller/decorators.rb +2 -1
- data/lib/active_admin/resource_dsl.rb +12 -14
- data/lib/active_admin/router.rb +61 -56
- data/lib/active_admin/scope.rb +28 -18
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +0 -1
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +13 -19
- data/lib/active_admin/view_helpers/fields_for.rb +2 -0
- data/lib/active_admin/view_helpers/form_helper.rb +1 -1
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +66 -11
- data/lib/active_admin/views/components/attributes_table.rb +7 -4
- data/lib/active_admin/views/components/index_list.rb +68 -0
- data/lib/active_admin/views/components/paginated_collection.rb +13 -9
- data/lib/active_admin/views/components/scopes.rb +2 -8
- data/lib/active_admin/views/components/table_for.rb +1 -1
- data/lib/active_admin/views/footer.rb +1 -1
- data/lib/active_admin/views/header.rb +3 -2
- data/lib/active_admin/views/index_as_block.rb +4 -0
- data/lib/active_admin/views/index_as_blog.rb +4 -0
- data/lib/active_admin/views/index_as_grid.rb +4 -0
- data/lib/active_admin/views/index_as_table.rb +49 -7
- data/lib/active_admin/views/pages/index.rb +19 -4
- data/lib/active_admin/views/tabbed_navigation.rb +10 -54
- data/lib/generators/active_admin/install/install_generator.rb +5 -1
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +58 -0
- data/spec/integration/{default_namespace.rb → default_namespace_spec.rb} +0 -16
- data/spec/spec_helper.rb +3 -0
- data/spec/support/detect_rails_version.rb +10 -3
- data/spec/support/rails_template.rb +1 -1
- data/spec/support/templates/post_decorator.rb +6 -6
- data/spec/unit/application_spec.rb +5 -5
- data/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
- data/spec/unit/authorization/controller_authorization_spec.rb +47 -0
- data/spec/unit/base_controller_spec.rb +0 -2
- data/spec/unit/batch_actions/resource_spec.rb +1 -1
- data/spec/unit/breadcrumbs_spec.rb +3 -3
- data/spec/unit/cancan_adapter_spec.rb +35 -0
- data/spec/unit/config_shared_examples.rb +9 -30
- data/spec/unit/devise_spec.rb +29 -0
- data/spec/unit/dsl_spec.rb +61 -0
- data/spec/unit/filters/filter_form_builder_spec.rb +58 -4
- data/spec/unit/filters/resource_spec.rb +17 -5
- data/spec/unit/form_builder_spec.rb +15 -0
- data/spec/unit/menu_collection_spec.rb +62 -0
- data/spec/unit/menu_item_spec.rb +51 -37
- data/spec/unit/menu_spec.rb +33 -29
- data/spec/unit/namespace/authorization_spec.rb +31 -0
- data/spec/unit/namespace/register_page_spec.rb +6 -28
- data/spec/unit/namespace/register_resource_spec.rb +11 -34
- data/spec/unit/namespace_spec.rb +63 -2
- data/spec/unit/page_controller_spec.rb +0 -3
- data/spec/unit/reloader_spec.rb +5 -5
- data/spec/unit/resource/menu_spec.rb +1 -13
- data/spec/unit/resource/naming_spec.rb +20 -2
- data/spec/unit/resource/page_presenters_spec.rb +14 -2
- data/spec/unit/resource_controller/{collection_spec.rb → data_access_spec.rb} +31 -13
- data/spec/unit/resource_controller_spec.rb +4 -5
- data/spec/unit/resource_spec.rb +33 -11
- data/spec/unit/routing_spec.rb +43 -0
- data/spec/unit/scope_spec.rb +13 -0
- data/spec/unit/view_factory_spec.rb +0 -1
- data/spec/unit/view_helpers/fields_for_spec.rb +4 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +6 -2
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +97 -0
- data/spec/unit/views/components/attributes_table_spec.rb +11 -0
- data/spec/unit/views/components/index_list_spec.rb +32 -0
- data/spec/unit/views/tabbed_navigation_spec.rb +42 -40
- data/tasks/test.rake +1 -1
- metadata +127 -40
- data/lib/active_admin/menu_builder.rb +0 -65
- data/lib/active_admin/resource_controller/callbacks.rb +0 -59
- data/lib/active_admin/resource_controller/collection.rb +0 -158
- data/lib/active_admin/views/utility_nav.rb +0 -41
- data/spec/unit/base_controller_shared_examples.rb +0 -25
- data/spec/unit/dsl_include_spec.rb +0 -20
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
module ActiveAdmin
|
|
2
|
-
|
|
3
|
-
class MenuBuilder
|
|
4
|
-
|
|
5
|
-
def self.build_for_namespace(namespace)
|
|
6
|
-
new(namespace).menu
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
attr_reader :menu
|
|
10
|
-
|
|
11
|
-
def initialize(namespace)
|
|
12
|
-
@namespace = namespace
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def menu
|
|
16
|
-
@menu ||= build_menu
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
private
|
|
20
|
-
|
|
21
|
-
def namespace
|
|
22
|
-
@namespace
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def build_menu
|
|
26
|
-
menu = Menu.new
|
|
27
|
-
|
|
28
|
-
Dashboards.add_to_menu(namespace, menu)
|
|
29
|
-
|
|
30
|
-
namespace.resources.each do |resource|
|
|
31
|
-
register_with_menu(menu, resource) if resource.include_in_menu?
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
menu
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
# Does all the work of registernig a config with the menu system
|
|
38
|
-
def register_with_menu(menu, resource)
|
|
39
|
-
# The menu we're going to add this resource to
|
|
40
|
-
add_to = menu
|
|
41
|
-
|
|
42
|
-
# Adding as a child
|
|
43
|
-
if resource.parent_menu_item_name
|
|
44
|
-
# Create the parent if it doesn't exist
|
|
45
|
-
unless menu[resource.parent_menu_item_name]
|
|
46
|
-
item = MenuItem.new(:label => resource.parent_menu_item_name, :url => "#", :id => resource.parent_menu_item_name)
|
|
47
|
-
add_to.add(item)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
add_to = menu[resource.parent_menu_item_name]
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
if add_to[resource.menu_item.id]
|
|
54
|
-
existing = add_to[resource.menu_item.id]
|
|
55
|
-
add_to.children.delete(existing)
|
|
56
|
-
add_to.add(resource.menu_item)
|
|
57
|
-
resource.menu_item.add(*existing.children)
|
|
58
|
-
else
|
|
59
|
-
add_to.add resource.menu_item
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
end
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
module ActiveAdmin
|
|
2
|
-
class ResourceController < BaseController
|
|
3
|
-
|
|
4
|
-
module Callbacks
|
|
5
|
-
extend ActiveSupport::Concern
|
|
6
|
-
include ::ActiveAdmin::Callbacks
|
|
7
|
-
|
|
8
|
-
included do
|
|
9
|
-
define_active_admin_callbacks :build, :create, :update, :save, :destroy
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
protected
|
|
13
|
-
|
|
14
|
-
def build_resource
|
|
15
|
-
object = super
|
|
16
|
-
run_build_callbacks object
|
|
17
|
-
object
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
def create_resource(object)
|
|
21
|
-
run_create_callbacks object do
|
|
22
|
-
save_resource(object)
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def save_resource(object)
|
|
27
|
-
run_save_callbacks object do
|
|
28
|
-
object.save
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def update_resource(object, attributes)
|
|
33
|
-
# Inherited resources 1.3.0 calls the method passing an array instead of a parameters hash.
|
|
34
|
-
# The array contains in the first position the parameters which update the object and in the second position
|
|
35
|
-
# possibly contains the role, it's optional, to use in mass assignment. This feature is provided by Rails 3.1
|
|
36
|
-
if attributes.is_a?(Array)
|
|
37
|
-
if object.respond_to?(:assign_attributes)
|
|
38
|
-
object.assign_attributes(*attributes)
|
|
39
|
-
else
|
|
40
|
-
object.attributes = attributes[0]
|
|
41
|
-
end
|
|
42
|
-
else
|
|
43
|
-
object.attributes = attributes
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
run_update_callbacks object do
|
|
47
|
-
save_resource(object)
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def destroy_resource(object)
|
|
52
|
-
run_destroy_callbacks object do
|
|
53
|
-
object.destroy
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
end
|
|
59
|
-
end
|
|
@@ -1,158 +0,0 @@
|
|
|
1
|
-
module ActiveAdmin
|
|
2
|
-
class ResourceController < BaseController
|
|
3
|
-
|
|
4
|
-
# This module deals with the retrieval of collections for resources
|
|
5
|
-
# within the resource controller.
|
|
6
|
-
module Collection
|
|
7
|
-
extend ActiveSupport::Concern
|
|
8
|
-
|
|
9
|
-
module BaseCollection
|
|
10
|
-
protected
|
|
11
|
-
|
|
12
|
-
def collection
|
|
13
|
-
get_collection_ivar || set_collection_ivar(active_admin_collection)
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def active_admin_collection
|
|
17
|
-
scoped_collection
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
# Override this method in your controllers to modify the start point
|
|
22
|
-
# of our searches and index.
|
|
23
|
-
#
|
|
24
|
-
# This method should return an ActiveRecord::Relation object so that
|
|
25
|
-
# the searching and filtering can be applied on top
|
|
26
|
-
#
|
|
27
|
-
# Note, unless you are doing something special, you should use the
|
|
28
|
-
# scope_to method from the Scoping module instead of overriding this
|
|
29
|
-
# method.
|
|
30
|
-
def scoped_collection
|
|
31
|
-
end_of_association_chain
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
module Sorting
|
|
37
|
-
protected
|
|
38
|
-
|
|
39
|
-
def active_admin_collection
|
|
40
|
-
sort_order(super)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
def sort_order(chain)
|
|
44
|
-
params[:order] ||= active_admin_config.sort_order
|
|
45
|
-
if params[:order] && params[:order] =~ /^([\w\_\.]+)_(desc|asc)$/
|
|
46
|
-
column = $1
|
|
47
|
-
order = $2
|
|
48
|
-
table = active_admin_config.resource_table_name
|
|
49
|
-
table_column = (column =~ /\./) ? column :
|
|
50
|
-
"#{table}.#{active_admin_config.resource_quoted_column_name(column)}"
|
|
51
|
-
|
|
52
|
-
chain.reorder("#{table_column} #{order}")
|
|
53
|
-
else
|
|
54
|
-
chain # just return the chain
|
|
55
|
-
end
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
module Search
|
|
61
|
-
protected
|
|
62
|
-
|
|
63
|
-
def active_admin_collection
|
|
64
|
-
search(super)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
def search(chain)
|
|
68
|
-
@search = chain.metasearch(clean_search_params(params[:q]))
|
|
69
|
-
@search.relation
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def clean_search_params(search_params)
|
|
73
|
-
return {} unless search_params.is_a?(Hash)
|
|
74
|
-
search_params = search_params.dup
|
|
75
|
-
search_params.delete_if do |key, value|
|
|
76
|
-
value == ""
|
|
77
|
-
end
|
|
78
|
-
search_params
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
module Scoping
|
|
84
|
-
protected
|
|
85
|
-
|
|
86
|
-
def active_admin_collection
|
|
87
|
-
scope_current_collection(super)
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
def scope_current_collection(chain)
|
|
91
|
-
@collection_before_scope = chain
|
|
92
|
-
|
|
93
|
-
if current_scope
|
|
94
|
-
scope_chain(current_scope, chain)
|
|
95
|
-
else
|
|
96
|
-
chain
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
def collection_before_scope
|
|
101
|
-
@collection_before_scope
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
include ActiveAdmin::ScopeChain
|
|
106
|
-
|
|
107
|
-
def current_scope
|
|
108
|
-
@current_scope ||= if params[:scope]
|
|
109
|
-
active_admin_config.get_scope_by_id(params[:scope]) if params[:scope]
|
|
110
|
-
else
|
|
111
|
-
active_admin_config.default_scope
|
|
112
|
-
end
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
module Pagination
|
|
118
|
-
protected
|
|
119
|
-
|
|
120
|
-
def active_admin_collection
|
|
121
|
-
paginate(super)
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
def paginate(chain)
|
|
125
|
-
page_method_name = Kaminari.config.page_method_name
|
|
126
|
-
page = params[Kaminari.config.param_name]
|
|
127
|
-
|
|
128
|
-
chain.send(page_method_name, page).per(per_page)
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
def per_page
|
|
132
|
-
return max_csv_records if request.format == 'text/csv'
|
|
133
|
-
return max_per_page if active_admin_config.paginate == false
|
|
134
|
-
|
|
135
|
-
@per_page || active_admin_config.per_page
|
|
136
|
-
end
|
|
137
|
-
|
|
138
|
-
def max_csv_records
|
|
139
|
-
10_000
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
def max_per_page
|
|
143
|
-
10_000
|
|
144
|
-
end
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
# Include all the Modules. BaseCollection must be first
|
|
148
|
-
# and pagination should be last
|
|
149
|
-
include BaseCollection
|
|
150
|
-
include Sorting
|
|
151
|
-
include Search
|
|
152
|
-
include Scoping
|
|
153
|
-
include Pagination
|
|
154
|
-
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
end
|
|
158
|
-
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
module ActiveAdmin
|
|
2
|
-
module Views
|
|
3
|
-
class UtilityNav < Component
|
|
4
|
-
def tag_name
|
|
5
|
-
"p"
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
def build(namespace)
|
|
9
|
-
super(:id => "utility_nav", :class => "header-item")
|
|
10
|
-
@namespace = namespace
|
|
11
|
-
|
|
12
|
-
if current_active_admin_user?
|
|
13
|
-
build_current_user
|
|
14
|
-
build_logout_link
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
private
|
|
19
|
-
|
|
20
|
-
def build_current_user
|
|
21
|
-
span display_name(current_active_admin_user), :class => "current_user"
|
|
22
|
-
end
|
|
23
|
-
|
|
24
|
-
def build_logout_link
|
|
25
|
-
if @namespace.logout_link_path
|
|
26
|
-
text_node helpers.link_to(I18n.t('active_admin.logout'), active_admin_logout_path, :method => logout_method)
|
|
27
|
-
end
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Returns the logout path from the application settings
|
|
31
|
-
def active_admin_logout_path
|
|
32
|
-
helpers.render_or_call_method_or_proc_on(self, @namespace.logout_link_path)
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
def logout_method
|
|
36
|
-
@namespace.logout_link_method || :get
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Required methods:
|
|
2
|
-
# * controller_class
|
|
3
|
-
# * controller
|
|
4
|
-
#
|
|
5
|
-
shared_examples_for "BaseController" do
|
|
6
|
-
let(:controller_class) { described_class }
|
|
7
|
-
|
|
8
|
-
describe "Menu" do
|
|
9
|
-
describe "setting the current tab" do
|
|
10
|
-
before do
|
|
11
|
-
controller.stub!(:active_admin_config => resource, :parent? => true)
|
|
12
|
-
controller.send :set_current_tab # Run the before filter
|
|
13
|
-
end
|
|
14
|
-
subject{ controller.instance_variable_get(:@current_tab) }
|
|
15
|
-
|
|
16
|
-
context "when menu item name is 'Resources' without a parent menu item" do
|
|
17
|
-
let(:menu_item){ stub }
|
|
18
|
-
let(:resource){ mock(:menu_item => menu_item, :parent_menu_item_name => nil, :belongs_to? => false) }
|
|
19
|
-
it { should == menu_item }
|
|
20
|
-
end
|
|
21
|
-
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
module MockModuleToInclude
|
|
4
|
-
def self.included(dsl)
|
|
5
|
-
end
|
|
6
|
-
end
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
describe ActiveAdmin::DSL, "#include" do
|
|
10
|
-
|
|
11
|
-
let(:dsl){ ActiveAdmin::DSL.new(mock) }
|
|
12
|
-
|
|
13
|
-
it "should call the included class method on the module that is included" do
|
|
14
|
-
MockModuleToInclude.should_receive(:included).with(dsl)
|
|
15
|
-
dsl.run_registration_block do
|
|
16
|
-
include MockModuleToInclude
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
end
|