activeadmin 1.4.2 → 2.3.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.

Files changed (226) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +306 -144
  3. data/CONTRIBUTING.md +21 -16
  4. data/README.md +44 -11
  5. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  6. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  8. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  9. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  10. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  11. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  12. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
  13. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  14. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  15. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  16. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  17. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  18. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  19. data/app/assets/stylesheets/active_admin/_forms.scss +2 -14
  20. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  21. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  23. data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
  24. data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
  25. data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
  26. data/app/views/active_admin/devise/registrations/new.html.erb +1 -2
  27. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  28. data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
  29. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  30. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  31. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  32. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  33. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  34. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  35. data/app/views/layouts/active_admin_logged_out.html.erb +1 -1
  36. data/config/locales/ar.yml +3 -2
  37. data/config/locales/bg.yml +1 -1
  38. data/config/locales/bs.yml +1 -0
  39. data/config/locales/ca.yml +1 -1
  40. data/config/locales/cs.yml +1 -0
  41. data/config/locales/da.yml +1 -0
  42. data/config/locales/de-CH.yml +1 -0
  43. data/config/locales/de.yml +1 -0
  44. data/config/locales/el.yml +1 -0
  45. data/config/locales/en-CA.yml +1 -0
  46. data/config/locales/en-GB.yml +1 -0
  47. data/config/locales/en.yml +1 -0
  48. data/config/locales/eo.yml +1 -0
  49. data/config/locales/es-MX.yml +1 -0
  50. data/config/locales/es.yml +1 -0
  51. data/config/locales/fa.yml +1 -0
  52. data/config/locales/fi.yml +1 -0
  53. data/config/locales/fr.yml +2 -1
  54. data/config/locales/he.yml +1 -1
  55. data/config/locales/hr.yml +1 -0
  56. data/config/locales/hu.yml +5 -0
  57. data/config/locales/id.yml +1 -0
  58. data/config/locales/it.yml +1 -0
  59. data/config/locales/ja.yml +1 -0
  60. data/config/locales/ko.yml +1 -0
  61. data/config/locales/lt.yml +3 -2
  62. data/config/locales/lv.yml +1 -0
  63. data/config/locales/mk.yml +134 -0
  64. data/config/locales/nb.yml +1 -0
  65. data/config/locales/nl.yml +1 -0
  66. data/config/locales/pl.yml +1 -0
  67. data/config/locales/pt-BR.yml +1 -0
  68. data/config/locales/pt-PT.yml +1 -0
  69. data/config/locales/ro.yml +1 -0
  70. data/config/locales/ru.yml +1 -0
  71. data/config/locales/sk.yml +1 -0
  72. data/config/locales/sv-SE.yml +1 -0
  73. data/config/locales/tr.yml +1 -0
  74. data/config/locales/uk.yml +3 -0
  75. data/config/locales/vi.yml +1 -0
  76. data/config/locales/zh-CN.yml +1 -0
  77. data/config/locales/zh-TW.yml +1 -0
  78. data/docs/0-installation.md +2 -2
  79. data/docs/12-arbre-components.md +13 -0
  80. data/docs/13-authorization-adapter.md +6 -6
  81. data/docs/2-resource-customization.md +1 -1
  82. data/docs/3-index-pages/index-as-table.md +7 -0
  83. data/docs/CNAME +1 -1
  84. data/docs/Gemfile +0 -1
  85. data/docs/Gemfile.lock +3 -4
  86. data/docs/_config.yml +2 -0
  87. data/docs/_includes/top-menu.html +2 -2
  88. data/docs/index.html +109 -8
  89. data/docs/stylesheets/main.css +29 -0
  90. data/lib/active_admin.rb +10 -4
  91. data/lib/active_admin/application.rb +11 -18
  92. data/lib/active_admin/application_settings.rb +3 -0
  93. data/lib/active_admin/asset_registration.rb +0 -8
  94. data/lib/active_admin/base_controller.rb +6 -6
  95. data/lib/active_admin/base_controller/authorization.rb +3 -4
  96. data/lib/active_admin/batch_actions/controller.rb +2 -2
  97. data/lib/active_admin/batch_actions/resource_extension.rb +9 -5
  98. data/lib/active_admin/callbacks.rb +1 -1
  99. data/lib/active_admin/controller_action.rb +2 -1
  100. data/lib/active_admin/csv_builder.rb +4 -3
  101. data/lib/active_admin/dependency.rb +3 -75
  102. data/lib/active_admin/dsl.rb +1 -8
  103. data/lib/active_admin/error.rb +4 -2
  104. data/lib/active_admin/filters/active_filter.rb +5 -4
  105. data/lib/active_admin/filters/active_sidebar.rb +5 -1
  106. data/lib/active_admin/filters/forms.rb +2 -2
  107. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  108. data/lib/active_admin/filters/resource_extension.rb +3 -3
  109. data/lib/active_admin/form_builder.rb +3 -3
  110. data/lib/active_admin/generators/boilerplate.rb +12 -4
  111. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  112. data/lib/active_admin/inputs/datepicker_input.rb +1 -1
  113. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  114. data/lib/active_admin/menu_item.rb +1 -1
  115. data/lib/active_admin/namespace.rb +2 -2
  116. data/lib/active_admin/namespace_settings.rb +7 -4
  117. data/lib/active_admin/orm/active_record/comments.rb +4 -4
  118. data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
  119. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +10 -5
  120. data/lib/active_admin/page_dsl.rb +1 -1
  121. data/lib/active_admin/page_presenter.rb +2 -1
  122. data/lib/active_admin/pundit_adapter.rb +18 -5
  123. data/lib/active_admin/resource.rb +17 -3
  124. data/lib/active_admin/resource/action_items.rb +1 -1
  125. data/lib/active_admin/resource/attributes.rb +7 -4
  126. data/lib/active_admin/resource/belongs_to.rb +6 -1
  127. data/lib/active_admin/resource/menu.rb +3 -3
  128. data/lib/active_admin/resource/model.rb +15 -0
  129. data/lib/active_admin/resource/naming.rb +3 -3
  130. data/lib/active_admin/resource/routes.rb +20 -7
  131. data/lib/active_admin/resource/scopes.rb +3 -3
  132. data/lib/active_admin/resource/sidebars.rb +1 -1
  133. data/lib/active_admin/resource_collection.rb +2 -2
  134. data/lib/active_admin/resource_controller.rb +2 -0
  135. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  136. data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
  137. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  138. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  139. data/lib/active_admin/resource_dsl.rb +6 -4
  140. data/lib/active_admin/router.rb +3 -2
  141. data/lib/active_admin/scope.rb +11 -7
  142. data/lib/active_admin/settings_node.rb +1 -1
  143. data/lib/active_admin/sidebar_section.rb +3 -1
  144. data/lib/active_admin/version.rb +1 -1
  145. data/lib/active_admin/view_helpers.rb +1 -1
  146. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
  147. data/lib/active_admin/view_helpers/display_helper.rb +13 -4
  148. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  149. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  150. data/lib/active_admin/views.rb +1 -1
  151. data/lib/active_admin/views/components/active_admin_form.rb +7 -1
  152. data/lib/active_admin/views/components/attributes_table.rb +3 -3
  153. data/lib/active_admin/views/components/paginated_collection.rb +2 -2
  154. data/lib/active_admin/views/components/sidebar_section.rb +0 -3
  155. data/lib/active_admin/views/components/status_tag.rb +6 -19
  156. data/lib/active_admin/views/components/table_for.rb +2 -2
  157. data/lib/active_admin/views/components/tabs.rb +11 -2
  158. data/lib/active_admin/views/footer.rb +1 -1
  159. data/lib/active_admin/views/index_as_table.rb +12 -4
  160. data/lib/active_admin/views/pages/base.rb +3 -0
  161. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  162. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  163. data/lib/generators/active_admin/install/install_generator.rb +6 -2
  164. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +24 -2
  165. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  166. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  167. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  168. data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
  169. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  170. data/lib/ransack_ext.rb +3 -3
  171. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  172. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  173. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  174. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  175. metadata +113 -100
  176. data/.circleci/config.yml +0 -467
  177. data/.github/ISSUE_TEMPLATE.md +0 -20
  178. data/.gitignore +0 -46
  179. data/.mdlrc +0 -1
  180. data/.rspec +0 -1
  181. data/.rspec_parallel +0 -2
  182. data/.rubocop.yml +0 -94
  183. data/.simplecov +0 -11
  184. data/.yardopts +0 -7
  185. data/Gemfile +0 -10
  186. data/Gemfile.common +0 -53
  187. data/Gemfile.lock +0 -431
  188. data/Rakefile +0 -23
  189. data/activeadmin.gemspec +0 -32
  190. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  191. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  192. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  193. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  194. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  195. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  196. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  197. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  198. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  199. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  200. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  201. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  202. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  203. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  204. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  205. data/bin/install_chromedriver.sh +0 -17
  206. data/codecov.yml +0 -25
  207. data/config/i18n-tasks.yml +0 -26
  208. data/config/mdl_style.rb +0 -11
  209. data/cucumber.yml +0 -7
  210. data/gemfiles/rails_42.gemfile +0 -10
  211. data/gemfiles/rails_42.gemfile.lock +0 -410
  212. data/gemfiles/rails_50.gemfile +0 -10
  213. data/gemfiles/rails_50.gemfile.lock +0 -424
  214. data/gemfiles/rails_51.gemfile +0 -10
  215. data/gemfiles/rails_51.gemfile.lock +0 -423
  216. data/lib/active_admin/event.rb +0 -24
  217. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  218. data/lib/active_admin/reloader.rb +0 -25
  219. data/lib/bug_report_templates/active_admin_master.rb +0 -111
  220. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  221. data/tasks/application_generator.rb +0 -48
  222. data/tasks/docs.rake +0 -64
  223. data/tasks/gemfiles.rake +0 -8
  224. data/tasks/lint.rake +0 -110
  225. data/tasks/local.rake +0 -27
  226. data/tasks/test.rake +0 -43
