activeadmin 1.4.2 → 2.9.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +501 -157
- data/CONTRIBUTING.md +57 -72
- data/README.md +47 -14
- data/app/assets/javascripts/active_admin/base.js +517 -0
- data/app/assets/stylesheets/active_admin/_base.scss +29 -29
- data/app/assets/stylesheets/active_admin/_forms.scss +2 -14
- data/app/assets/stylesheets/active_admin/_header.scss +40 -8
- data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
- data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
- data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
- data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
- data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
- data/app/assets/stylesheets/active_admin/mixins/_variables.scss +8 -0
- data/app/assets/stylesheets/active_admin/print.scss +2 -2
- data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
- data/app/javascript/active_admin/base.js +28 -0
- data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
- data/app/javascript/active_admin/ext/jquery.js +9 -0
- data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
- data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
- data/app/javascript/active_admin/initializers/datepicker.js +16 -0
- data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
- data/app/javascript/active_admin/initializers/filters.js +10 -0
- data/app/javascript/active_admin/initializers/has-many.js +95 -0
- data/app/javascript/active_admin/initializers/per-page.js +13 -0
- data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
- data/app/javascript/active_admin/initializers/tabs.js +6 -0
- data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
- data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
- data/app/javascript/active_admin/lib/filters.js +39 -0
- data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
- data/app/javascript/active_admin/lib/per-page.js +38 -0
- data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
- data/app/javascript/active_admin/lib/utils.js +40 -0
- data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
- data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
- data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
- 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 -2
- data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
- data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
- data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
- data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
- data/app/views/layouts/active_admin_logged_out.html.erb +16 -6
- data/config/locales/ar.yml +9 -8
- data/config/locales/az.yml +138 -0
- data/config/locales/bg.yml +1 -1
- data/config/locales/bs.yml +1 -0
- data/config/locales/ca.yml +1 -1
- data/config/locales/cs.yml +1 -0
- data/config/locales/da.yml +1 -0
- data/config/locales/de-CH.yml +1 -0
- data/config/locales/de.yml +19 -0
- data/config/locales/el.yml +1 -0
- data/config/locales/en-CA.yml +4 -3
- data/config/locales/en-GB.yml +4 -3
- data/config/locales/en.yml +4 -3
- data/config/locales/eo.yml +1 -0
- data/config/locales/es-MX.yml +3 -1
- data/config/locales/es.yml +6 -5
- data/config/locales/fa.yml +1 -0
- data/config/locales/fi.yml +1 -0
- data/config/locales/fr.yml +6 -5
- data/config/locales/he.yml +1 -1
- data/config/locales/hr.yml +1 -0
- data/config/locales/hu.yml +5 -0
- data/config/locales/id.yml +1 -0
- data/config/locales/it.yml +19 -0
- data/config/locales/ja.yml +4 -3
- data/config/locales/ko.yml +1 -0
- data/config/locales/lt.yml +3 -2
- data/config/locales/lv.yml +3 -2
- data/config/locales/mk.yml +134 -0
- data/config/locales/nb.yml +1 -0
- data/config/locales/nl.yml +1 -0
- data/config/locales/pl.yml +1 -0
- data/config/locales/pt-BR.yml +1 -0
- data/config/locales/pt-PT.yml +1 -0
- data/config/locales/ro.yml +1 -0
- data/config/locales/ru.yml +1 -0
- data/config/locales/sk.yml +60 -0
- data/config/locales/sv-SE.yml +1 -0
- data/config/locales/tr.yml +1 -0
- data/config/locales/uk.yml +3 -0
- data/config/locales/vi.yml +7 -5
- data/config/locales/zh-CN.yml +1 -0
- data/config/locales/zh-TW.yml +1 -0
- data/docs/0-installation.md +28 -4
- data/docs/1-general-configuration.md +20 -0
- data/docs/11-decorators.md +16 -5
- data/docs/12-arbre-components.md +13 -0
- data/docs/13-authorization-adapter.md +6 -6
- data/docs/2-resource-customization.md +11 -2
- data/docs/3-index-pages.md +1 -1
- data/docs/3-index-pages/index-as-table.md +7 -0
- data/docs/5-forms.md +6 -1
- data/docs/6-show-pages.md +12 -0
- data/docs/9-batch-actions.md +2 -2
- data/docs/CNAME +1 -1
- data/docs/Gemfile +2 -3
- data/docs/Gemfile.lock +126 -116
- data/docs/_config.yml +2 -0
- data/docs/_includes/top-menu.html +2 -2
- data/docs/documentation.md +1 -1
- data/docs/index.html +110 -9
- data/docs/stylesheets/main.css +29 -0
- data/lib/active_admin.rb +67 -63
- data/lib/active_admin/application.rb +20 -27
- data/lib/active_admin/application_settings.rb +6 -3
- data/lib/active_admin/asset_registration.rb +0 -8
- data/lib/active_admin/authorization_adapter.rb +3 -3
- data/lib/active_admin/base_controller.rb +10 -10
- data/lib/active_admin/base_controller/authorization.rb +15 -15
- data/lib/active_admin/batch_actions/controller.rb +5 -5
- data/lib/active_admin/batch_actions/resource_extension.rb +15 -10
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +3 -3
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +6 -6
- data/lib/active_admin/batch_actions/views/selection_cells.rb +3 -3
- data/lib/active_admin/callbacks.rb +1 -1
- data/lib/active_admin/cancan_adapter.rb +1 -1
- data/lib/active_admin/collection_decorator.rb +31 -0
- data/lib/active_admin/controller_action.rb +2 -1
- data/lib/active_admin/csv_builder.rb +14 -9
- data/lib/active_admin/dependency.rb +13 -85
- data/lib/active_admin/devise.rb +5 -5
- data/lib/active_admin/dsl.rb +2 -9
- data/lib/active_admin/dynamic_settings_node.rb +2 -2
- data/lib/active_admin/engine.rb +10 -8
- data/lib/active_admin/error.rb +4 -4
- data/lib/active_admin/filters.rb +7 -7
- data/lib/active_admin/filters/active.rb +1 -1
- data/lib/active_admin/filters/active_filter.rb +10 -10
- data/lib/active_admin/filters/active_sidebar.rb +9 -5
- data/lib/active_admin/filters/forms.rb +7 -7
- data/lib/active_admin/filters/formtastic_addons.rb +2 -7
- data/lib/active_admin/filters/resource_extension.rb +28 -4
- data/lib/active_admin/form_builder.rb +26 -22
- data/lib/active_admin/generators/boilerplate.rb +12 -4
- data/lib/active_admin/helpers/optional_display.rb +2 -2
- data/lib/active_admin/helpers/scope_chain.rb +1 -0
- data/lib/active_admin/inputs/datepicker_input.rb +2 -2
- data/lib/active_admin/inputs/filters/base.rb +1 -1
- data/lib/active_admin/inputs/filters/base/search_method_select.rb +6 -6
- data/lib/active_admin/inputs/filters/boolean_input.rb +1 -1
- data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -1
- data/lib/active_admin/inputs/filters/date_range_input.rb +15 -12
- data/lib/active_admin/inputs/filters/select_input.rb +2 -2
- data/lib/active_admin/localizers.rb +1 -1
- data/lib/active_admin/localizers/resource_localizer.rb +3 -3
- data/lib/active_admin/menu.rb +6 -3
- data/lib/active_admin/menu_item.rb +7 -7
- data/lib/active_admin/namespace.rb +12 -12
- data/lib/active_admin/namespace_settings.rb +27 -8
- data/lib/active_admin/order_clause.rb +2 -2
- data/lib/active_admin/orm/active_record.rb +1 -1
- data/lib/active_admin/orm/active_record/comments.rb +23 -23
- data/lib/active_admin/orm/active_record/comments/comment.rb +4 -4
- data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +29 -24
- data/lib/active_admin/page.rb +1 -1
- data/lib/active_admin/page_dsl.rb +1 -1
- data/lib/active_admin/page_presenter.rb +2 -1
- data/lib/active_admin/pundit_adapter.rb +22 -9
- data/lib/active_admin/resource.rb +34 -20
- data/lib/active_admin/resource/action_items.rb +5 -5
- data/lib/active_admin/resource/attributes.rb +8 -5
- data/lib/active_admin/resource/belongs_to.rb +8 -3
- data/lib/active_admin/resource/controllers.rb +1 -1
- data/lib/active_admin/resource/menu.rb +5 -5
- data/lib/active_admin/resource/model.rb +15 -0
- data/lib/active_admin/resource/naming.rb +5 -5
- data/lib/active_admin/resource/routes.rb +25 -14
- data/lib/active_admin/resource/scope_to.rb +7 -7
- data/lib/active_admin/resource/scopes.rb +3 -3
- data/lib/active_admin/resource/sidebars.rb +2 -2
- data/lib/active_admin/resource_collection.rb +2 -2
- data/lib/active_admin/resource_controller.rb +13 -10
- data/lib/active_admin/resource_controller/action_builder.rb +10 -0
- data/lib/active_admin/resource_controller/data_access.rb +1 -1
- data/lib/active_admin/resource_controller/decorators.rb +7 -29
- data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -0
- data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/resource_controller/streaming.rb +7 -6
- data/lib/active_admin/resource_dsl.rb +11 -9
- data/lib/active_admin/router.rb +3 -2
- data/lib/active_admin/scope.rb +15 -11
- data/lib/active_admin/settings_node.rb +1 -1
- data/lib/active_admin/sidebar_section.rb +3 -1
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +17 -17
- data/lib/active_admin/view_helpers.rb +1 -1
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +5 -5
- data/lib/active_admin/view_helpers/display_helper.rb +16 -7
- data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
- data/lib/active_admin/view_helpers/fields_for.rb +2 -2
- data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
- data/lib/active_admin/views.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +12 -6
- data/lib/active_admin/views/components/attributes_table.rb +8 -8
- data/lib/active_admin/views/components/blank_slate.rb +1 -1
- data/lib/active_admin/views/components/dropdown_menu.rb +8 -8
- data/lib/active_admin/views/components/index_list.rb +3 -3
- data/lib/active_admin/views/components/menu.rb +1 -1
- data/lib/active_admin/views/components/menu_item.rb +4 -4
- data/lib/active_admin/views/components/paginated_collection.rb +21 -20
- data/lib/active_admin/views/components/panel.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +7 -5
- data/lib/active_admin/views/components/sidebar_section.rb +0 -3
- data/lib/active_admin/views/components/site_title.rb +1 -1
- data/lib/active_admin/views/components/status_tag.rb +13 -26
- data/lib/active_admin/views/components/table_for.rb +20 -19
- data/lib/active_admin/views/components/tabs.rb +13 -4
- data/lib/active_admin/views/footer.rb +3 -2
- data/lib/active_admin/views/header.rb +2 -2
- data/lib/active_admin/views/index_as_blog.rb +1 -1
- data/lib/active_admin/views/index_as_grid.rb +1 -1
- data/lib/active_admin/views/index_as_table.rb +27 -19
- data/lib/active_admin/views/pages/base.rb +18 -11
- data/lib/active_admin/views/pages/index.rb +15 -13
- data/lib/active_admin/views/tabbed_navigation.rb +2 -2
- data/lib/active_admin/views/title_bar.rb +1 -1
- data/lib/activeadmin.rb +1 -1
- data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
- data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
- data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
- data/lib/generators/active_admin/devise/devise_generator.rb +5 -5
- data/lib/generators/active_admin/install/install_generator.rb +18 -8
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
- data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
- data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
- data/lib/generators/active_admin/page/page_generator.rb +1 -1
- data/lib/generators/active_admin/resource/resource_generator.rb +3 -3
- data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
- data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
- data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
- data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
- data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
- data/lib/ransack_ext.rb +9 -9
- data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
- data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
- data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
- metadata +108 -127
- data/.circleci/config.yml +0 -467
- data/.github/ISSUE_TEMPLATE.md +0 -20
- data/.gitignore +0 -46
- data/.mdlrc +0 -1
- data/.rspec +0 -1
- data/.rspec_parallel +0 -2
- data/.rubocop.yml +0 -94
- data/.simplecov +0 -11
- data/.yardopts +0 -7
- data/Gemfile +0 -10
- data/Gemfile.common +0 -53
- data/Gemfile.lock +0 -431
- data/Rakefile +0 -23
- data/activeadmin.gemspec +0 -32
- data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
- data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
- data/app/assets/images/active_admin/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
- data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
- data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
- data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
- data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
- data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
- data/bin/install_chromedriver.sh +0 -17
- data/codecov.yml +0 -25
- data/config/i18n-tasks.yml +0 -26
- data/config/mdl_style.rb +0 -11
- data/cucumber.yml +0 -7
- data/gemfiles/rails_42.gemfile +0 -10
- data/gemfiles/rails_42.gemfile.lock +0 -410
- data/gemfiles/rails_50.gemfile +0 -10
- data/gemfiles/rails_50.gemfile.lock +0 -424
- data/gemfiles/rails_51.gemfile +0 -10
- data/gemfiles/rails_51.gemfile.lock +0 -423
- data/lib/active_admin/event.rb +0 -24
- data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
- data/lib/active_admin/reloader.rb +0 -25
- data/lib/bug_report_templates/active_admin_master.rb +0 -111
- data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
- data/tasks/application_generator.rb +0 -48
- data/tasks/docs.rake +0 -64
- data/tasks/gemfiles.rake +0 -8
- data/tasks/lint.rake +0 -110
- data/tasks/local.rake +0 -27
- data/tasks/test.rake +0 -43
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
module ActiveAdmin
|
|
2
2
|
module Dependency
|
|
3
3
|
module Requirements
|
|
4
|
-
DEVISE =
|
|
4
|
+
DEVISE = ">= 4.0", "< 5"
|
|
5
5
|
end
|
|
6
6
|
|
|
7
7
|
# Provides a clean interface to check for gem dependencies at runtime.
|
|
8
8
|
#
|
|
9
|
-
# ActiveAdmin::Dependency.
|
|
10
|
-
# => #<ActiveAdmin::Dependency::Matcher for
|
|
9
|
+
# ActiveAdmin::Dependency.rails
|
|
10
|
+
# => #<ActiveAdmin::Dependency::Matcher for rails 6.0.3.2>
|
|
11
11
|
#
|
|
12
|
-
# ActiveAdmin::Dependency.
|
|
12
|
+
# ActiveAdmin::Dependency.rails?
|
|
13
13
|
# => true
|
|
14
14
|
#
|
|
15
|
-
# ActiveAdmin::Dependency.
|
|
15
|
+
# ActiveAdmin::Dependency.rails? '>= 6.1'
|
|
16
16
|
# => false
|
|
17
17
|
#
|
|
18
|
-
# ActiveAdmin::Dependency.
|
|
18
|
+
# ActiveAdmin::Dependency.rails? '= 6.0.3.2'
|
|
19
19
|
# => true
|
|
20
20
|
#
|
|
21
|
-
# ActiveAdmin::Dependency.
|
|
21
|
+
# ActiveAdmin::Dependency.rails? '~> 6.0.3'
|
|
22
22
|
# => true
|
|
23
23
|
#
|
|
24
|
-
# ActiveAdmin::Dependency.rails? '>=
|
|
24
|
+
# ActiveAdmin::Dependency.rails? '>= 6.0.3', '<= 6.1.0'
|
|
25
25
|
# => true
|
|
26
26
|
#
|
|
27
27
|
# ActiveAdmin::Dependency.rails! '5'
|
|
@@ -42,9 +42,9 @@ module ActiveAdmin
|
|
|
42
42
|
# => false
|
|
43
43
|
#
|
|
44
44
|
def self.method_missing(name, *args)
|
|
45
|
-
if name[-1] ==
|
|
45
|
+
if name[-1] == "?"
|
|
46
46
|
Matcher.new(name[0..-2]).match? args
|
|
47
|
-
elsif name[-1] ==
|
|
47
|
+
elsif name[-1] == "!"
|
|
48
48
|
Matcher.new(name[0..-2]).match! args
|
|
49
49
|
else
|
|
50
50
|
Matcher.new name.to_s
|
|
@@ -55,8 +55,8 @@ module ActiveAdmin
|
|
|
55
55
|
Matcher.new name.to_s
|
|
56
56
|
end
|
|
57
57
|
|
|
58
|
-
def self.
|
|
59
|
-
rails >=
|
|
58
|
+
def self.supports_zeitwerk?
|
|
59
|
+
rails >= "6.0.0.beta3" && RUBY_ENGINE != "jruby"
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
class Matcher
|
|
@@ -91,81 +91,9 @@ module ActiveAdmin
|
|
|
91
91
|
end
|
|
92
92
|
|
|
93
93
|
def inspect
|
|
94
|
-
info = spec ? "#{spec.name} #{spec.version}" :
|
|
94
|
+
info = spec ? "#{spec.name} #{spec.version}" : "(missing)"
|
|
95
95
|
"<ActiveAdmin::Dependency::Matcher for #{info}>"
|
|
96
96
|
end
|
|
97
|
-
|
|
98
|
-
def adapter
|
|
99
|
-
@adapter ||= Adapter.const_get(@name.camelize).new self
|
|
100
|
-
end
|
|
101
|
-
|
|
102
|
-
def method_missing(method, *args, &block)
|
|
103
|
-
if respond_to_missing?(method)
|
|
104
|
-
adapter.send method, *args, &block
|
|
105
|
-
else
|
|
106
|
-
super
|
|
107
|
-
end
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
def respond_to_missing?(method, include_private = false)
|
|
111
|
-
adapter.respond_to?(method) || super
|
|
112
|
-
rescue NameError
|
|
113
|
-
# 🐾
|
|
114
|
-
end
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
# Dependency adapters provide an easy way to wrap the conditional logic
|
|
118
|
-
# necessary to support multiple versions of a gem.
|
|
119
|
-
#
|
|
120
|
-
# ActiveAdmin::Dependency.rails.adapter.parameterize 'a b'
|
|
121
|
-
# => 'a_b'
|
|
122
|
-
#
|
|
123
|
-
# ActiveAdmin::Dependency.rails.parameterize 'a b'
|
|
124
|
-
# => 'a_b'
|
|
125
|
-
#
|
|
126
|
-
# ActiveAdmin::Dependency.devise.adapter
|
|
127
|
-
# -> NameError: uninitialized constant ActiveAdmin::Dependency::Adapter::Devise
|
|
128
|
-
#
|
|
129
|
-
module Adapter
|
|
130
|
-
class Base
|
|
131
|
-
def initialize(version)
|
|
132
|
-
@version = version
|
|
133
|
-
end
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
class Rails < Base
|
|
137
|
-
def optional_belongs_to_flag
|
|
138
|
-
if Dependency.rails5?
|
|
139
|
-
{ optional: true }
|
|
140
|
-
else
|
|
141
|
-
{ required: false }
|
|
142
|
-
end
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
def parameterize(string)
|
|
146
|
-
if Dependency.rails5?
|
|
147
|
-
string.parameterize separator: '_'
|
|
148
|
-
else
|
|
149
|
-
string.parameterize '_'
|
|
150
|
-
end
|
|
151
|
-
end
|
|
152
|
-
|
|
153
|
-
def redirect_back(controller, fallback_location)
|
|
154
|
-
controller.instance_exec do
|
|
155
|
-
if Dependency.rails5?
|
|
156
|
-
redirect_back fallback_location: fallback_location
|
|
157
|
-
elsif controller.request.headers.key? 'HTTP_REFERER'
|
|
158
|
-
redirect_to :back
|
|
159
|
-
else
|
|
160
|
-
redirect_to fallback_location
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
end
|
|
164
|
-
|
|
165
|
-
def render_key
|
|
166
|
-
Dependency.rails5? ? :body : :text
|
|
167
|
-
end
|
|
168
|
-
end
|
|
169
97
|
end
|
|
170
98
|
|
|
171
99
|
end
|
data/lib/active_admin/devise.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
ActiveAdmin::Dependency.devise! ActiveAdmin::Dependency::Requirements::DEVISE
|
|
2
2
|
|
|
3
|
-
require
|
|
3
|
+
require "devise"
|
|
4
4
|
|
|
5
5
|
module ActiveAdmin
|
|
6
6
|
module Devise
|
|
@@ -9,7 +9,7 @@ module ActiveAdmin
|
|
|
9
9
|
{
|
|
10
10
|
path: ActiveAdmin.application.default_namespace || "/",
|
|
11
11
|
controllers: ActiveAdmin::Devise.controllers,
|
|
12
|
-
path_names: { sign_in:
|
|
12
|
+
path_names: { sign_in: "login", sign_out: "logout" },
|
|
13
13
|
sign_out_via: [*::Devise.sign_out_via, ActiveAdmin.application.logout_link_method].uniq
|
|
14
14
|
}
|
|
15
15
|
end
|
|
@@ -27,14 +27,14 @@ module ActiveAdmin
|
|
|
27
27
|
module Controller
|
|
28
28
|
extend ::ActiveSupport::Concern
|
|
29
29
|
included do
|
|
30
|
-
layout
|
|
30
|
+
layout "active_admin_logged_out"
|
|
31
31
|
helper ::ActiveAdmin::ViewHelpers
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
# Redirect to the default namespace on logout
|
|
35
35
|
def root_path
|
|
36
36
|
namespace = ActiveAdmin.application.default_namespace.presence
|
|
37
|
-
root_path_method = [namespace, :root_path].compact.join(
|
|
37
|
+
root_path_method = [namespace, :root_path].compact.join("_")
|
|
38
38
|
|
|
39
39
|
path = if Helpers::Routes.respond_to? root_path_method
|
|
40
40
|
Helpers::Routes.send root_path_method
|
|
@@ -45,7 +45,7 @@ module ActiveAdmin
|
|
|
45
45
|
|
|
46
46
|
# NOTE: `relative_url_root` is deprecated by Rails.
|
|
47
47
|
# Remove prefix here if it is removed completely.
|
|
48
|
-
prefix = Rails.configuration.action_controller[:relative_url_root] ||
|
|
48
|
+
prefix = Rails.configuration.action_controller[:relative_url_root] || ""
|
|
49
49
|
prefix + path
|
|
50
50
|
end
|
|
51
51
|
end
|
data/lib/active_admin/dsl.rb
CHANGED
|
@@ -83,14 +83,7 @@ module ActiveAdmin
|
|
|
83
83
|
# this action item on.
|
|
84
84
|
# :except: A single or array of controller actions not to
|
|
85
85
|
# display this action item on.
|
|
86
|
-
def action_item(name
|
|
87
|
-
if name.is_a?(Hash)
|
|
88
|
-
options = name
|
|
89
|
-
name = nil
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
Deprecation.warn "using `action_item` without a name is deprecated! Use `action_item(:edit)`." unless name
|
|
93
|
-
|
|
86
|
+
def action_item(name, options = {}, &block)
|
|
94
87
|
config.add_action_item(name, options, &block)
|
|
95
88
|
end
|
|
96
89
|
|
|
@@ -108,7 +101,7 @@ module ActiveAdmin
|
|
|
108
101
|
def batch_action(title, options = {}, &block)
|
|
109
102
|
# Create symbol & title information
|
|
110
103
|
if title.is_a? String
|
|
111
|
-
sym = title.titleize.tr(
|
|
104
|
+
sym = title.titleize.tr(" ", "").underscore.to_sym
|
|
112
105
|
else
|
|
113
106
|
sym = title
|
|
114
107
|
title = sym.to_s.titleize
|
data/lib/active_admin/engine.rb
CHANGED
|
@@ -2,20 +2,22 @@ module ActiveAdmin
|
|
|
2
2
|
class Engine < ::Rails::Engine
|
|
3
3
|
initializer "active_admin.load_app_path" do |app|
|
|
4
4
|
ActiveAdmin::Application.setting :app_path, app.root
|
|
5
|
-
ActiveAdmin::Application.setting :load_paths, [File.expand_path(
|
|
5
|
+
ActiveAdmin::Application.setting :load_paths, [File.expand_path("app/admin", app.root)]
|
|
6
6
|
end
|
|
7
7
|
|
|
8
8
|
initializer "active_admin.precompile", group: :all do |app|
|
|
9
|
-
ActiveAdmin.application.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
unless ActiveAdmin.application.use_webpacker
|
|
10
|
+
ActiveAdmin.application.stylesheets.each do |path, _|
|
|
11
|
+
app.config.assets.precompile << path
|
|
12
|
+
end
|
|
13
|
+
ActiveAdmin.application.javascripts.each do |path|
|
|
14
|
+
app.config.assets.precompile << path
|
|
15
|
+
end
|
|
14
16
|
end
|
|
15
17
|
end
|
|
16
18
|
|
|
17
|
-
initializer
|
|
18
|
-
require
|
|
19
|
+
initializer "active_admin.routes" do
|
|
20
|
+
require "active_admin/helpers/routes/url_helpers"
|
|
19
21
|
end
|
|
20
22
|
end
|
|
21
23
|
end
|
data/lib/active_admin/error.rb
CHANGED
|
@@ -6,7 +6,9 @@ module ActiveAdmin
|
|
|
6
6
|
attr_reader :user, :action, :subject
|
|
7
7
|
|
|
8
8
|
def initialize(user, action, subject = nil)
|
|
9
|
-
@user
|
|
9
|
+
@user = user
|
|
10
|
+
@action = action
|
|
11
|
+
@subject = subject
|
|
10
12
|
|
|
11
13
|
super()
|
|
12
14
|
end
|
|
@@ -22,7 +24,7 @@ module ActiveAdmin
|
|
|
22
24
|
class ErrorLoading < Error
|
|
23
25
|
# Locates the most recent file and line from the caught exception's backtrace.
|
|
24
26
|
def find_cause(folder, backtrace)
|
|
25
|
-
backtrace.grep(/\/(#{folder}\/.*\.rb):(\d+)/){ [$1, $2] }.first
|
|
27
|
+
backtrace.grep(/\/(#{folder}\/.*\.rb):(\d+)/) { [$1, $2] }.first
|
|
26
28
|
end
|
|
27
29
|
end
|
|
28
30
|
|
|
@@ -43,8 +45,6 @@ module ActiveAdmin
|
|
|
43
45
|
raise new exception
|
|
44
46
|
end
|
|
45
47
|
|
|
46
|
-
private
|
|
47
|
-
|
|
48
48
|
def self.database_error_classes
|
|
49
49
|
@classes ||= []
|
|
50
50
|
end
|
data/lib/active_admin/filters.rb
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
1
|
+
require "active_admin/filters/dsl"
|
|
2
|
+
require "active_admin/filters/resource_extension"
|
|
3
|
+
require "active_admin/filters/formtastic_addons"
|
|
4
|
+
require "active_admin/filters/forms"
|
|
5
|
+
require "active_admin/helpers/optional_display"
|
|
6
|
+
require "active_admin/filters/active_sidebar"
|
|
7
7
|
|
|
8
8
|
# Add our Extensions
|
|
9
9
|
ActiveAdmin::ResourceDSL.send :include, ActiveAdmin::Filters::DSL
|
|
10
|
-
ActiveAdmin::Resource.send
|
|
10
|
+
ActiveAdmin::Resource.send :include, ActiveAdmin::Filters::ResourceExtension
|
|
11
11
|
ActiveAdmin::ViewHelpers.send :include, ActiveAdmin::Filters::ViewHelper
|
|
@@ -26,9 +26,10 @@ module ActiveAdmin
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def label
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
translated_predicate = predicate_name.downcase
|
|
30
|
+
if filter_label && filter_label.is_a?(Proc)
|
|
31
|
+
"#{filter_label.call} #{translated_predicate}"
|
|
32
|
+
elsif filter_label
|
|
32
33
|
"#{filter_label} #{translated_predicate}"
|
|
33
34
|
elsif related_class
|
|
34
35
|
"#{related_class_name} #{translated_predicate}"
|
|
@@ -38,8 +39,9 @@ module ActiveAdmin
|
|
|
38
39
|
end
|
|
39
40
|
|
|
40
41
|
def predicate_name
|
|
41
|
-
I18n.t(
|
|
42
|
-
|
|
42
|
+
I18n.t(
|
|
43
|
+
"active_admin.filters.predicates.#{condition.predicate.name}",
|
|
44
|
+
default: ransack_predicate_name)
|
|
43
45
|
end
|
|
44
46
|
|
|
45
47
|
def html_options
|
|
@@ -65,7 +67,7 @@ module ActiveAdmin
|
|
|
65
67
|
def filter_label
|
|
66
68
|
return unless filter
|
|
67
69
|
|
|
68
|
-
filter[:label]
|
|
70
|
+
filter[:label] || I18n.t(name, scope: ["formtastic", "labels"], default: nil)
|
|
69
71
|
end
|
|
70
72
|
|
|
71
73
|
#@return Ransack::Nodes::Attribute
|
|
@@ -82,7 +84,7 @@ module ActiveAdmin
|
|
|
82
84
|
end
|
|
83
85
|
|
|
84
86
|
def find_class?
|
|
85
|
-
[
|
|
87
|
+
["eq", "in"].include? condition.predicate.arel_predicate
|
|
86
88
|
end
|
|
87
89
|
|
|
88
90
|
# detect related class for Ransack::Nodes::Attribute
|
|
@@ -95,7 +97,7 @@ module ActiveAdmin
|
|
|
95
97
|
end
|
|
96
98
|
|
|
97
99
|
def filter
|
|
98
|
-
resource.filters[name.to_sym]
|
|
100
|
+
resource.filters[name.to_sym] || resource.filters[condition.key.to_sym]
|
|
99
101
|
end
|
|
100
102
|
|
|
101
103
|
def related_primary_key
|
|
@@ -111,8 +113,6 @@ module ActiveAdmin
|
|
|
111
113
|
@predicate_association
|
|
112
114
|
end
|
|
113
115
|
|
|
114
|
-
private
|
|
115
|
-
|
|
116
116
|
def find_predicate_association
|
|
117
117
|
condition_attribute.klass.reflect_on_all_associations.
|
|
118
118
|
reject { |r| r.options[:polymorphic] }. #skip polymorphic
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "active_admin/filters/active"
|
|
2
2
|
|
|
3
3
|
module ActiveAdmin
|
|
4
4
|
module Filters
|
|
5
5
|
class ActiveSidebar < ActiveAdmin::SidebarSection
|
|
6
6
|
|
|
7
7
|
def initialize
|
|
8
|
-
super
|
|
8
|
+
super "search_status", sidebar_options
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def block
|
|
@@ -13,11 +13,11 @@ module ActiveAdmin
|
|
|
13
13
|
active_filters = ActiveAdmin::Filters::Active.new(active_admin_config, assigns[:search])
|
|
14
14
|
span do
|
|
15
15
|
if current_scope
|
|
16
|
-
h4 I18n.t("active_admin.search_status.current_scope"), style:
|
|
17
|
-
b scope_name(current_scope), class:
|
|
16
|
+
h4 I18n.t("active_admin.search_status.current_scope"), style: "display: inline"
|
|
17
|
+
b scope_name(current_scope), class: "current_scope_name", style: "display: inline"
|
|
18
18
|
end
|
|
19
19
|
div style: "margin-top: 10px" do
|
|
20
|
-
h4 I18n.t("active_admin.search_status.current_filters"), style:
|
|
20
|
+
h4 I18n.t("active_admin.search_status.current_filters"), style: "margin-bottom: 10px"
|
|
21
21
|
ul do
|
|
22
22
|
if active_filters.filters.blank?
|
|
23
23
|
li I18n.t("active_admin.search_status.no_current_filters")
|
|
@@ -39,6 +39,10 @@ module ActiveAdmin
|
|
|
39
39
|
end
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
+
def title
|
|
43
|
+
I18n.t("active_admin.search_status.headline")
|
|
44
|
+
end
|
|
45
|
+
|
|
42
46
|
protected
|
|
43
47
|
|
|
44
48
|
def sidebar_options
|
|
@@ -48,15 +48,15 @@ module ActiveAdmin
|
|
|
48
48
|
def active_admin_filters_form_for(search, filters, options = {})
|
|
49
49
|
defaults = { builder: ActiveAdmin::Filters::FormBuilder,
|
|
50
50
|
url: collection_path,
|
|
51
|
-
html: {class:
|
|
52
|
-
required = { html: {method: :get},
|
|
51
|
+
html: { class: "filter_form" } }
|
|
52
|
+
required = { html: { method: :get },
|
|
53
53
|
as: :q }
|
|
54
|
-
options
|
|
54
|
+
options = defaults.deep_merge(options).deep_merge(required)
|
|
55
55
|
|
|
56
56
|
form_for search, options do |f|
|
|
57
57
|
filters.each do |attribute, opts|
|
|
58
|
-
next if opts.key?(:if)
|
|
59
|
-
next if opts.key?(:unless) &&
|
|
58
|
+
next if opts.key?(:if) && !call_method_or_proc_on(self, opts[:if])
|
|
59
|
+
next if opts.key?(:unless) && call_method_or_proc_on(self, opts[:unless])
|
|
60
60
|
|
|
61
61
|
filter_opts = opts.except(:if, :unless)
|
|
62
62
|
filter_opts[:input_html] = instance_exec(&filter_opts[:input_html]) if filter_opts[:input_html].is_a?(Proc)
|
|
@@ -65,8 +65,8 @@ module ActiveAdmin
|
|
|
65
65
|
end
|
|
66
66
|
|
|
67
67
|
buttons = content_tag :div, class: "buttons" do
|
|
68
|
-
f.submit(I18n.t(
|
|
69
|
-
link_to(I18n.t(
|
|
68
|
+
f.submit(I18n.t("active_admin.filters.buttons.filter")) +
|
|
69
|
+
link_to(I18n.t("active_admin.filters.buttons.clear"), "#", class: "clear_filters_btn") +
|
|
70
70
|
hidden_field_tags_for(params, except: except_hidden_fields)
|
|
71
71
|
end
|
|
72
72
|
|
|
@@ -37,7 +37,7 @@ module ActiveAdmin
|
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def polymorphic_foreign_type?(method)
|
|
40
|
-
klass.reflect_on_all_associations.select{ |r| r.macro == :belongs_to && r.options[:polymorphic] }
|
|
40
|
+
klass.reflect_on_all_associations.select { |r| r.macro == :belongs_to && r.options[:polymorphic] }
|
|
41
41
|
.map(&:foreign_type).include? method.to_s
|
|
42
42
|
end
|
|
43
43
|
|
|
@@ -54,7 +54,7 @@ module ActiveAdmin
|
|
|
54
54
|
end
|
|
55
55
|
|
|
56
56
|
def seems_searchable?
|
|
57
|
-
has_predicate? || scope?
|
|
57
|
+
column_for(method).nil? && (has_predicate? || scope?)
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
# If the given method has a predicate (like _eq or _lteq), it's pretty
|
|
@@ -63,11 +63,6 @@ module ActiveAdmin
|
|
|
63
63
|
!!Ransack::Predicate.detect_from_string(method.to_s)
|
|
64
64
|
end
|
|
65
65
|
|
|
66
|
-
# Ransack lets you define custom search methods, called ransackers.
|
|
67
|
-
def ransacker?
|
|
68
|
-
klass._ransackers.key? method.to_s
|
|
69
|
-
end
|
|
70
|
-
|
|
71
66
|
# Ransack supports exposing selected scopes on your model for advanced searches.
|
|
72
67
|
def scope?
|
|
73
68
|
context = Ransack::Context.for klass
|