activeadmin 1.3.1 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.circleci/config.yml +467 -0
- data/.gitignore +2 -5
- data/.rspec +1 -0
- data/.rspec_parallel +2 -0
- data/.rubocop.yml +25 -7
- data/.simplecov +4 -6
- data/CHANGELOG.md +175 -83
- data/CODE_OF_CONDUCT.md +64 -12
- data/CONTRIBUTING.md +77 -40
- data/Gemfile +7 -55
- data/Gemfile.common +53 -0
- data/Gemfile.lock +431 -0
- data/README.md +39 -18
- data/Rakefile +1 -32
- data/app/assets/stylesheets/active_admin/_forms.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
- data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
- data/app/views/active_admin/devise/registrations/new.html.erb +1 -1
- data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
- data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
- data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
- data/bin/install_chromedriver.sh +17 -0
- data/config/locales/de.yml +10 -0
- data/config/locales/en.yml +19 -1
- data/config/locales/es.yml +20 -1
- data/config/locales/fi.yml +1 -1
- data/config/locales/it.yml +4 -0
- data/config/locales/nb.yml +15 -5
- data/config/locales/nl.yml +11 -0
- data/config/locales/pl.yml +71 -3
- data/config/locales/ru.yml +2 -0
- data/config/locales/tr.yml +9 -0
- data/config/locales/zh-CN.yml +33 -5
- data/config/mdl_style.rb +2 -0
- data/cucumber.yml +7 -3
- data/docs/.gitignore +1 -0
- data/docs/1-general-configuration.md +16 -1
- data/docs/10-custom-pages.md +14 -0
- data/docs/12-arbre-components.md +28 -1
- data/docs/13-authorization-adapter.md +36 -17
- data/docs/2-resource-customization.md +8 -3
- data/docs/3-index-pages.md +17 -0
- data/docs/3-index-pages/custom-index.md +1 -1
- data/docs/3-index-pages/index-as-blog.md +1 -1
- data/docs/3-index-pages/index-as-table.md +5 -5
- data/docs/5-forms.md +16 -2
- data/docs/8-custom-actions.md +11 -0
- data/docs/Gemfile +2 -0
- data/docs/Gemfile.lock +249 -0
- data/docs/_config.yml +1 -1
- data/docs/_includes/toc.html +1 -1
- data/docs/_includes/top-menu.html +9 -1
- data/docs/documentation.md +1 -1
- data/docs/images/tidelift.svg +14 -0
- data/docs/stylesheets/main.css +26 -2
- data/gemfiles/rails_42.gemfile +2 -2
- data/gemfiles/rails_42.gemfile.lock +410 -0
- data/gemfiles/rails_50.gemfile +2 -2
- data/gemfiles/rails_50.gemfile.lock +424 -0
- data/gemfiles/rails_51.gemfile +2 -2
- data/gemfiles/rails_51.gemfile.lock +423 -0
- data/lib/active_admin/abstract_view_factory.rb +13 -51
- data/lib/active_admin/application.rb +42 -142
- data/lib/active_admin/application_settings.rb +39 -0
- data/lib/active_admin/base_controller/authorization.rb +1 -2
- data/lib/active_admin/batch_actions/controller.rb +1 -1
- data/lib/active_admin/dependency.rb +8 -0
- data/lib/active_admin/deprecation.rb +0 -25
- data/lib/active_admin/dynamic_setting.rb +38 -0
- data/lib/active_admin/dynamic_settings_node.rb +28 -0
- data/lib/active_admin/engine.rb +5 -0
- data/lib/active_admin/filters/active_filter.rb +1 -1
- data/lib/active_admin/filters/resource_extension.rb +1 -1
- data/lib/active_admin/form_builder.rb +95 -60
- data/lib/active_admin/inputs/datepicker_input.rb +7 -0
- data/lib/active_admin/menu.rb +2 -8
- data/lib/active_admin/menu_item.rb +3 -31
- data/lib/active_admin/namespace.rb +18 -6
- data/lib/active_admin/namespace_settings.rb +107 -0
- data/lib/active_admin/orm/active_record/comments.rb +11 -0
- data/lib/active_admin/orm/active_record/comments/comment.rb +1 -1
- data/lib/active_admin/resource/action_items.rb +6 -1
- data/lib/active_admin/resource_controller/decorators.rb +3 -3
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/router.rb +89 -84
- data/lib/active_admin/scope.rb +5 -1
- data/lib/active_admin/settings_node.rb +19 -0
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +2 -3
- data/lib/active_admin/views/components/menu.rb +32 -0
- data/lib/active_admin/views/components/menu_item.rb +58 -0
- data/lib/active_admin/views/components/scopes.rb +11 -4
- data/lib/active_admin/views/components/sidebar.rb +13 -0
- data/lib/active_admin/views/components/site_title.rb +5 -6
- data/lib/active_admin/views/components/table_for.rb +1 -10
- data/lib/active_admin/views/components/tabs.rb +4 -1
- data/lib/active_admin/views/footer.rb +2 -6
- data/lib/active_admin/views/header.rb +3 -15
- data/lib/active_admin/views/index_as_blog.rb +1 -1
- data/lib/active_admin/views/index_as_grid.rb +25 -25
- data/lib/active_admin/views/index_as_table.rb +6 -6
- data/lib/active_admin/views/pages/base.rb +27 -53
- data/lib/active_admin/views/tabbed_navigation.rb +4 -59
- data/lib/bug_report_templates/active_admin_master.rb +2 -3
- data/tasks/application_generator.rb +48 -0
- data/tasks/gemfiles.rake +8 -0
- data/tasks/lint.rake +96 -7
- data/tasks/local.rake +10 -8
- data/tasks/test.rake +30 -16
- metadata +26 -440
- data/.travis.yml +0 -51
- data/features/action_item.feature +0 -73
- data/features/authorization.feature +0 -64
- data/features/authorization_cancan.feature +0 -52
- data/features/authorization_pundit.feature +0 -37
- data/features/belongs_to.feature +0 -124
- data/features/breadcrumb.feature +0 -75
- data/features/comments/commenting.feature +0 -178
- data/features/comments/viewing_index.feature +0 -19
- data/features/create_another.feature +0 -55
- data/features/dashboard.feature +0 -16
- data/features/decorators.feature +0 -43
- data/features/development_reloading.feature +0 -28
- data/features/edit_page.feature +0 -116
- data/features/favicon.feature +0 -20
- data/features/first_boot.feature +0 -16
- data/features/footer.feature +0 -28
- data/features/global_navigation.feature +0 -29
- data/features/i18n.feature +0 -55
- data/features/index/batch_actions.feature +0 -218
- data/features/index/filters.feature +0 -250
- data/features/index/format_as_csv.feature +0 -220
- data/features/index/formats.feature +0 -88
- data/features/index/index_as_block.feature +0 -15
- data/features/index/index_as_blog.feature +0 -69
- data/features/index/index_as_grid.feature +0 -45
- data/features/index/index_as_table.feature +0 -291
- data/features/index/index_blank_slate.feature +0 -83
- data/features/index/index_parameters.feature +0 -75
- data/features/index/index_scope_to.feature +0 -56
- data/features/index/index_scopes.feature +0 -285
- data/features/index/page_title.feature +0 -41
- data/features/index/pagination.feature +0 -63
- data/features/index/switch_index_view.feature +0 -73
- data/features/menu.feature +0 -72
- data/features/meta_tags.feature +0 -21
- data/features/new_page.feature +0 -136
- data/features/registering_assets.feature +0 -38
- data/features/registering_pages.feature +0 -237
- data/features/registering_resources.feature +0 -33
- data/features/renamed_resource.feature +0 -30
- data/features/root_to.feature +0 -17
- data/features/show/attributes_table_title.feature +0 -54
- data/features/show/columns.feature +0 -40
- data/features/show/default_content.feature +0 -44
- data/features/show/page_title.feature +0 -58
- data/features/show/tabs.feature +0 -33
- data/features/sidebar_sections.feature +0 -210
- data/features/site_title.feature +0 -47
- data/features/specifying_actions.feature +0 -118
- data/features/step_definitions/action_item_steps.rb +0 -7
- data/features/step_definitions/action_link_steps.rb +0 -19
- data/features/step_definitions/additional_web_steps.rb +0 -81
- data/features/step_definitions/asset_steps.rb +0 -15
- data/features/step_definitions/attribute_steps.rb +0 -18
- data/features/step_definitions/attributes_table_title_steps.rb +0 -11
- data/features/step_definitions/batch_action_steps.rb +0 -81
- data/features/step_definitions/blog_steps.rb +0 -3
- data/features/step_definitions/breadcrumb_steps.rb +0 -3
- data/features/step_definitions/column_steps.rb +0 -8
- data/features/step_definitions/comment_steps.rb +0 -32
- data/features/step_definitions/configuration_steps.rb +0 -100
- data/features/step_definitions/dashboard_steps.rb +0 -15
- data/features/step_definitions/factory_steps.rb +0 -35
- data/features/step_definitions/filter_steps.rb +0 -47
- data/features/step_definitions/flash_steps.rb +0 -11
- data/features/step_definitions/footer_steps.rb +0 -11
- data/features/step_definitions/format_steps.rb +0 -56
- data/features/step_definitions/i18n_steps.rb +0 -11
- data/features/step_definitions/index_scope_steps.rb +0 -29
- data/features/step_definitions/index_views_steps.rb +0 -3
- data/features/step_definitions/layout_steps.rb +0 -3
- data/features/step_definitions/member_link_steps.rb +0 -7
- data/features/step_definitions/menu_steps.rb +0 -11
- data/features/step_definitions/meta_tag_steps.rb +0 -3
- data/features/step_definitions/pagination_steps.rb +0 -15
- data/features/step_definitions/sidebar_steps.rb +0 -11
- data/features/step_definitions/site_title_steps.rb +0 -17
- data/features/step_definitions/tab_steps.rb +0 -8
- data/features/step_definitions/table_steps.rb +0 -116
- data/features/step_definitions/user_steps.rb +0 -52
- data/features/step_definitions/web_steps.rb +0 -86
- data/features/sti_resource.feature +0 -65
- data/features/strong_parameters.feature +0 -69
- data/features/support/env.rb +0 -122
- data/features/support/paths.rb +0 -73
- data/features/support/regular_env.rb +0 -7
- data/features/support/reload_env.rb +0 -7
- data/features/support/selectors.rb +0 -45
- data/features/users/logging_in.feature +0 -36
- data/features/users/logging_out.feature +0 -13
- data/features/users/resetting_password.feature +0 -34
- data/gemfiles/rails_52.gemfile +0 -11
- data/lib/active_admin/helpers/settings.rb +0 -114
- data/spec/bug_report_templates_spec.rb +0 -26
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
- data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
- data/spec/javascripts/fixtures/checkboxes.html +0 -9
- data/spec/javascripts/fixtures/flashes.html +0 -2
- data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
- data/spec/javascripts/helpers/SpecHelper.js +0 -3
- data/spec/javascripts/support/jasmine.yml +0 -74
- data/spec/javascripts/support/jasmine_runner.rb +0 -19
- data/spec/rails_helper.rb +0 -59
- data/spec/requests/default_namespace_spec.rb +0 -81
- data/spec/requests/memory_spec.rb +0 -25
- data/spec/requests/stylesheets_spec.rb +0 -18
- data/spec/spec_helper.rb +0 -1
- data/spec/support/active_admin_integration_spec_helper.rb +0 -73
- data/spec/support/active_admin_request_helpers.rb +0 -39
- data/spec/support/rails_template.rb +0 -153
- data/spec/support/rails_template_with_data.rb +0 -327
- data/spec/support/templates/admin/stores.rb +0 -7
- data/spec/support/templates/en.yml +0 -8
- data/spec/support/templates/manifest.js +0 -3
- data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
- data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
- data/spec/support/templates/policies/admin_user_policy.rb +0 -11
- data/spec/support/templates/policies/application_policy.rb +0 -44
- data/spec/support/templates/policies/category_policy.rb +0 -7
- data/spec/support/templates/policies/post_policy.rb +0 -15
- data/spec/support/templates/policies/store_policy.rb +0 -11
- data/spec/support/templates/policies/user_policy.rb +0 -11
- data/spec/support/templates/post_decorator.rb +0 -24
- data/spec/unit/abstract_view_factory_spec.rb +0 -78
- data/spec/unit/action_builder_spec.rb +0 -158
- data/spec/unit/active_admin_spec.rb +0 -11
- data/spec/unit/application_spec.rb +0 -184
- data/spec/unit/asset_registration_spec.rb +0 -81
- data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
- data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
- data/spec/unit/authorization/index_overriding_spec.rb +0 -23
- data/spec/unit/auto_link_spec.rb +0 -93
- data/spec/unit/batch_actions/resource_spec.rb +0 -84
- data/spec/unit/batch_actions/settings_spec.rb +0 -61
- data/spec/unit/belongs_to_spec.rb +0 -76
- data/spec/unit/cancan_adapter_spec.rb +0 -43
- data/spec/unit/comments_spec.rb +0 -176
- data/spec/unit/component_spec.rb +0 -18
- data/spec/unit/config_shared_examples.rb +0 -59
- data/spec/unit/controller_filters_spec.rb +0 -41
- data/spec/unit/csv_builder_spec.rb +0 -313
- data/spec/unit/dependency_spec.rb +0 -135
- data/spec/unit/devise_spec.rb +0 -110
- data/spec/unit/dsl_spec.rb +0 -120
- data/spec/unit/filters/active_filter_spec.rb +0 -189
- data/spec/unit/filters/active_spec.rb +0 -24
- data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
- data/spec/unit/filters/resource_spec.rb +0 -128
- data/spec/unit/form_builder_spec.rb +0 -990
- data/spec/unit/generators/install_spec.rb +0 -31
- data/spec/unit/helpers/collection_spec.rb +0 -68
- data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
- data/spec/unit/helpers/scope_chain_spec.rb +0 -35
- data/spec/unit/helpers/settings_spec.rb +0 -30
- data/spec/unit/i18n_spec.rb +0 -29
- data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
- data/spec/unit/menu_collection_spec.rb +0 -62
- data/spec/unit/menu_item_spec.rb +0 -141
- data/spec/unit/menu_spec.rb +0 -71
- data/spec/unit/namespace/authorization_spec.rb +0 -27
- data/spec/unit/namespace/register_page_spec.rb +0 -99
- data/spec/unit/namespace/register_resource_spec.rb +0 -162
- data/spec/unit/namespace_spec.rb +0 -124
- data/spec/unit/order_clause_spec.rb +0 -81
- data/spec/unit/page_controller_spec.rb +0 -5
- data/spec/unit/page_spec.rb +0 -128
- data/spec/unit/pretty_format_spec.rb +0 -82
- data/spec/unit/pundit_adapter_spec.rb +0 -98
- data/spec/unit/resource/action_items_spec.rb +0 -69
- data/spec/unit/resource/attributes_spec.rb +0 -49
- data/spec/unit/resource/includes_spec.rb +0 -21
- data/spec/unit/resource/menu_spec.rb +0 -18
- data/spec/unit/resource/naming_spec.rb +0 -122
- data/spec/unit/resource/ordering_spec.rb +0 -35
- data/spec/unit/resource/page_presenters_spec.rb +0 -44
- data/spec/unit/resource/pagination_spec.rb +0 -38
- data/spec/unit/resource/routes_spec.rb +0 -125
- data/spec/unit/resource/scopes_spec.rb +0 -50
- data/spec/unit/resource/sidebars_spec.rb +0 -43
- data/spec/unit/resource_collection_spec.rb +0 -175
- data/spec/unit/resource_controller/data_access_spec.rb +0 -234
- data/spec/unit/resource_controller/decorators_spec.rb +0 -94
- data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
- data/spec/unit/resource_controller_spec.rb +0 -273
- data/spec/unit/resource_registration_spec.rb +0 -61
- data/spec/unit/resource_spec.rb +0 -320
- data/spec/unit/routing_spec.rb +0 -211
- data/spec/unit/scope_spec.rb +0 -209
- data/spec/unit/settings_spec.rb +0 -117
- data/spec/unit/view_factory_spec.rb +0 -19
- data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
- data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
- data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
- data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
- data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
- data/spec/unit/views/components/attributes_table_spec.rb +0 -271
- data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
- data/spec/unit/views/components/blank_slate_spec.rb +0 -27
- data/spec/unit/views/components/columns_spec.rb +0 -187
- data/spec/unit/views/components/index_list_spec.rb +0 -49
- data/spec/unit/views/components/index_table_for_spec.rb +0 -127
- data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
- data/spec/unit/views/components/panel_spec.rb +0 -58
- data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
- data/spec/unit/views/components/site_title_spec.rb +0 -76
- data/spec/unit/views/components/status_tag_spec.rb +0 -265
- data/spec/unit/views/components/table_for_spec.rb +0 -436
- data/spec/unit/views/components/tabs_spec.rb +0 -67
- data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
- data/spec/unit/views/index_as_blog_spec.rb +0 -76
- data/spec/unit/views/pages/form_spec.rb +0 -54
- data/spec/unit/views/pages/index_spec.rb +0 -60
- data/spec/unit/views/pages/layout_spec.rb +0 -59
- data/spec/unit/views/pages/show_spec.rb +0 -32
- data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
- data/tasks/parallel_tests.rake +0 -66
@@ -13,16 +13,20 @@ module ActiveAdmin
|
|
13
13
|
include ::ActiveAdmin::Helpers::Collection
|
14
14
|
|
15
15
|
def default_class_name
|
16
|
-
"scopes
|
16
|
+
"scopes"
|
17
17
|
end
|
18
18
|
|
19
19
|
def tag_name
|
20
|
-
'
|
20
|
+
'div'
|
21
21
|
end
|
22
22
|
|
23
23
|
def build(scopes, options = {})
|
24
|
-
scopes.each do |
|
25
|
-
|
24
|
+
scopes.group_by(&:group).each do |group, group_scopes|
|
25
|
+
ul class: "table_tools_segmented_control #{group_class(group)}" do
|
26
|
+
group_scopes.each do |scope|
|
27
|
+
build_scope(scope, options) if call_method_or_exec_proc(scope.display_if_block)
|
28
|
+
end
|
29
|
+
end
|
26
30
|
end
|
27
31
|
end
|
28
32
|
|
@@ -60,6 +64,9 @@ module ActiveAdmin
|
|
60
64
|
collection_size(scope_chain(scope, collection_before_scope))
|
61
65
|
end
|
62
66
|
|
67
|
+
def group_class(group)
|
68
|
+
group.present? ? "scope-group-#{group}" : "scope-default-group"
|
69
|
+
end
|
63
70
|
end
|
64
71
|
end
|
65
72
|
end
|
@@ -22,8 +22,8 @@ module ActiveAdmin
|
|
22
22
|
@namespace.site_title_link.present?
|
23
23
|
end
|
24
24
|
|
25
|
-
def site_title_image
|
26
|
-
@namespace.site_title_image
|
25
|
+
def site_title_image
|
26
|
+
@site_title_image ||= @namespace.site_title_image(helpers)
|
27
27
|
end
|
28
28
|
|
29
29
|
private
|
@@ -33,7 +33,7 @@ module ActiveAdmin
|
|
33
33
|
end
|
34
34
|
|
35
35
|
def site_title_content
|
36
|
-
if site_title_image?
|
36
|
+
if site_title_image.present?
|
37
37
|
title_image
|
38
38
|
else
|
39
39
|
title_text
|
@@ -41,12 +41,11 @@ module ActiveAdmin
|
|
41
41
|
end
|
42
42
|
|
43
43
|
def title_text
|
44
|
-
|
44
|
+
@title_text ||= @namespace.site_title(helpers)
|
45
45
|
end
|
46
46
|
|
47
47
|
def title_image
|
48
|
-
|
49
|
-
helpers.image_tag(path, id: "site_title_image", alt: title_text)
|
48
|
+
helpers.image_tag(site_title_image, id: "site_title_image", alt: title_text)
|
50
49
|
end
|
51
50
|
|
52
51
|
end
|
@@ -176,18 +176,9 @@ module ActiveAdmin
|
|
176
176
|
# to the sortable option:
|
177
177
|
# column :username, sortable: 'other_column_to_sort_on'
|
178
178
|
#
|
179
|
-
# If you pass a block to be rendered for this column, the column
|
180
|
-
# will not be sortable unless you pass a string to sortable to
|
181
|
-
# sort the column on:
|
182
|
-
#
|
183
|
-
# column('Username', sortable: 'login'){ @user.pretty_name }
|
184
|
-
# # => Sort key will be 'login'
|
185
|
-
#
|
186
179
|
def sort_key
|
187
180
|
# If boolean or nil, use the default sort key.
|
188
|
-
if @options[:sortable] == true || @options[:sortable] == false
|
189
|
-
@data.to_s
|
190
|
-
elsif @options[:sortable].nil?
|
181
|
+
if @options[:sortable].nil? || @options[:sortable] == true || @options[:sortable] == false
|
191
182
|
sort_column_name
|
192
183
|
else
|
193
184
|
@options[:sortable].to_s
|
@@ -16,7 +16,10 @@ module ActiveAdmin
|
|
16
16
|
|
17
17
|
def build_menu_item(title, options, &block)
|
18
18
|
fragment = options.fetch(:id, title.parameterize)
|
19
|
-
|
19
|
+
html_options = options.fetch(:html_options, {})
|
20
|
+
li html_options do
|
21
|
+
link_to title, "##{fragment}"
|
22
|
+
end
|
20
23
|
end
|
21
24
|
|
22
25
|
def build_content_item(title, options, &block)
|
@@ -6,21 +6,17 @@ module ActiveAdmin
|
|
6
6
|
super id: "footer"
|
7
7
|
@namespace = namespace
|
8
8
|
|
9
|
-
if
|
9
|
+
if footer_text.present?
|
10
10
|
para footer_text
|
11
11
|
else
|
12
12
|
para powered_by_message
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
def footer?
|
17
|
-
@namespace.footer.present?
|
18
|
-
end
|
19
|
-
|
20
16
|
private
|
21
17
|
|
22
18
|
def footer_text
|
23
|
-
|
19
|
+
@footer_text ||= @namespace.footer(self)
|
24
20
|
end
|
25
21
|
|
26
22
|
def powered_by_message
|
@@ -9,21 +9,9 @@ module ActiveAdmin
|
|
9
9
|
@menu = menu
|
10
10
|
@utility_menu = @namespace.fetch_menu(:utility_navigation)
|
11
11
|
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
def build_site_title
|
18
|
-
insert_tag view_factory.site_title, @namespace
|
19
|
-
end
|
20
|
-
|
21
|
-
def build_global_navigation
|
22
|
-
insert_tag view_factory.global_navigation, @menu, class: 'header-item tabs'
|
23
|
-
end
|
24
|
-
|
25
|
-
def build_utility_navigation
|
26
|
-
insert_tag view_factory.utility_navigation, @utility_menu, id: "utility_nav", class: 'header-item tabs'
|
12
|
+
site_title @namespace
|
13
|
+
global_navigation @menu, class: 'header-item tabs'
|
14
|
+
utility_navigation @utility_menu, id: "utility_nav", class: 'header-item tabs'
|
27
15
|
end
|
28
16
|
|
29
17
|
end
|
@@ -27,7 +27,7 @@ module ActiveAdmin
|
|
27
27
|
# ```
|
28
28
|
#
|
29
29
|
# Second, you can pass a block to the tile option which will then be
|
30
|
-
# used as the contents
|
30
|
+
# used as the contents of the title. The resource being rendered
|
31
31
|
# is passed in to the block. For Example:
|
32
32
|
#
|
33
33
|
# ```ruby
|
@@ -1,30 +1,30 @@
|
|
1
1
|
module ActiveAdmin
|
2
2
|
module Views
|
3
3
|
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
4
|
+
# # Index as a Grid
|
5
|
+
#
|
6
|
+
# Sometimes you want to display the index screen for a set of resources as a grid
|
7
|
+
# (possibly a grid of thumbnail images). To do so, use the :grid option for the
|
8
|
+
# index block.
|
9
|
+
#
|
10
|
+
# ```ruby
|
11
|
+
# index as: :grid do |product|
|
12
|
+
# link_to image_tag(product.image_path), admin_product_path(product)
|
13
|
+
# end
|
14
|
+
# ```
|
15
|
+
#
|
16
|
+
# The block is rendered within a cell in the grid once for each resource in the
|
17
|
+
# collection. The resource is passed into the block for you to use in the view.
|
18
|
+
#
|
19
|
+
# You can customize the number of columns that are rendered using the columns
|
20
|
+
# option:
|
21
|
+
#
|
22
|
+
# ```ruby
|
23
|
+
# index as: :grid, columns: 5 do |product|
|
24
|
+
# link_to image_tag(product.image_path), admin_product_path(product)
|
25
|
+
# end
|
26
|
+
# ```
|
27
|
+
#
|
28
28
|
class IndexAsGrid < ActiveAdmin::Component
|
29
29
|
|
30
30
|
def build(page_presenter, collection)
|
@@ -42,7 +42,7 @@ module ActiveAdmin
|
|
42
42
|
"grid"
|
43
43
|
end
|
44
44
|
|
45
|
-
|
45
|
+
protected
|
46
46
|
|
47
47
|
def build_table
|
48
48
|
resource_selection_toggle_panel if active_admin_config.batch_actions.any?
|
@@ -110,7 +110,8 @@ module ActiveAdmin
|
|
110
110
|
# end
|
111
111
|
# ```
|
112
112
|
#
|
113
|
-
# In addition, you can insert the position of the row in the greater
|
113
|
+
# In addition, you can insert the position of the row in the greater
|
114
|
+
# collection by using the index_column special command:
|
114
115
|
#
|
115
116
|
# ```ruby
|
116
117
|
# index do
|
@@ -120,7 +121,8 @@ module ActiveAdmin
|
|
120
121
|
# end
|
121
122
|
# ```
|
122
123
|
#
|
123
|
-
# index_column take an optional offset parameter to allow a developer to set
|
124
|
+
# index_column take an optional offset parameter to allow a developer to set
|
125
|
+
# the starting number for the index (default is 1).
|
124
126
|
#
|
125
127
|
# ## Sorting
|
126
128
|
#
|
@@ -128,9 +130,7 @@ module ActiveAdmin
|
|
128
130
|
# sortable by default. If you are creating a custom column, you may need to give
|
129
131
|
# Active Admin a hint for how to sort the table.
|
130
132
|
#
|
131
|
-
#
|
132
|
-
# is the attribute which gets used to sort objects using Active Record.
|
133
|
-
#
|
133
|
+
# You can pass the key specifying the attribute which gets used to sort objects using Active Record.
|
134
134
|
# By default, this is the column on the resource's table that the attribute corresponds to.
|
135
135
|
# Otherwise, any attribute that the resource collection responds to can be used.
|
136
136
|
#
|
@@ -362,7 +362,7 @@ module ActiveAdmin
|
|
362
362
|
end
|
363
363
|
end
|
364
364
|
|
365
|
-
|
365
|
+
private
|
366
366
|
|
367
367
|
def defaults(resource, options = {})
|
368
368
|
if controller.action_methods.include?('show') && authorized?(ActiveAdmin::Auth::READ, resource)
|
@@ -4,27 +4,27 @@ module ActiveAdmin
|
|
4
4
|
class Base < Arbre::HTML::Document
|
5
5
|
|
6
6
|
def build(*args)
|
7
|
-
super
|
8
|
-
add_classes_to_body
|
9
7
|
build_active_admin_head
|
10
8
|
build_page
|
11
9
|
end
|
12
10
|
|
11
|
+
alias_method :html_title, :title # Arbre::HTML::Title
|
12
|
+
def title
|
13
|
+
self.class.name
|
14
|
+
end
|
15
|
+
|
16
|
+
def main_content
|
17
|
+
I18n.t('active_admin.main_content', model: title).html_safe
|
18
|
+
end
|
19
|
+
|
13
20
|
private
|
14
21
|
|
15
22
|
delegate :active_admin_config, :controller, :params, to: :helpers
|
16
23
|
|
17
|
-
def add_classes_to_body
|
18
|
-
@body.add_class(params[:action])
|
19
|
-
@body.add_class(params[:controller].tr('/', '_'))
|
20
|
-
@body.add_class("active_admin")
|
21
|
-
@body.add_class("logged_in")
|
22
|
-
@body.add_class(active_admin_namespace.name.to_s + "_namespace")
|
23
|
-
end
|
24
|
-
|
25
24
|
def build_active_admin_head
|
26
|
-
within
|
27
|
-
|
25
|
+
within head do
|
26
|
+
html_title [title, helpers.active_admin_namespace.site_title(self)].compact.join(" | ")
|
27
|
+
|
28
28
|
active_admin_application.stylesheets.each do |style, options|
|
29
29
|
text_node stylesheet_link_tag(style, options).html_safe
|
30
30
|
end
|
@@ -46,36 +46,37 @@ module ActiveAdmin
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def build_page
|
49
|
-
within
|
49
|
+
within body(class: body_classes) do
|
50
50
|
div id: "wrapper" do
|
51
51
|
build_unsupported_browser
|
52
|
-
|
53
|
-
|
52
|
+
header active_admin_namespace, current_menu
|
53
|
+
title_bar title, action_items_for_action
|
54
54
|
build_page_content
|
55
|
-
|
55
|
+
footer active_admin_namespace
|
56
56
|
end
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
+
def body_classes
|
61
|
+
Arbre::HTML::ClassList.new [
|
62
|
+
params[:action],
|
63
|
+
params[:controller].tr('/', '_'),
|
64
|
+
'active_admin', 'logged_in',
|
65
|
+
active_admin_namespace.name.to_s + '_namespace'
|
66
|
+
]
|
67
|
+
end
|
68
|
+
|
60
69
|
def build_unsupported_browser
|
61
70
|
if active_admin_namespace.unsupported_browser_matcher =~ controller.request.user_agent
|
62
|
-
|
71
|
+
unsupported_browser
|
63
72
|
end
|
64
73
|
end
|
65
74
|
|
66
|
-
def build_header
|
67
|
-
insert_tag view_factory.header, active_admin_namespace, current_menu
|
68
|
-
end
|
69
|
-
|
70
|
-
def build_title_bar
|
71
|
-
insert_tag view_factory.title_bar, title, action_items_for_action
|
72
|
-
end
|
73
|
-
|
74
75
|
def build_page_content
|
75
76
|
build_flash_messages
|
76
77
|
div id: "active_admin_content", class: (skip_sidebar? ? "without_sidebar" : "with_sidebar") do
|
77
78
|
build_main_content_wrapper
|
78
|
-
|
79
|
+
sidebar sidebar_sections_for_action, id: 'sidebar' unless skip_sidebar?
|
79
80
|
end
|
80
81
|
end
|
81
82
|
|
@@ -95,19 +96,6 @@ module ActiveAdmin
|
|
95
96
|
end
|
96
97
|
end
|
97
98
|
|
98
|
-
def main_content
|
99
|
-
I18n.t('active_admin.main_content', model: title).html_safe
|
100
|
-
end
|
101
|
-
|
102
|
-
def title
|
103
|
-
self.class.name
|
104
|
-
end
|
105
|
-
|
106
|
-
# Set's the page title for the layout to render
|
107
|
-
def set_page_title
|
108
|
-
set_ivar_on_view "@page_title", title
|
109
|
-
end
|
110
|
-
|
111
99
|
# Returns the sidebar sections to render for the current action
|
112
100
|
def sidebar_sections_for_action
|
113
101
|
if active_admin_config && active_admin_config.sidebar_sections?
|
@@ -125,24 +113,10 @@ module ActiveAdmin
|
|
125
113
|
end
|
126
114
|
end
|
127
115
|
|
128
|
-
# Renders the sidebar
|
129
|
-
def build_sidebar
|
130
|
-
div id: "sidebar" do
|
131
|
-
sidebar_sections_for_action.collect do |section|
|
132
|
-
sidebar_section(section)
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
136
|
-
|
137
116
|
def skip_sidebar?
|
138
117
|
sidebar_sections_for_action.empty? || assigns[:skip_sidebar] == true
|
139
118
|
end
|
140
119
|
|
141
|
-
# Renders the content for the footer
|
142
|
-
def build_footer
|
143
|
-
insert_tag view_factory.footer, active_admin_namespace
|
144
|
-
end
|
145
|
-
|
146
120
|
end
|
147
121
|
end
|
148
122
|
end
|
@@ -1,65 +1,10 @@
|
|
1
|
+
require_relative 'components/menu'
|
2
|
+
|
1
3
|
module ActiveAdmin
|
2
4
|
module Views
|
3
|
-
|
4
|
-
# Renders an ActiveAdmin::Menu as a set of unordered list items.
|
5
|
-
#
|
6
|
-
# This component takes cares of deciding which items should be
|
7
|
-
# displayed given the current context and renders them appropriately.
|
8
|
-
#
|
9
|
-
# The entire component is rendered within one ul element.
|
10
|
-
class TabbedNavigation < Component
|
11
|
-
|
12
|
-
attr_reader :menu
|
13
|
-
|
14
|
-
# Build a new tabbed navigation component.
|
15
|
-
#
|
16
|
-
# @param [ActiveAdmin::Menu] menu the Menu to render
|
17
|
-
# @param [Hash] options the options as passed to the underlying ul element.
|
18
|
-
#
|
5
|
+
class TabbedNavigation < Menu
|
19
6
|
def build(menu, options = {})
|
20
|
-
|
21
|
-
super(default_options.merge(options))
|
22
|
-
build_menu
|
23
|
-
end
|
24
|
-
|
25
|
-
# The top-level menu items that should be displayed.
|
26
|
-
def menu_items
|
27
|
-
menu.items(self)
|
28
|
-
end
|
29
|
-
|
30
|
-
def tag_name
|
31
|
-
'ul'
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def build_menu
|
37
|
-
menu_items.each do |item|
|
38
|
-
build_menu_item(item)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
def build_menu_item(item)
|
43
|
-
li id: item.id do |li|
|
44
|
-
li.add_class "current" if item.current? assigns[:current_tab]
|
45
|
-
|
46
|
-
if url = item.url(self)
|
47
|
-
text_node link_to item.label(self), url, item.html_options
|
48
|
-
else
|
49
|
-
span item.label(self), item.html_options
|
50
|
-
end
|
51
|
-
|
52
|
-
if children = item.items(self).presence
|
53
|
-
li.add_class "has_nested"
|
54
|
-
ul do
|
55
|
-
children.each{ |child| build_menu_item child }
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def default_options
|
62
|
-
{ id: "tabs" }
|
7
|
+
super(menu, options.reverse_merge(id: 'tabs'))
|
63
8
|
end
|
64
9
|
end
|
65
10
|
end
|