@@ -615,6 +615,35 @@ body #tidelift a .cta {
615
615
  padding-left: 30px;
616
616
  }
617
617
 
618
+ body .tidelift-buttons a {
619
+ display: table;
620
+ width: 200px;
621
+ border: 2px solid #407985;
622
+ border-radius: 4px;
623
+ text-decoration: none;
624
+ font-family: 'Yanone Kaffeesatz', 'Helvetica Neue', Arial, Helvetica, sans-serif;
625
+ font-size: 18px;
626
+ letter-spacing: 1px;
627
+ margin: 0 10px;
628
+ }
629
+
630
+ body .tidelift-buttons a:first-child {
631
+ float: left;
632
+ color: #407985;
633
+ background: #FFF;
634
+ }
635
+
636
+ body .tidelift-buttons a:last-child {
637
+ color: #FFF;
638
+ background: #407985;
639
+ }
640
+
641
+ body .tidelift-buttons a span {
642
+ display: table-cell;
643
+ vertical-align: middle;
644
+ text-align: center;
645
+ }
646
+
618
647
  body .clear {
619
648
  clear: both;
620
649
  }
@@ -8,8 +8,9 @@ require 'formtastic'
8
8
  require 'formtastic_i18n'
9
9
  require 'inherited_resources'
10
10
  require 'jquery-rails'
