activeadmin 1.0.0 → 1.1.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/.github/ISSUE_TEMPLATE.md +20 -0
- data/.mdlrc +1 -0
- data/.rubocop.yml +52 -3
- data/.simplecov +13 -0
- data/.travis.yml +9 -24
- data/.yardopts +0 -1
- data/CHANGELOG.md +85 -4
- data/CONTRIBUTING.md +33 -57
- data/Gemfile +26 -17
- data/Rakefile +1 -12
- data/activeadmin.gemspec +9 -11
- data/app/assets/javascripts/active_admin/base.js.coffee +6 -2
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +6 -3
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +9 -7
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +5 -2
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +6 -2
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +3 -5
- data/app/assets/stylesheets/active_admin/_base.scss +2 -2
- data/app/assets/stylesheets/active_admin/_forms.scss +6 -12
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +1 -0
- data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
- data/app/assets/stylesheets/active_admin/print.scss +2 -3
- data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
- data/app/views/active_admin/devise/shared/_links.erb +12 -6
- data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
- data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
- data/codecov.yml +14 -12
- data/config/i18n-tasks.yml +26 -0
- data/config/locales/ar.yml +1 -3
- data/config/locales/bg.yml +0 -2
- data/config/locales/bs.yml +0 -2
- data/config/locales/ca.yml +0 -2
- data/config/locales/cs.yml +0 -2
- data/config/locales/da.yml +1 -3
- data/config/locales/de-CH.yml +1 -3
- data/config/locales/de.yml +1 -3
- data/config/locales/el.yml +1 -3
- data/config/locales/en-CA.yml +138 -0
- data/config/locales/en-GB.yml +43 -3
- data/config/locales/en.yml +8 -4
- data/config/locales/es-MX.yml +3 -2
- data/config/locales/es.yml +10 -4
- data/config/locales/fa.yml +0 -2
- data/config/locales/fi.yml +0 -2
- data/config/locales/fr.yml +9 -2
- data/config/locales/he.yml +53 -7
- data/config/locales/hr.yml +0 -2
- data/config/locales/hu.yml +0 -2
- data/config/locales/id.yml +1 -3
- data/config/locales/it.yml +2 -4
- data/config/locales/ja.yml +1 -3
- data/config/locales/ko.yml +0 -2
- data/config/locales/lt.yml +24 -4
- data/config/locales/lv.yml +0 -2
- data/config/locales/nb.yml +0 -2
- data/config/locales/nl.yml +1 -3
- data/config/locales/pl.yml +3 -2
- data/config/locales/pt-BR.yml +1 -3
- data/config/locales/pt-PT.yml +0 -2
- data/config/locales/ro.yml +0 -2
- data/config/locales/ru.yml +1 -3
- data/config/locales/sk.yml +0 -2
- data/config/locales/sv-SE.yml +1 -3
- data/config/locales/tr.yml +0 -2
- data/config/locales/uk.yml +1 -3
- data/config/locales/vi.yml +0 -2
- data/config/locales/zh-CN.yml +0 -2
- data/config/locales/zh-TW.yml +1 -3
- data/config/mdl_style.rb +9 -0
- data/cucumber.yml +3 -3
- data/docs/0-installation.md +15 -12
- data/docs/1-general-configuration.md +10 -3
- data/docs/10-custom-pages.md +10 -5
- data/docs/11-decorators.md +1 -0
- data/docs/12-arbre-components.md +7 -9
- data/docs/13-authorization-adapter.md +39 -24
- data/docs/14-gotchas.md +41 -22
- data/docs/2-resource-customization.md +41 -18
- data/docs/3-index-pages.md +30 -12
- data/docs/3-index-pages/custom-index.md +1 -0
- data/docs/3-index-pages/index-as-block.md +0 -5
- data/docs/3-index-pages/index-as-blog.md +0 -5
- data/docs/3-index-pages/index-as-grid.md +0 -5
- data/docs/3-index-pages/index-as-table.md +1 -9
- data/docs/4-csv-format.md +2 -1
- data/docs/5-forms.md +45 -21
- data/docs/6-show-pages.md +2 -1
- data/docs/7-sidebars.md +2 -1
- data/docs/8-custom-actions.md +4 -1
- data/docs/9-batch-actions.md +4 -2
- data/docs/documentation.md +19 -21
- data/features/comments/commenting.feature +20 -0
- data/features/index/filters.feature +41 -1
- data/features/index/format_as_csv.feature +17 -0
- data/features/index/index_scopes.feature +15 -0
- data/features/registering_assets.feature +8 -4
- data/features/show/attributes_table_title.feature +54 -0
- data/features/show/tabs.feature +10 -4
- data/features/step_definitions/action_link_steps.rb +0 -1
- data/features/step_definitions/attributes_table_title_steps.rb +11 -0
- data/features/step_definitions/batch_action_steps.rb +2 -2
- data/features/step_definitions/comment_steps.rb +21 -1
- data/features/step_definitions/configuration_steps.rb +1 -1
- data/features/step_definitions/filter_steps.rb +9 -0
- data/features/step_definitions/format_steps.rb +1 -1
- data/features/step_definitions/index_scope_steps.rb +4 -0
- data/features/support/env.rb +5 -4
- data/features/support/regular_env.rb +7 -0
- data/features/support/reload_env.rb +7 -0
- data/gemfiles/rails_42.gemfile +2 -37
- data/gemfiles/rails_50.gemfile +5 -40
- data/gemfiles/rails_51.gemfile +5 -40
- data/lib/active_admin.rb +0 -3
- data/lib/active_admin/application.rb +6 -4
- data/lib/active_admin/asset_registration.rb +8 -0
- data/lib/active_admin/authorization_adapter.rb +0 -3
- data/lib/active_admin/base_controller.rb +1 -2
- data/lib/active_admin/base_controller/authorization.rb +0 -1
- data/lib/active_admin/base_controller/menu.rb +9 -9
- data/lib/active_admin/batch_actions/controller.rb +1 -1
- data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
- data/lib/active_admin/csv_builder.rb +3 -3
- data/lib/active_admin/dependency.rb +1 -1
- data/lib/active_admin/devise.rb +2 -2
- data/lib/active_admin/dsl.rb +2 -2
- data/lib/active_admin/filters.rb +2 -0
- data/lib/active_admin/filters/active.rb +13 -14
- data/lib/active_admin/filters/active_filter.rb +87 -0
- data/lib/active_admin/filters/active_sidebar.rb +50 -0
- data/lib/active_admin/filters/forms.rb +1 -2
- data/lib/active_admin/filters/resource_extension.rb +2 -30
- data/lib/active_admin/helpers/settings.rb +0 -1
- data/lib/active_admin/inputs/datepicker_input.rb +5 -5
- data/lib/active_admin/inputs/filters/date_range_input.rb +12 -4
- data/lib/active_admin/inputs/filters/text_input.rb +0 -1
- data/lib/active_admin/menu.rb +4 -4
- data/lib/active_admin/menu_collection.rb +0 -2
- data/lib/active_admin/namespace.rb +1 -1
- data/lib/active_admin/orm/active_record/comments/comment.rb +1 -5
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +4 -2
- data/lib/active_admin/page_controller.rb +1 -1
- data/lib/active_admin/resource/action_items.rb +4 -0
- data/lib/active_admin/resource/attributes.rb +1 -1
- data/lib/active_admin/resource/page_presenters.rb +1 -1
- data/lib/active_admin/resource/routes.rb +0 -1
- data/lib/active_admin/resource/scopes.rb +2 -1
- data/lib/active_admin/resource_controller.rb +1 -1
- data/lib/active_admin/resource_controller/data_access.rb +8 -9
- data/lib/active_admin/resource_dsl.rb +10 -10
- data/lib/active_admin/router.rb +1 -1
- data/lib/active_admin/scope.rb +3 -3
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers.rb +1 -0
- data/lib/active_admin/view_helpers/display_helper.rb +1 -1
- data/lib/active_admin/view_helpers/form_helper.rb +1 -1
- data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
- data/lib/active_admin/views/action_items.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +1 -1
- data/lib/active_admin/views/components/dropdown_menu.rb +2 -2
- data/lib/active_admin/views/components/index_list.rb +0 -2
- data/lib/active_admin/views/components/paginated_collection.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +2 -10
- data/lib/active_admin/views/components/status_tag.rb +19 -11
- data/lib/active_admin/views/components/tabs.rb +2 -2
- data/lib/active_admin/views/header.rb +0 -1
- data/lib/active_admin/views/index_as_blog.rb +1 -2
- data/lib/active_admin/views/index_as_grid.rb +2 -2
- data/lib/active_admin/views/index_as_table.rb +19 -1
- data/lib/active_admin/views/pages/base.rb +4 -4
- data/lib/active_admin/views/pages/show.rb +6 -1
- data/lib/active_admin/views/title_bar.rb +4 -4
- data/lib/bug_report_templates/{rails_5_master.rb → active_admin_master.rb} +35 -40
- data/lib/generators/active_admin/devise/devise_generator.rb +1 -1
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +1 -1
- data/spec/bug_report_templates_spec.rb +2 -3
- data/spec/rails_helper.rb +0 -3
- data/spec/spec_helper.rb +1 -12
- data/spec/support/active_admin_integration_spec_helper.rb +1 -1
- data/spec/support/rails_template.rb +5 -37
- data/spec/support/rails_template_with_data.rb +262 -3
- data/spec/support/templates/policies/active_admin/comment_policy.rb +1 -1
- data/spec/support/templates/policies/active_admin/page_policy.rb +1 -1
- data/spec/support/templates/policies/application_policy.rb +1 -2
- data/spec/support/templates/post_decorator.rb +0 -1
- data/spec/unit/abstract_view_factory_spec.rb +0 -1
- data/spec/unit/application_spec.rb +4 -0
- data/spec/unit/asset_registration_spec.rb +29 -0
- data/spec/unit/belongs_to_spec.rb +1 -2
- data/spec/unit/config_shared_examples.rb +1 -1
- data/spec/unit/csv_builder_spec.rb +2 -4
- data/spec/unit/dependency_spec.rb +7 -7
- data/spec/unit/dsl_spec.rb +0 -2
- data/spec/unit/filters/active_filter_spec.rb +135 -0
- data/spec/unit/filters/active_spec.rb +11 -1
- data/spec/unit/filters/filter_form_builder_spec.rb +9 -7
- data/spec/unit/form_builder_spec.rb +14 -14
- data/spec/unit/helpers/scope_chain_spec.rb +0 -1
- data/spec/unit/i18n_spec.rb +17 -0
- data/spec/unit/menu_item_spec.rb +1 -3
- data/spec/unit/namespace/register_page_spec.rb +1 -1
- data/spec/unit/namespace_spec.rb +0 -1
- data/spec/unit/page_spec.rb +0 -3
- data/spec/unit/resource/action_items_spec.rb +5 -1
- data/spec/unit/resource/attributes_spec.rb +1 -2
- data/spec/unit/resource/ordering_spec.rb +0 -3
- data/spec/unit/resource/scopes_spec.rb +1 -1
- data/spec/unit/resource_controller/data_access_spec.rb +2 -2
- data/spec/unit/resource_controller_spec.rb +1 -2
- data/spec/unit/resource_spec.rb +9 -2
- data/spec/unit/routing_spec.rb +0 -2
- data/spec/unit/scope_spec.rb +3 -3
- data/spec/unit/settings_spec.rb +0 -1
- data/spec/unit/view_factory_spec.rb +1 -1
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -1
- data/spec/unit/view_helpers/form_helper_spec.rb +3 -4
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -1
- data/spec/unit/views/components/attributes_table_spec.rb +0 -1
- data/spec/unit/views/components/columns_spec.rb +0 -2
- data/spec/unit/views/components/site_title_spec.rb +0 -2
- data/spec/unit/views/components/status_tag_spec.rb +23 -7
- data/spec/unit/views/components/tabs_spec.rb +29 -1
- data/spec/unit/views/pages/index_spec.rb +1 -1
- data/tasks/docs.rake +37 -10
- data/tasks/lint.rake +14 -1
- data/tasks/local.rake +2 -2
- data/tasks/test.rake +8 -25
- data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
- data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
- data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
- data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
- data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +300 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
- data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
- metadata +62 -51
- data/.hound.yml +0 -14
- data/Appraisals +0 -41
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -18
- data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
- data/lib/active_admin/filters/humanized.rb +0 -68
- data/spec/requests/javascript_spec.rb +0 -22
- data/spec/support/jslint.yml +0 -80
- data/spec/unit/filters/humanized_spec.rb +0 -64
- data/tasks/yard.rake +0 -9
@@ -33,7 +33,7 @@ module ActiveAdmin
|
|
33
33
|
# @param [Symbol, String] action The action to get the config for
|
34
34
|
# @param [String] type The string specified in the presenters index_name method
|
35
35
|
# @return [PagePresenter, nil]
|
36
|
-
def get_page_presenter(action, type=nil)
|
36
|
+
def get_page_presenter(action, type = nil)
|
37
37
|
|
38
38
|
if action.to_s == "index" && type && page_presenters[:index].kind_of?(Hash)
|
39
39
|
page_presenters[:index][type.to_sym]
|
@@ -27,7 +27,8 @@ module ActiveAdmin
|
|
27
27
|
# If you want to internationalize the scope name, you can add
|
28
28
|
# to your i18n files a key like "active_admin.scopes.scope_method".
|
29
29
|
def scope(*args, &block)
|
30
|
-
|
30
|
+
default_options = {show_count: namespace.scopes_show_count}
|
31
|
+
options = default_options.merge(args.extract_options!)
|
31
32
|
title = args[0] rescue nil
|
32
33
|
method = args[1] rescue nil
|
33
34
|
|
@@ -52,7 +52,7 @@ module ActiveAdmin
|
|
52
52
|
def restrict_format_access!
|
53
53
|
unless request.format.html?
|
54
54
|
presenter = active_admin_config.get_page_presenter(:index)
|
55
|
-
download_formats
|
55
|
+
download_formats = (presenter || {}).fetch(:download_links, active_admin_config.namespace.download_links)
|
56
56
|
unless build_download_formats(download_formats).include?(request.format.symbol)
|
57
57
|
raise ActiveAdmin::AccessDenied.new(current_active_admin_user, :index)
|
58
58
|
end
|
@@ -14,6 +14,8 @@ module ActiveAdmin
|
|
14
14
|
include ScopeChain
|
15
15
|
|
16
16
|
define_active_admin_callbacks :build, :create, :update, :save, :destroy
|
17
|
+
|
18
|
+
helper_method :current_scope
|
17
19
|
end
|
18
20
|
end
|
19
21
|
|
@@ -45,7 +47,6 @@ module ActiveAdmin
|
|
45
47
|
end
|
46
48
|
end
|
47
49
|
|
48
|
-
|
49
50
|
# Does the actual work of retrieving the current collection from the db.
|
50
51
|
# This is a great method to override if you would like to perform
|
51
52
|
# some additional db # work before your controller returns and
|
@@ -60,7 +61,6 @@ module ActiveAdmin
|
|
60
61
|
collection
|
61
62
|
end
|
62
63
|
|
63
|
-
|
64
64
|
# Override this method in your controllers to modify the start point
|
65
65
|
# of our searches and index.
|
66
66
|
#
|
@@ -103,7 +103,6 @@ module ActiveAdmin
|
|
103
103
|
scoped_collection.send method_for_find, params[:id]
|
104
104
|
end
|
105
105
|
|
106
|
-
|
107
106
|
# Builds, memoize and authorize a new instance of the resource. The
|
108
107
|
# actual work of building the new instance is delegated to the
|
109
108
|
# #build_new_resource method.
|
@@ -180,12 +179,10 @@ module ActiveAdmin
|
|
180
179
|
end
|
181
180
|
end
|
182
181
|
|
183
|
-
|
184
182
|
#
|
185
183
|
# Collection Helper Methods
|
186
184
|
#
|
187
185
|
|
188
|
-
|
189
186
|
# Gives the authorization library a change to pre-scope the collection.
|
190
187
|
#
|
191
188
|
# In the case of the CanCan adapter, it calls `#accessible_by` on
|
@@ -241,13 +238,15 @@ module ActiveAdmin
|
|
241
238
|
|
242
239
|
def current_scope
|
243
240
|
@current_scope ||= if params[:scope]
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
241
|
+
active_admin_config.get_scope_by_id(params[:scope])
|
242
|
+
else
|
243
|
+
active_admin_config.default_scope(self)
|
244
|
+
end
|
248
245
|
end
|
249
246
|
|
250
247
|
def apply_pagination(chain)
|
248
|
+
# skip pagination if already was paginated by scope
|
249
|
+
return chain if chain.respond_to?(:total_pages)
|
251
250
|
page_method_name = Kaminari.config.page_method_name
|
252
251
|
page = params[Kaminari.config.param_name]
|
253
252
|
|
@@ -105,7 +105,7 @@ module ActiveAdmin
|
|
105
105
|
# column :name
|
106
106
|
# end
|
107
107
|
#
|
108
|
-
def csv(options={}, &block)
|
108
|
+
def csv(options = {}, &block)
|
109
109
|
options[:resource] = config
|
110
110
|
|
111
111
|
config.csv_builder = CSVBuilder.new(options, &block)
|
@@ -192,17 +192,17 @@ module ActiveAdmin
|
|
192
192
|
:around, :skip
|
193
193
|
]
|
194
194
|
keywords = if Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR >= 1
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
195
|
+
[:action]
|
196
|
+
else
|
197
|
+
[:action, :filter]
|
198
|
+
end
|
199
199
|
|
200
200
|
keywords.each do |name|
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
201
|
+
phases.each do |action|
|
202
|
+
define_method "#{action}_#{name}" do |*args, &block|
|
203
|
+
controller.public_send "#{action}_action", *args, &block
|
204
|
+
end
|
205
|
+
end
|
206
206
|
end
|
207
207
|
|
208
208
|
# Specify which actions to create in the controller
|
data/lib/active_admin/router.rb
CHANGED
@@ -71,7 +71,7 @@ module ActiveAdmin
|
|
71
71
|
def resource_routes(config)
|
72
72
|
Proc.new do
|
73
73
|
# Builds one route for each HTTP verb passed in
|
74
|
-
build_route
|
74
|
+
build_route = proc{ |verbs, *args|
|
75
75
|
[*verbs].each{ |verb| send verb, *args }
|
76
76
|
}
|
77
77
|
# Deals with +ControllerAction+ instances
|
data/lib/active_admin/scope.rb
CHANGED
@@ -46,9 +46,9 @@ module ActiveAdmin
|
|
46
46
|
|
47
47
|
def name
|
48
48
|
case @name
|
49
|
-
|
50
|
-
|
51
|
-
|
49
|
+
when String then @name
|
50
|
+
when Symbol then @localizer ? @localizer.t(@name, scope: 'scopes') : @name.to_s.titleize
|
51
|
+
else @name
|
52
52
|
end
|
53
53
|
end
|
54
54
|
|
data/lib/active_admin/version.rb
CHANGED
@@ -8,7 +8,7 @@ module ActiveAdmin
|
|
8
8
|
end.content
|
9
9
|
end
|
10
10
|
|
11
|
-
def hidden_field_tags_for(params, options={})
|
11
|
+
def hidden_field_tags_for(params, options = {})
|
12
12
|
fields_for_params(params.to_unsafe_hash, options).map do |kv|
|
13
13
|
k, v = kv.first
|
14
14
|
hidden_field_tag k, v, id: sanitize_to_id("hidden_active_admin_#{k}")
|
@@ -78,7 +78,7 @@ module ActiveAdmin
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def add_create_another_checkbox
|
81
|
-
if %w(new create).include?(helpers.action_name) &&
|
81
|
+
if %w(new create).include?(helpers.action_name) && active_admin_config && active_admin_config.create_another
|
82
82
|
current_arbre_element.add_child(create_another_checkbox)
|
83
83
|
end
|
84
84
|
end
|
@@ -26,10 +26,10 @@ module ActiveAdmin
|
|
26
26
|
options = options.dup
|
27
27
|
|
28
28
|
# Easily set options for the button or menu
|
29
|
-
button_options
|
29
|
+
button_options = options.delete(:button) || {}
|
30
30
|
menu_options = options.delete(:menu) || {}
|
31
31
|
|
32
|
-
@button
|
32
|
+
@button = build_button(name, button_options)
|
33
33
|
@menu = build_menu(menu_options)
|
34
34
|
|
35
35
|
super(options)
|
@@ -12,7 +12,6 @@ module ActiveAdmin
|
|
12
12
|
include ActiveAdmin::ScopeChain
|
13
13
|
include ::ActiveAdmin::Helpers::Collection
|
14
14
|
|
15
|
-
|
16
15
|
def default_class_name
|
17
16
|
"scopes table_tools_segmented_control"
|
18
17
|
end
|
@@ -31,11 +30,10 @@ module ActiveAdmin
|
|
31
30
|
|
32
31
|
def build_scope(scope, options)
|
33
32
|
li class: classes_for_scope(scope) do
|
34
|
-
|
35
|
-
params = request.query_parameters.except :page, :scope, :commit, :format
|
33
|
+
params = request.query_parameters.except :page, :scope, :commit, :format
|
36
34
|
|
37
35
|
a href: url_for(scope: scope.id, params: params), class: 'table_tools_button' do
|
38
|
-
text_node scope_name
|
36
|
+
text_node scope_name(scope)
|
39
37
|
span class: 'count' do
|
40
38
|
"(#{get_scope_count(scope)})"
|
41
39
|
end if options[:scope_count] && scope.show_count
|
@@ -62,12 +60,6 @@ module ActiveAdmin
|
|
62
60
|
collection_size(scope_chain(scope, collection_before_scope))
|
63
61
|
end
|
64
62
|
|
65
|
-
def name_for_scope(scope)
|
66
|
-
case scope.name
|
67
|
-
when Proc then self.instance_exec(&scope.name).to_s
|
68
|
-
else scope.name.to_s
|
69
|
-
end
|
70
|
-
end
|
71
63
|
end
|
72
64
|
end
|
73
65
|
end
|
@@ -12,9 +12,8 @@ module ActiveAdmin
|
|
12
12
|
'status_tag'
|
13
13
|
end
|
14
14
|
|
15
|
-
# @overload status_tag(status,
|
15
|
+
# @overload status_tag(status, options = {})
|
16
16
|
# @param [String] status the status to display. One of the span classes will be an underscored version of the status.
|
17
|
-
# @param [Symbol] type type of status. Will become a class of the span. ActiveAdmin provide style for :ok, :warning and :error.
|
18
17
|
# @param [Hash] options
|
19
18
|
# @option options [String] :class to override the default class
|
20
19
|
# @option options [String] :id to override the default id
|
@@ -26,31 +25,40 @@ module ActiveAdmin
|
|
26
25
|
# # => <span class='status_tag in_progress'>In Progress</span>
|
27
26
|
#
|
28
27
|
# @example
|
29
|
-
# status_tag('active', :
|
30
|
-
# # => <span class='status_tag active
|
31
|
-
#
|
32
|
-
# @example
|
33
|
-
# status_tag('active', :ok, class: 'important', id: 'status_123', label: 'on')
|
34
|
-
# # => <span class='status_tag active ok important' id='status_123'>on</span>
|
28
|
+
# status_tag('active', class: 'important', id: 'status_123', label: 'on')
|
29
|
+
# # => <span class='status_tag active important' id='status_123'>on</span>
|
35
30
|
#
|
36
31
|
def build(*args)
|
37
32
|
options = args.extract_options!
|
38
33
|
status = args[0]
|
39
34
|
type = args[1]
|
35
|
+
|
40
36
|
label = options.delete(:label)
|
41
37
|
classes = options.delete(:class)
|
42
38
|
status = convert_to_boolean_status(status)
|
43
39
|
|
44
40
|
if status
|
45
41
|
content = label || if s = status.to_s and s.present?
|
46
|
-
|
47
|
-
|
42
|
+
I18n.t "active_admin.status_tag.#{s.downcase}", default: s.titleize
|
43
|
+
end
|
48
44
|
end
|
49
45
|
|
50
46
|
super(content, options)
|
51
47
|
|
52
48
|
add_class(status_to_class(status)) if status
|
53
|
-
|
49
|
+
|
50
|
+
if type
|
51
|
+
Deprecation.warn <<-MSG.strip_heredoc
|
52
|
+
The `type` parameter has been deprecated. Provide the "#{type}" type as
|
53
|
+
a class instead. For example, `status_tag(status, :#{type}, class: "abc")`
|
54
|
+
would change to `status_tag(status, class: "#{type} abc")`. Also note that
|
55
|
+
the "#{type}" CSS rule will be removed too, so you'll have to provide
|
56
|
+
the styles yourself. See https://github.com/activeadmin/activeadmin/blob/master/CHANGELOG.md#110-
|
57
|
+
for more information.
|
58
|
+
MSG
|
59
|
+
add_class(type.to_s)
|
60
|
+
end
|
61
|
+
|
54
62
|
add_class(classes) if classes
|
55
63
|
end
|
56
64
|
|
@@ -15,8 +15,8 @@ module ActiveAdmin
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def build_menu_item(title, options, &block)
|
18
|
-
|
19
|
-
li { link_to title, "##{
|
18
|
+
fragment = options.fetch(:id, title.parameterize)
|
19
|
+
li { link_to title, "##{fragment}" }
|
20
20
|
end
|
21
21
|
|
22
22
|
def build_content_item(title, options, &block)
|
@@ -89,7 +89,6 @@ module ActiveAdmin
|
|
89
89
|
@title
|
90
90
|
end
|
91
91
|
|
92
|
-
|
93
92
|
# Setter method for the configuration of the body
|
94
93
|
#
|
95
94
|
def body(method = nil, &block)
|
@@ -124,7 +123,7 @@ module ActiveAdmin
|
|
124
123
|
if @title
|
125
124
|
h3 do
|
126
125
|
a(href: resource_path(post)) do
|
127
|
-
|
126
|
+
render_method_on_post_or_call_proc post, @title
|
128
127
|
end
|
129
128
|
end
|
130
129
|
else
|
@@ -25,7 +25,7 @@ module ActiveAdmin
|
|
25
25
|
# end
|
26
26
|
# ```
|
27
27
|
#
|
28
|
-
|
28
|
+
class IndexAsGrid < ActiveAdmin::Component
|
29
29
|
|
30
30
|
def build(page_presenter, collection)
|
31
31
|
@page_presenter = page_presenter
|
@@ -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?
|
@@ -159,6 +159,24 @@ module ActiveAdmin
|
|
159
159
|
# end
|
160
160
|
# ```
|
161
161
|
#
|
162
|
+
# ## Custom sorting
|
163
|
+
#
|
164
|
+
# It is also possible to use database specific expressions and options for sorting by column
|
165
|
+
#
|
166
|
+
# ```ruby
|
167
|
+
# order_by(:title) do |order_clause|
|
168
|
+
# if order_clause.order == 'desc'
|
169
|
+
# [order_clause.to_sql, 'NULLS LAST'].join(' ')
|
170
|
+
# else
|
171
|
+
# [order_clause.to_sql, 'NULLS FIRST'].join(' ')
|
172
|
+
# end
|
173
|
+
# end
|
174
|
+
#
|
175
|
+
# index do
|
176
|
+
# column :title
|
177
|
+
# end
|
178
|
+
# ```
|
179
|
+
#
|
162
180
|
# ## Associated Sorting
|
163
181
|
#
|
164
182
|
# You're normally able to sort columns alphabetically, but by default you
|
@@ -368,6 +386,6 @@ module ActiveAdmin
|
|
368
386
|
end
|
369
387
|
end # IndexTableFor
|
370
388
|
|
371
|
-
end
|
389
|
+
end
|
372
390
|
end
|
373
391
|
end
|