11
- require 'coffee-rails'
11
+ require 'sassc-rails'
12
12
  require 'arbre'
13
+ require 'sprockets/es6'
13
14
 
14
15
  require 'active_admin/helpers/i18n'
15
16
 
@@ -30,7 +31,6 @@ module ActiveAdmin
30
31
  autoload :Deprecation, 'active_admin/deprecation'
31
32
  autoload :Devise, 'active_admin/devise'
32
33
  autoload :DSL, 'active_admin/dsl'
33
- autoload :Event, 'active_admin/event'
34
34
  autoload :FormBuilder, 'active_admin/form_builder'
35
35
  autoload :Inputs, 'active_admin/inputs'
36
36
  autoload :Localizers, 'active_admin/localizers'
@@ -90,7 +90,7 @@ module ActiveAdmin
90
90
  #
91
91
  # @param [Block] block A block to call each time (before) AA loads resources
92
92
  def before_load(&block)
93
- ActiveSupport::Notifications.subscribe ActiveAdmin::Application::BeforeLoadEvent, &ActiveAdmin::Event.wrap_block_for_active_support_notifications(block)
93
+ ActiveSupport::Notifications.subscribe ActiveAdmin::Application::BeforeLoadEvent, &wrap_block_for_active_support_notifications(block)
94
94
  end
95
95
 
96
96
  # A callback is triggered each time (after) Active Admin loads the configuration files. This
@@ -108,7 +108,13 @@ module ActiveAdmin
108
108
  #
109
109
  # @param [Block] block A block to call each time (after) AA loads resources
110
110
  def after_load(&block)
111
- ActiveSupport::Notifications.subscribe ActiveAdmin::Application::AfterLoadEvent, &ActiveAdmin::Event.wrap_block_for_active_support_notifications(block)
111
+ ActiveSupport::Notifications.subscribe ActiveAdmin::Application::AfterLoadEvent, &wrap_block_for_active_support_notifications(block)
112
+ end
113
+
114
+ private
115
+
116
+ def wrap_block_for_active_support_notifications block
117
+ proc { |event, *args| block.call *args }
112
118
  end
113
119
 
114
120
  end
@@ -1,5 +1,4 @@
1
1
  require 'active_admin/router'
2
- require 'active_admin/reloader'
3
2
  require 'active_admin/application_settings'
4
3
  require 'active_admin/namespace_settings'
5
4
 
@@ -43,12 +42,6 @@ module ActiveAdmin
43
42
  @namespaces = Namespace::Store.new
44
43
  end
45
44
 
46
- # == Deprecated Settings
47
-
48
- def allow_comments=(*)
49
- raise "`config.allow_comments` is no longer provided in ActiveAdmin 1.x. Use `config.comments` instead."
50
- end
51
-
52
45
  include AssetRegistration
53
46
 
54
47
  # Event that gets triggered on load of Active Admin
@@ -68,7 +61,7 @@ module ActiveAdmin
68
61
 
69
62
  # Registers a brand new configuration for the given resource.
70
63
  def register(resource, options = {}, &block)
71
- ns = options.fetch(:namespace){ default_namespace }
64
+ ns = options.fetch(:namespace) { default_namespace }
72
65
  namespace(ns).register resource, options, &block
73
66
  end
74
67
 
@@ -98,7 +91,7 @@ module ActiveAdmin
98
91
  # @&block The registration block.
99
92
  #
100
93
  def register_page(name, options = {}, &block)
101
- ns = options.fetch(:namespace){ default_namespace }
94
+ ns = options.fetch(:namespace) { default_namespace }
102
95
  namespace(ns).register_page name, options, &block
103
96
  end
104
97
 
@@ -119,7 +112,7 @@ module ActiveAdmin
119
112
  def load!
120
113
  unless loaded?
121
114
  ActiveSupport::Notifications.publish BeforeLoadEvent, self # before_load hook
122
- files.each{ |file| load file } # load files
115
+ files.each { |file| load file } # load files
123
116
  namespace(default_namespace) # init AA resources
124
117
  ActiveSupport::Notifications.publish AfterLoadEvent, self # after_load hook
125
118
  @@loaded = true
@@ -127,12 +120,12 @@ module ActiveAdmin
127
120
  end
128
121
 
129
122
  def load(file)
130
- DatabaseHitDuringLoad.capture{ super }
123
+ DatabaseHitDuringLoad.capture { super }
131
124
  end
132
125
 
133
126
  # Returns ALL the files to be loaded
134
127
  def files
135
- load_paths.flatten.compact.uniq.flat_map{ |path| Dir["#{path}/**/*.rb"] }
128
+ load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"] }
136
129
  end
137
130
 
138
131
  # Creates all the necessary routes for the ActiveAdmin configurations
@@ -171,9 +164,9 @@ module ActiveAdmin
171
164
  private
172
165
 
173
166
  def register_default_assets
174
- stylesheets['active_admin.css'] = { media: 'screen' }
175
- stylesheets['active_admin/print.css'] = { media: 'print' }
176
- javascripts.add 'active_admin.js'
167
+ register_stylesheet 'active_admin.css', media: 'screen'
168
+ register_stylesheet 'active_admin/print.css', media: 'print'
169
+ register_javascript 'active_admin.js'
177
170
  end
178
171
 
179
172
  # Since app/admin is alphabetically before app/models, we have to remove it
@@ -200,11 +193,11 @@ module ActiveAdmin
200
193
  # Rails is about to unload all the app files (e.g. models), so we
201
194
  # should first unload the classes generated by Active Admin, otherwise
202
195
  # they will contain references to the stale (unloaded) classes.
203
- Reloader.to_prepare(prepend: true, &unload_active_admin)
196
+ ActiveSupport::Reloader.to_prepare(prepend: true, &unload_active_admin)
204
197
  else
205
198
  # If the user has configured the app to always reload app files after
206
199
  # each request, so we should unload the generated classes too.
207
- Reloader.to_complete(&unload_active_admin)
200
+ ActiveSupport::Reloader.to_complete(&unload_active_admin)
208
201
  end
209
202
 
210
203
  admin_dirs = {}
@@ -219,7 +212,7 @@ module ActiveAdmin
219
212
 
220
213
  app.reloaders << routes_reloader
221
214
 
222
- Reloader.to_prepare do
215
+ ActiveSupport::Reloader.to_prepare do
223
216
  # Rails might have reloaded the routes for other reasons (e.g.
224
217
  # routes.rb has changed), in which case Active Admin would have been
225
218
  # loaded via the `ActiveAdmin.routes` call in `routes.rb`.
@@ -35,5 +35,8 @@ module ActiveAdmin
35
35
 
36
36
  # To make debugging easier, by default don't stream in development
37
37
  register :disable_streaming_in, ['development']
38
+
39
+ # Remove sensitive attributes from being displayed, made editable, or exported by default
40
+ register :filter_attributes, [:encrypted_password, :password, :password_confirmation]
38
41
  end
39
42
  end
@@ -2,10 +2,6 @@ module ActiveAdmin
2
2
  module AssetRegistration
3
3
 
4
4
  def register_stylesheet(path, options = {})
5
- Deprecation.warn <<-MSG.strip_heredoc
6
- The `register_stylesheet` config is deprecated and will be removed
7
- in v2. Import your "#{path}" stylesheet in the active_admin.scss.
8
- MSG
9
5
  stylesheets[path] = options
10
6
  end
11
7
 
@@ -18,10 +14,6 @@ module ActiveAdmin
18
14
  end
19
15
 
20
16
  def register_javascript(name)
21
- Deprecation.warn <<-MSG.strip_heredoc
22
- The `register_javascript` config is deprecated and will be removed
23
- in v2. Import your "#{name}" javascript in the active_admin.js.
24
- MSG
25
17
  javascripts.add name
26
18
  end
27
19
 
@@ -22,6 +22,11 @@ module ActiveAdmin
22
22
  attr_accessor :active_admin_config
23
23
  end
24
24
 
25
+ include Authorization
26
+ include Menu
27
+
28
+ private
29
+
25
30
  # By default Rails will render un-implemented actions when the view exists. Because Active
26
31
  # Admin allows you to not render any of the actions by using the #actions method, we need
27
32
  # to check if they are implemented.
@@ -29,11 +34,6 @@ module ActiveAdmin
29
34
  raise AbstractController::ActionNotFound unless action_methods.include?(params[:action])
30
35
  end
31
36
 
32
- include Authorization
33
- include Menu
34
-
35
- private
36
-
37
37
  # Calls the authentication method as defined in ActiveAdmin.authentication_method
38
38
  def authenticate_active_admin_user
39
39
  send(active_admin_namespace.authentication_method) if active_admin_namespace.authentication_method
@@ -74,7 +74,7 @@ module ActiveAdmin
74
74
 
75
75
  def active_admin_root
76
76
  controller, action = active_admin_namespace.root_to.split '#'
77
- {controller: controller, action: action}
77
+ { controller: controller, action: action }
78
78
  end
79
79
 
80
80
  end
@@ -18,6 +18,7 @@ module ActiveAdmin
18
18
 
19
19
  helper_method :authorized?
20
20
  helper_method :authorize!
21
+ helper_method :active_admin_authorization
21
22
  end
22
23
 
23
24
  protected
@@ -111,16 +112,14 @@ module ActiveAdmin
111
112
  redirect_backwards_or_to_root
112
113
  end
113
114
 
114
- body = ActiveAdmin::Dependency.rails.render_key
115
-
116
- format.csv { render body => error, status: :unauthorized }
115
+ format.csv { render body: error, status: :unauthorized }
117
116
  format.json { render json: { error: error }, status: :unauthorized }
118
117
  format.xml { render xml: "<error>#{error}</error>", status: :unauthorized }
119
118
  end
120
119
  end
121
120
 
122
121
  def redirect_backwards_or_to_root
123
- ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
122
+ redirect_back fallback_location: active_admin_root
124
123
  end
125
124
 
126
125
  end
@@ -7,7 +7,7 @@ module ActiveAdmin
7
7
  if action_present?
8
8
  selection = params[:collection_selection] || []
9
9
  inputs = JSON.parse params[:batch_action_inputs] || '{}'
10
- valid_keys = StringSymbolOrProcSetting.new(current_batch_action.inputs).value(self).try(:keys)
10
+ valid_keys = MethodOrProcHelper.render_in_context(self, current_batch_action.inputs).try(:keys)
11
11
  inputs = inputs.with_indifferent_access.slice *valid_keys
12
12
  instance_exec selection, inputs, &current_batch_action.block
13
13
  else
@@ -22,7 +22,7 @@ module ActiveAdmin
22
22
  end
23
23
 
24
24
  def current_batch_action
25
- active_admin_config.batch_actions.detect{ |action| action.sym.to_s == params[:batch_action] }
25
+ active_admin_config.batch_actions.detect { |action| action.sym.to_s == params[:batch_action] }
26
26
  end
27
27
 
28
28
  COLLECTION_APPLIES = [
@@ -57,8 +57,8 @@ module ActiveAdmin
57
57
  def add_default_batch_action
58
58
  destroy_options = {
59
59
  priority: 100,
60
- confirm: proc{ I18n.t('active_admin.batch_actions.delete_confirmation', plural_model: active_admin_config.plural_resource_label.downcase) },
61
- if: proc{ controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, active_admin_config.resource_class) }
60
+ confirm: proc { I18n.t('active_admin.batch_actions.delete_confirmation', plural_model: active_admin_config.plural_resource_label.downcase) },
61
+ if: proc { controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, active_admin_config.resource_class) }
62
62
  }
63
63
 
64
64
  add_batch_action :destroy, proc { I18n.t('active_admin.delete') }, destroy_options do |selected_ids|
@@ -84,7 +84,7 @@ module ActiveAdmin
84
84
 
85
85
  attr_reader :block, :title, :sym
86
86
 
87
- DEFAULT_CONFIRM_MESSAGE = proc{ I18n.t 'active_admin.batch_actions.default_confirmation' }
87
+ DEFAULT_CONFIRM_MESSAGE = proc { I18n.t 'active_admin.batch_actions.default_confirmation' }
88
88
 
89
89
  # Create a Batch Action
90
90
  #
@@ -112,7 +112,11 @@ module ActiveAdmin
112
112
  # => You can pass a hash of options to `:form` that will be rendered as form input fields for the user to fill out.
113
113
  #
114
114
  def initialize(sym, title, options = {}, &block)
115
- @sym, @title, @options, @block, @confirm = sym, title, options, block, options[:confirm]
115
+ @sym = sym
116
+ @title = title
117
+ @options = options
118
+ @block = block
119
+ @confirm = options[:confirm]
116
120
  @block ||= proc {}
117
121
  end
118
122
 
@@ -133,7 +137,7 @@ module ActiveAdmin
133
137
  # Returns the display if block. If the block was not explicitly defined
134
138
  # a default block always returning true will be returned.
135
139
  def display_if_block
136
- @options[:if] || proc{ true }
140
+ @options[:if] || proc { true }
137
141
  end
138
142
 
139
143
  # Used for sorting
@@ -75,7 +75,7 @@ module ActiveAdmin
75
75
 
76
76
  # def run_create_callbacks
77
77
  define_method "run_#{name}_callbacks" do |*args, &block|
78
- self.class.send("before_#{name}_callbacks").each{ |cbk| run_callback(cbk, *args) }
78
+ self.class.send("before_#{name}_callbacks").each { |cbk| run_callback(cbk, *args) }
79
79
  value = block.try :call
80
80
  self.class.send("after_#{name}_callbacks").each { |cbk| run_callback(cbk, *args) }
81
81
  return value
@@ -2,7 +2,8 @@ module ActiveAdmin
2
2
  class ControllerAction
3
3
  attr_reader :name
4
4
  def initialize(name, options = {})
5
- @name, @options = name, options
5
+ @name = name
6
+ @options = options
6
7
  end
7
8
 
8
9
  def http_verb
@@ -32,7 +32,9 @@ module ActiveAdmin
32
32
 
33
33
  def initialize(options = {}, &block)
34
34
  @resource = options.delete(:resource)
35
- @columns, @options, @block = [], options, block
35
+ @columns = []
36
+ @options = ActiveAdmin.application.csv_options.merge options
37
+ @block = block
36
38
  end
37
39
 
38
40
  def column(name, options = {}, &block)
@@ -42,7 +44,6 @@ module ActiveAdmin
42
44
  def build(controller, csv)
43
45
  @collection = controller.send :find_collection, except: :pagination
44
46
  columns = exec_columns controller.view_context
45
- options = ActiveAdmin.application.csv_options.merge self.options
46
47
  bom = options.delete :byte_order_mark
47
48
  column_names = options.delete(:column_names) { true }
48
49
  csv_options = options.except :encoding_options, :humanize_name
@@ -50,7 +51,7 @@ module ActiveAdmin
50
51
  csv << bom if bom
51
52
 
52
53
  if column_names
53
- csv << CSV.generate_line(columns.map{ |c| encode c.name, options }, csv_options)
54
+ csv << CSV.generate_line(columns.map { |c| encode c.name, options }, csv_options)
54
55
  end
55
56
 
56
57
  ActiveRecord::Base.uncached do
@@ -1,7 +1,7 @@
1
1
  module ActiveAdmin
2
2
  module Dependency
3
3
  module Requirements
4
- DEVISE = '>= 3.2', '< 5'
4
+ DEVISE = '>= 4.0', '< 5'
5
5
  end
6
6
 
7
7
  # Provides a clean interface to check for gem dependencies at runtime.
@@ -55,8 +55,8 @@ module ActiveAdmin
55
55
  Matcher.new name.to_s
56
56
  end
57
57
 
58
- def self.rails5?
59
- rails >= '5.x'
58
+ def self.supports_zeitwerk?
59
+ rails >= "6.0.0.beta3" && RUBY_ENGINE != "jruby"
60
60
  end
61
61
 
62
62
  class Matcher
@@ -94,78 +94,6 @@ module ActiveAdmin
94
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