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.
Files changed (308) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +501 -157
  3. data/CONTRIBUTING.md +57 -72
  4. data/README.md +47 -14
  5. data/app/assets/javascripts/active_admin/base.js +517 -0
  6. data/app/assets/stylesheets/active_admin/_base.scss +29 -29
  7. data/app/assets/stylesheets/active_admin/_forms.scss +2 -14
  8. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  9. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  10. data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
  11. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  12. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  13. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  14. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  15. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  16. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  17. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +8 -0
  18. data/app/assets/stylesheets/active_admin/print.scss +2 -2
  19. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  20. data/app/javascript/active_admin/base.js +28 -0
  21. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  22. data/app/javascript/active_admin/ext/jquery.js +9 -0
  23. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  24. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  25. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  26. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  27. data/app/javascript/active_admin/initializers/filters.js +10 -0
  28. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  29. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  30. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  31. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  32. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  33. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  34. data/app/javascript/active_admin/lib/filters.js +39 -0
  35. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  36. data/app/javascript/active_admin/lib/per-page.js +38 -0
  37. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  38. data/app/javascript/active_admin/lib/utils.js +40 -0
  39. data/app/views/active_admin/devise/confirmations/new.html.erb +1 -1
  40. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  41. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  42. data/app/views/active_admin/devise/passwords/edit.html.erb +1 -1
  43. data/app/views/active_admin/devise/passwords/new.html.erb +1 -1
  44. data/app/views/active_admin/devise/registrations/new.html.erb +1 -2
  45. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  46. data/app/views/active_admin/devise/unlocks/new.html.erb +1 -1
  47. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  48. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  49. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  50. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  51. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  52. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  53. data/app/views/layouts/active_admin_logged_out.html.erb +16 -6
  54. data/config/locales/ar.yml +9 -8
  55. data/config/locales/az.yml +138 -0
  56. data/config/locales/bg.yml +1 -1
  57. data/config/locales/bs.yml +1 -0
  58. data/config/locales/ca.yml +1 -1
  59. data/config/locales/cs.yml +1 -0
  60. data/config/locales/da.yml +1 -0
  61. data/config/locales/de-CH.yml +1 -0
  62. data/config/locales/de.yml +19 -0
  63. data/config/locales/el.yml +1 -0
  64. data/config/locales/en-CA.yml +4 -3
  65. data/config/locales/en-GB.yml +4 -3
  66. data/config/locales/en.yml +4 -3
  67. data/config/locales/eo.yml +1 -0
  68. data/config/locales/es-MX.yml +3 -1
  69. data/config/locales/es.yml +6 -5
  70. data/config/locales/fa.yml +1 -0
  71. data/config/locales/fi.yml +1 -0
  72. data/config/locales/fr.yml +6 -5
  73. data/config/locales/he.yml +1 -1
  74. data/config/locales/hr.yml +1 -0
  75. data/config/locales/hu.yml +5 -0
  76. data/config/locales/id.yml +1 -0
  77. data/config/locales/it.yml +19 -0
  78. data/config/locales/ja.yml +4 -3
  79. data/config/locales/ko.yml +1 -0
  80. data/config/locales/lt.yml +3 -2
  81. data/config/locales/lv.yml +3 -2
  82. data/config/locales/mk.yml +134 -0
  83. data/config/locales/nb.yml +1 -0
  84. data/config/locales/nl.yml +1 -0
  85. data/config/locales/pl.yml +1 -0
  86. data/config/locales/pt-BR.yml +1 -0
  87. data/config/locales/pt-PT.yml +1 -0
  88. data/config/locales/ro.yml +1 -0
  89. data/config/locales/ru.yml +1 -0
  90. data/config/locales/sk.yml +60 -0
  91. data/config/locales/sv-SE.yml +1 -0
  92. data/config/locales/tr.yml +1 -0
  93. data/config/locales/uk.yml +3 -0
  94. data/config/locales/vi.yml +7 -5
  95. data/config/locales/zh-CN.yml +1 -0
  96. data/config/locales/zh-TW.yml +1 -0
  97. data/docs/0-installation.md +28 -4
  98. data/docs/1-general-configuration.md +20 -0
  99. data/docs/11-decorators.md +16 -5
  100. data/docs/12-arbre-components.md +13 -0
  101. data/docs/13-authorization-adapter.md +6 -6
  102. data/docs/2-resource-customization.md +11 -2
  103. data/docs/3-index-pages.md +1 -1
  104. data/docs/3-index-pages/index-as-table.md +7 -0
  105. data/docs/5-forms.md +6 -1
  106. data/docs/6-show-pages.md +12 -0
  107. data/docs/9-batch-actions.md +2 -2
  108. data/docs/CNAME +1 -1
  109. data/docs/Gemfile +2 -3
  110. data/docs/Gemfile.lock +126 -116
  111. data/docs/_config.yml +2 -0
  112. data/docs/_includes/top-menu.html +2 -2
  113. data/docs/documentation.md +1 -1
  114. data/docs/index.html +110 -9
  115. data/docs/stylesheets/main.css +29 -0
  116. data/lib/active_admin.rb +67 -63
  117. data/lib/active_admin/application.rb +20 -27
  118. data/lib/active_admin/application_settings.rb +6 -3
  119. data/lib/active_admin/asset_registration.rb +0 -8
  120. data/lib/active_admin/authorization_adapter.rb +3 -3
  121. data/lib/active_admin/base_controller.rb +10 -10
  122. data/lib/active_admin/base_controller/authorization.rb +15 -15
  123. data/lib/active_admin/batch_actions/controller.rb +5 -5
  124. data/lib/active_admin/batch_actions/resource_extension.rb +15 -10
  125. data/lib/active_admin/batch_actions/views/batch_action_form.rb +3 -3
  126. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +6 -6
  127. data/lib/active_admin/batch_actions/views/selection_cells.rb +3 -3
  128. data/lib/active_admin/callbacks.rb +1 -1
  129. data/lib/active_admin/cancan_adapter.rb +1 -1
  130. data/lib/active_admin/collection_decorator.rb +31 -0
  131. data/lib/active_admin/controller_action.rb +2 -1
  132. data/lib/active_admin/csv_builder.rb +14 -9
  133. data/lib/active_admin/dependency.rb +13 -85
  134. data/lib/active_admin/devise.rb +5 -5
  135. data/lib/active_admin/dsl.rb +2 -9
  136. data/lib/active_admin/dynamic_settings_node.rb +2 -2
  137. data/lib/active_admin/engine.rb +10 -8
  138. data/lib/active_admin/error.rb +4 -4
  139. data/lib/active_admin/filters.rb +7 -7
  140. data/lib/active_admin/filters/active.rb +1 -1
  141. data/lib/active_admin/filters/active_filter.rb +10 -10
  142. data/lib/active_admin/filters/active_sidebar.rb +9 -5
  143. data/lib/active_admin/filters/forms.rb +7 -7
  144. data/lib/active_admin/filters/formtastic_addons.rb +2 -7
  145. data/lib/active_admin/filters/resource_extension.rb +28 -4
  146. data/lib/active_admin/form_builder.rb +26 -22
  147. data/lib/active_admin/generators/boilerplate.rb +12 -4
  148. data/lib/active_admin/helpers/optional_display.rb +2 -2
  149. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  150. data/lib/active_admin/inputs/datepicker_input.rb +2 -2
  151. data/lib/active_admin/inputs/filters/base.rb +1 -1
  152. data/lib/active_admin/inputs/filters/base/search_method_select.rb +6 -6
  153. data/lib/active_admin/inputs/filters/boolean_input.rb +1 -1
  154. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -1
  155. data/lib/active_admin/inputs/filters/date_range_input.rb +15 -12
  156. data/lib/active_admin/inputs/filters/select_input.rb +2 -2
  157. data/lib/active_admin/localizers.rb +1 -1
  158. data/lib/active_admin/localizers/resource_localizer.rb +3 -3
  159. data/lib/active_admin/menu.rb +6 -3
  160. data/lib/active_admin/menu_item.rb +7 -7
  161. data/lib/active_admin/namespace.rb +12 -12
  162. data/lib/active_admin/namespace_settings.rb +27 -8
  163. data/lib/active_admin/order_clause.rb +2 -2
  164. data/lib/active_admin/orm/active_record.rb +1 -1
  165. data/lib/active_admin/orm/active_record/comments.rb +23 -23
  166. data/lib/active_admin/orm/active_record/comments/comment.rb +4 -4
  167. data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
  168. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +29 -24
  169. data/lib/active_admin/page.rb +1 -1
  170. data/lib/active_admin/page_dsl.rb +1 -1
  171. data/lib/active_admin/page_presenter.rb +2 -1
  172. data/lib/active_admin/pundit_adapter.rb +22 -9
  173. data/lib/active_admin/resource.rb +34 -20
  174. data/lib/active_admin/resource/action_items.rb +5 -5
  175. data/lib/active_admin/resource/attributes.rb +8 -5
  176. data/lib/active_admin/resource/belongs_to.rb +8 -3
  177. data/lib/active_admin/resource/controllers.rb +1 -1
  178. data/lib/active_admin/resource/menu.rb +5 -5
  179. data/lib/active_admin/resource/model.rb +15 -0
  180. data/lib/active_admin/resource/naming.rb +5 -5
  181. data/lib/active_admin/resource/routes.rb +25 -14
  182. data/lib/active_admin/resource/scope_to.rb +7 -7
  183. data/lib/active_admin/resource/scopes.rb +3 -3
  184. data/lib/active_admin/resource/sidebars.rb +2 -2
  185. data/lib/active_admin/resource_collection.rb +2 -2
  186. data/lib/active_admin/resource_controller.rb +13 -10
  187. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  188. data/lib/active_admin/resource_controller/data_access.rb +1 -1
  189. data/lib/active_admin/resource_controller/decorators.rb +7 -29
  190. data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -0
  191. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  192. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  193. data/lib/active_admin/resource_controller/streaming.rb +7 -6
  194. data/lib/active_admin/resource_dsl.rb +11 -9
  195. data/lib/active_admin/router.rb +3 -2
  196. data/lib/active_admin/scope.rb +15 -11
  197. data/lib/active_admin/settings_node.rb +1 -1
  198. data/lib/active_admin/sidebar_section.rb +3 -1
  199. data/lib/active_admin/version.rb +1 -1
  200. data/lib/active_admin/view_factory.rb +17 -17
  201. data/lib/active_admin/view_helpers.rb +1 -1
  202. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +5 -5
  203. data/lib/active_admin/view_helpers/display_helper.rb +16 -7
  204. data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
  205. data/lib/active_admin/view_helpers/fields_for.rb +2 -2
  206. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  207. data/lib/active_admin/views.rb +1 -1
  208. data/lib/active_admin/views/components/active_admin_form.rb +12 -6
  209. data/lib/active_admin/views/components/attributes_table.rb +8 -8
  210. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  211. data/lib/active_admin/views/components/dropdown_menu.rb +8 -8
  212. data/lib/active_admin/views/components/index_list.rb +3 -3
  213. data/lib/active_admin/views/components/menu.rb +1 -1
  214. data/lib/active_admin/views/components/menu_item.rb +4 -4
  215. data/lib/active_admin/views/components/paginated_collection.rb +21 -20
  216. data/lib/active_admin/views/components/panel.rb +1 -1
  217. data/lib/active_admin/views/components/scopes.rb +7 -5
  218. data/lib/active_admin/views/components/sidebar_section.rb +0 -3
  219. data/lib/active_admin/views/components/site_title.rb +1 -1
  220. data/lib/active_admin/views/components/status_tag.rb +13 -26
  221. data/lib/active_admin/views/components/table_for.rb +20 -19
  222. data/lib/active_admin/views/components/tabs.rb +13 -4
  223. data/lib/active_admin/views/footer.rb +3 -2
  224. data/lib/active_admin/views/header.rb +2 -2
  225. data/lib/active_admin/views/index_as_blog.rb +1 -1
  226. data/lib/active_admin/views/index_as_grid.rb +1 -1
  227. data/lib/active_admin/views/index_as_table.rb +27 -19
  228. data/lib/active_admin/views/pages/base.rb +18 -11
  229. data/lib/active_admin/views/pages/index.rb +15 -13
  230. data/lib/active_admin/views/tabbed_navigation.rb +2 -2
  231. data/lib/active_admin/views/title_bar.rb +1 -1
  232. data/lib/activeadmin.rb +1 -1
  233. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  234. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  235. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  236. data/lib/generators/active_admin/devise/devise_generator.rb +5 -5
  237. data/lib/generators/active_admin/install/install_generator.rb +18 -8
  238. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  239. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  240. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  241. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  242. data/lib/generators/active_admin/resource/resource_generator.rb +3 -3
  243. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  244. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  245. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  246. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  247. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  248. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
  249. data/lib/ransack_ext.rb +9 -9
  250. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  251. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  252. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  253. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  254. metadata +108 -127
  255. data/.circleci/config.yml +0 -467
  256. data/.github/ISSUE_TEMPLATE.md +0 -20
  257. data/.gitignore +0 -46
  258. data/.mdlrc +0 -1
  259. data/.rspec +0 -1
  260. data/.rspec_parallel +0 -2
  261. data/.rubocop.yml +0 -94
  262. data/.simplecov +0 -11
  263. data/.yardopts +0 -7
  264. data/Gemfile +0 -10
  265. data/Gemfile.common +0 -53
  266. data/Gemfile.lock +0 -431
  267. data/Rakefile +0 -23
  268. data/activeadmin.gemspec +0 -32
  269. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  270. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  271. data/app/assets/images/active_admin/orderable.png +0 -0
  272. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  273. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  274. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  275. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  276. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  277. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  278. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  279. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  280. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  281. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  282. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  283. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  284. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  285. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  286. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  287. data/bin/install_chromedriver.sh +0 -17
  288. data/codecov.yml +0 -25
  289. data/config/i18n-tasks.yml +0 -26
  290. data/config/mdl_style.rb +0 -11
  291. data/cucumber.yml +0 -7
  292. data/gemfiles/rails_42.gemfile +0 -10
  293. data/gemfiles/rails_42.gemfile.lock +0 -410
  294. data/gemfiles/rails_50.gemfile +0 -10
  295. data/gemfiles/rails_50.gemfile.lock +0 -424
  296. data/gemfiles/rails_51.gemfile +0 -10
  297. data/gemfiles/rails_51.gemfile.lock +0 -423
  298. data/lib/active_admin/event.rb +0 -24
  299. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  300. data/lib/active_admin/reloader.rb +0 -25
  301. data/lib/bug_report_templates/active_admin_master.rb +0 -111
  302. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  303. data/tasks/application_generator.rb +0 -48
  304. data/tasks/docs.rake +0 -64
  305. data/tasks/gemfiles.rake +0 -8
  306. data/tasks/lint.rake +0 -110
  307. data/tasks/local.rake +0 -27
  308. data/tasks/test.rake +0 -43
@@ -45,13 +45,13 @@ module ActiveAdmin
45
45
  #
46
46
  def initialize(options = {})
47
47
  super() # MenuNode
48
- @label = options[:label]
49
- @dirty_id = options[:id] || options[:label]
50
- @url = options[:url] || '#'
51
- @priority = options[:priority] || 10
52
- @html_options = options[:html_options] || {}
53
- @should_display = options[:if] || proc{true}
54
- @parent = options[:parent]
48
+ @label = options[:label]
49
+ @dirty_id = options[:id] || options[:label]
50
+ @url = options[:url] || "#"
51
+ @priority = options[:priority] || 10
52
+ @html_options = options[:html_options] || {}
53
+ @should_display = options[:if] || proc { true }
54
+ @parent = options[:parent]
55
55
 
56
56
  yield(self) if block_given? # Builder style syntax
57
57
  end
@@ -1,4 +1,4 @@
1
- require 'active_admin/resource_collection'
1
+ require "active_admin/resource_collection"
2
2
 
3
3
  module ActiveAdmin
4
4
 
@@ -31,7 +31,7 @@ module ActiveAdmin
31
31
  end
32
32
  end
33
33
 
34
- RegisterEvent = 'active_admin.namespace.register'.freeze
34
+ RegisterEvent = "active_admin.namespace.register".freeze
35
35
 
36
36
  attr_reader :application, :resources, :menus
37
37
 
@@ -149,10 +149,10 @@ module ActiveAdmin
149
149
  def add_logout_button_to_menu(menu, priority = 20, html_options = {})
150
150
  if logout_link_path
151
151
  html_options = html_options.reverse_merge(method: logout_link_method || :get)
152
- menu.add id: 'logout', priority: priority, html_options: html_options,
153
- label: ->{ I18n.t 'active_admin.logout' },
154
- url: ->{ render_or_call_method_or_proc_on self, active_admin_namespace.logout_link_path },
155
- if: :current_active_admin_user?
152
+ menu.add id: "logout", priority: priority, html_options: html_options,
153
+ label: -> { I18n.t "active_admin.logout" },
154
+ url: -> { render_or_call_method_or_proc_on self, active_admin_namespace.logout_link_path },
155
+ if: :current_active_admin_user?
156
156
  end
157
157
  end
158
158
 
@@ -164,10 +164,10 @@ module ActiveAdmin
164
164
  #
165
165
  def add_current_user_to_menu(menu, priority = 10, html_options = {})
166
166
  if current_user_method
167
- menu.add id: 'current_user', priority: priority, html_options: html_options,
168
- label: -> { display_name current_active_admin_user },
169
- url: -> { auto_url_for(current_active_admin_user) },
170
- if: :current_active_admin_user?
167
+ menu.add id: "current_user", priority: priority, html_options: html_options,
168
+ label: -> { display_name current_active_admin_user },
169
+ url: -> { auto_url_for(current_active_admin_user) },
170
+ if: :current_active_admin_user?
171
171
  end
172
172
  end
173
173
 
@@ -211,8 +211,8 @@ module ActiveAdmin
211
211
 
212
212
  def unload_resources!
213
213
  resources.each do |resource|
214
- parent = (module_name || 'Object').constantize
215
- name = resource.controller_name.split('::').last
214
+ parent = (module_name || "Object").constantize
215
+ name = resource.controller_name.split("::").last
216
216
  parent.send(:remove_const, name) if parent.const_defined?(name, false)
217
217
 
218
218
  # Remove circular references
@@ -1,4 +1,4 @@
1
- require 'active_admin/dynamic_settings_node'
1
+ require "active_admin/dynamic_settings_node"
2
2
 
3
3
  module ActiveAdmin
4
4
  class NamespaceSettings < DynamicSettingsNode
@@ -17,16 +17,19 @@ module ActiveAdmin
17
17
  # Set the site title image displayed in the main layout (has precendence over :site_title)
18
18
  register :site_title_image, "", :string_symbol_or_proc
19
19
 
20
+ # Add to the site head
21
+ register :head, "", :string_symbol_or_proc
22
+
20
23
  # Set the site footer text (defaults to Powered by ActiveAdmin text with version)
21
24
  register :footer, "", :string_symbol_or_proc
22
25
 
23
26
  # Set a favicon
24
27
  register :favicon, false
25
28
 
26
- # Additional meta tags to place in head of logged in pages.
29
+ # Additional meta tags to place in head of logged in pages
27
30
  register :meta_tags, {}
28
31
 
29
- # Additional meta tags to place in head of logged out pages.
32
+ # Additional meta tags to place in head of logged out pages
30
33
  register :meta_tags_for_logged_out_pages, { robots: "noindex, nofollow" }
31
34
 
32
35
  # The view factory to use to generate all the view classes. Take
@@ -53,10 +56,10 @@ module ActiveAdmin
53
56
  # Whether filters are enabled
54
57
  register :filters, true
55
58
 
56
- # The namespace root.
57
- register :root_to, 'dashboard#index'
59
+ # The namespace root
60
+ register :root_to, "dashboard#index"
58
61
 
59
- # Options that a passed to root_to.
62
+ # Options that are passed to root_to
60
63
  register :root_to_options, {}
61
64
 
62
65
  # Options passed to the routes, i.e. { path: '/custom' }
@@ -70,7 +73,7 @@ module ActiveAdmin
70
73
  register :create_another, false
71
74
 
72
75
  # Default CSV options
73
- register :csv_options, { col_sep: ',', byte_order_mark: "\xEF\xBB\xBF" }
76
+ register :csv_options, { col_sep: ",", byte_order_mark: "\xEF\xBB\xBF" }
74
77
 
75
78
  # Default Download Links options
76
79
  register :download_links, true
@@ -99,9 +102,25 @@ module ActiveAdmin
99
102
  ]
100
103
 
101
104
  # Set flash message keys that shouldn't show in ActiveAdmin
102
- register :flash_keys_to_except, ['timedout']
105
+ register :flash_keys_to_except, ["timedout"]
103
106
 
104
107
  # Include association filters by default
105
108
  register :include_default_association_filters, true
109
+
110
+ register :maximum_association_filter_arity, :unlimited
111
+
112
+ register :filter_columns_for_large_association, [
113
+ :display_name,
114
+ :full_name,
115
+ :name,
116
+ :username,
117
+ :login,
118
+ :title,
119
+ :email,
120
+ ]
121
+ register :filter_method_for_large_association, "_starts_with"
122
+
123
+ # Switch between asset pipeline and webpacker assets
124
+ register :use_webpacker, false
106
125
  end
107
126
  end
@@ -3,7 +3,7 @@ module ActiveAdmin
3
3
  attr_reader :field, :order, :active_admin_config
4
4
 
5
5
  def initialize(active_admin_config, clause)
6
- clause =~ /^([\w\_\.]+)(->'\w+')?_(desc|asc)$/
6
+ clause =~ /^([\w\.]+)(->'\w+')?_(desc|asc)$/
7
7
  @column = $1
8
8
  @op = $2
9
9
  @order = $3
@@ -20,7 +20,7 @@ module ActiveAdmin
20
20
  end
21
21
 
22
22
  def to_sql
23
- [table_column, @op, ' ', @order].compact.join
23
+ [table_column, @op, " ", @order].compact.join
24
24
  end
25
25
 
26
26
  def table
@@ -2,4 +2,4 @@
2
2
 
3
3
  ActiveAdmin::DatabaseHitDuringLoad.database_error_classes << ActiveRecord::StatementInvalid
4
4
 
5
- require 'active_admin/orm/active_record/comments'
5
+ require "active_admin/orm/active_record/comments"
@@ -1,21 +1,21 @@
1
- require 'active_admin/orm/active_record/comments/views'
2
- require 'active_admin/orm/active_record/comments/show_page_helper'
3
- require 'active_admin/orm/active_record/comments/namespace_helper'
4
- require 'active_admin/orm/active_record/comments/resource_helper'
1
+ require "active_admin/orm/active_record/comments/views"
2
+ require "active_admin/orm/active_record/comments/show_page_helper"
3
+ require "active_admin/orm/active_record/comments/namespace_helper"
4
+ require "active_admin/orm/active_record/comments/resource_helper"
5
5
 
6
6
  # Add the comments configuration
7
- ActiveAdmin::Application.inheritable_setting :comments, true
8
- ActiveAdmin::Application.inheritable_setting :comments_registration_name, 'Comment'
9
- ActiveAdmin::Application.inheritable_setting :comments_order, "created_at ASC"
10
- ActiveAdmin::Application.inheritable_setting :comments_menu, {}
7
+ ActiveAdmin::Application.inheritable_setting :comments, true
8
+ ActiveAdmin::Application.inheritable_setting :comments_registration_name, "Comment"
9
+ ActiveAdmin::Application.inheritable_setting :comments_order, "created_at ASC"
10
+ ActiveAdmin::Application.inheritable_setting :comments_menu, {}
11
11
 
12
12
  # Insert helper modules
13
13
  ActiveAdmin::Namespace.send :include, ActiveAdmin::Comments::NamespaceHelper
14
- ActiveAdmin::Resource.send :include, ActiveAdmin::Comments::ResourceHelper
14
+ ActiveAdmin::Resource.send :include, ActiveAdmin::Comments::ResourceHelper
15
15
  ActiveAdmin.application.view_factory.show_page.send :include, ActiveAdmin::Comments::ShowPageHelper
16
16
 
17
17
  # Load the model as soon as it's referenced. By that point, Rails & Kaminari will be ready
18
- ActiveAdmin.autoload :Comment, 'active_admin/orm/active_record/comments/comment'
18
+ ActiveAdmin.autoload :Comment, "active_admin/orm/active_record/comments/comment"
19
19
 
20
20
  # Hint i18n-tasks about model and attribute translations used by default install
21
21
  # i18n-tasks-use t('activerecord.models.comment')
@@ -36,7 +36,7 @@ ActiveAdmin.after_load do |app|
36
36
 
37
37
  menu namespace.comments ? namespace.comments_menu : false
38
38
 
39
- config.comments = false # Don't allow comments on comments
39
+ config.comments = false # Don't allow comments on comments
40
40
  config.batch_actions = false # The default destroy batch action isn't showing up anyway...
41
41
 
42
42
  scope :all, show_count: false
@@ -51,7 +51,7 @@ ActiveAdmin.after_load do |app|
51
51
  # Store the author and namespace
52
52
  before_save do |comment|
53
53
  comment.namespace = active_admin_config.namespace.name
54
- comment.author = current_active_admin_user
54
+ comment.author = current_active_admin_user
55
55
  end
56
56
 
57
57
  controller do
@@ -64,21 +64,21 @@ ActiveAdmin.after_load do |app|
64
64
  def create
65
65
  create! do |success, failure|
66
66
  success.html do
67
- ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
67
+ redirect_back fallback_location: active_admin_root
68
68
  end
69
69
  failure.html do
70
- flash[:error] = I18n.t 'active_admin.comments.errors.empty_text'
71
- ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
70
+ flash[:error] = I18n.t "active_admin.comments.errors.empty_text"
71
+ redirect_back fallback_location: active_admin_root
72
72
  end
73
73
  end
74
74
 
75
75
  def destroy
76
76
  destroy! do |success, failure|
77
77
  success.html do
78
- ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
78
+ redirect_back fallback_location: active_admin_root
79
79
  end
80
80
  failure.html do
81
- ActiveAdmin::Dependency.rails.redirect_back self, active_admin_root
81
+ redirect_back fallback_location: active_admin_root
82
82
  end
83
83
  end
84
84
  end
@@ -88,12 +88,12 @@ ActiveAdmin.after_load do |app|
88
88
  permit_params :body, :namespace, :resource_id, :resource_type
89
89
 
90
90
  index do
91
- column I18n.t('active_admin.comments.resource_type'), :resource_type
92
- column I18n.t('active_admin.comments.author_type'), :author_type
93
- column I18n.t('active_admin.comments.resource'), :resource
94
- column I18n.t('active_admin.comments.author'), :author
95
- column I18n.t('active_admin.comments.body'), :body
96
- column I18n.t('active_admin.comments.created_at'), :created_at
91
+ column I18n.t("active_admin.comments.resource_type"), :resource_type
92
+ column I18n.t("active_admin.comments.author_type"), :author_type
93
+ column I18n.t("active_admin.comments.resource"), :resource
94
+ column I18n.t("active_admin.comments.author"), :author
95
+ column I18n.t("active_admin.comments.body"), :body
96
+ column I18n.t("active_admin.comments.created_at"), :created_at
97
97
  actions
98
98
  end
99
99
  end
@@ -3,8 +3,8 @@ module ActiveAdmin
3
3
 
4
4
  self.table_name = "#{table_name_prefix}active_admin_comments#{table_name_suffix}"
5
5
 
6
- belongs_to :resource, { polymorphic: true }.merge(ActiveAdmin::Dependency.rails.optional_belongs_to_flag)
7
- belongs_to :author, polymorphic: true
6
+ belongs_to :resource, polymorphic: true, optional: true
7
+ belongs_to :author, polymorphic: true
8
8
 
9
9
  validates_presence_of :body, :namespace, :resource
10
10
 
@@ -18,8 +18,8 @@ module ActiveAdmin
18
18
  def self.find_for_resource_in_namespace(resource, namespace)
19
19
  where(
20
20
  resource_type: resource_type(resource),
21
- resource_id: resource,
22
- namespace: namespace.to_s
21
+ resource_id: resource.id,
22
+ namespace: namespace.to_s
23
23
  ).order(ActiveAdmin.application.namespaces[namespace.to_sym].comments_order)
24
24
  end
25
25
 
@@ -1,2 +1,2 @@
1
- require 'active_admin/views'
2
- require 'active_admin/orm/active_record/comments/views/active_admin_comments'
1
+ require "active_admin/views"
2
+ require "active_admin/orm/active_record/comments/views/active_admin_comments"
@@ -1,5 +1,5 @@
1
- require 'active_admin/views'
2
- require 'active_admin/views/components/panel'
1
+ require "active_admin/views"
2
+ require "active_admin/views/components/panel"
3
3
 
4
4
  module ActiveAdmin
5
5
  module Comments
@@ -11,82 +11,87 @@ module ActiveAdmin
11
11
  attr_accessor :resource
12
12
 
13
13
  def build(resource)
14
- @resource = resource
15
- @comments = ActiveAdmin::Comment.find_for_resource_in_namespace(resource, active_admin_namespace.name).includes(:author).page(params[:page])
16
- super(title, for: resource)
17
- build_comments
14
+ if authorized?(ActiveAdmin::Auth::READ, ActiveAdmin::Comment)
15
+ @resource = resource
16
+ @comments = active_admin_authorization.scope_collection(ActiveAdmin::Comment.find_for_resource_in_namespace(resource, active_admin_namespace.name).includes(:author).page(params[:page]))
17
+ super(title, for: resource)
18
+ build_comments
19
+ end
18
20
  end
19
21
 
20
22
  protected
21
23
 
22
24
  def title
23
- I18n.t 'active_admin.comments.title_content', count: @comments.total_count
25
+ I18n.t "active_admin.comments.title_content", count: @comments.total_count
24
26
  end
25
27
 
26
28
  def build_comments
27
29
  if @comments.any?
28
30
  @comments.each(&method(:build_comment))
29
- div page_entries_info(@comments).html_safe, class: 'pagination_information'
31
+ div page_entries_info(@comments).html_safe, class: "pagination_information"
30
32
  else
31
33
  build_empty_message
32
34
  end
33
35
 
34
36
  text_node paginate @comments
35
- build_comment_form
37
+
38
+ if authorized?(ActiveAdmin::Auth::CREATE, ActiveAdmin::Comment)
39
+ build_comment_form
40
+ end
36
41
  end
37
42
 
38
43
  def build_comment(comment)
39
44
  div for: comment do
40
- div class: 'active_admin_comment_meta' do
41
- h4 class: 'active_admin_comment_author' do
42
- comment.author ? auto_link(comment.author) : I18n.t('active_admin.comments.author_missing')
45
+ div class: "active_admin_comment_meta" do
46
+ h4 class: "active_admin_comment_author" do
47
+ comment.author ? auto_link(comment.author) : I18n.t("active_admin.comments.author_missing")
43
48
  end
44
49
  span pretty_format comment.created_at
45
50
  if authorized?(ActiveAdmin::Auth::DESTROY, comment)
46
- text_node link_to I18n.t('active_admin.comments.delete'), comments_url(comment.id), method: :delete, data: { confirm: I18n.t('active_admin.comments.delete_confirmation') }
51
+ text_node link_to I18n.t("active_admin.comments.delete"), comments_url(comment.id), method: :delete, data: { confirm: I18n.t("active_admin.comments.delete_confirmation") }
47
52
  end
48
53
  end
49
- div class: 'active_admin_comment_body' do
54
+ div class: "active_admin_comment_body" do
50
55
  simple_format comment.body
51
56
  end
52
57
  end
53
58
  end
54
59
 
55
60
  def build_empty_message
56
- span I18n.t('active_admin.comments.no_comments_yet'), class: 'empty'
61
+ span I18n.t("active_admin.comments.no_comments_yet"), class: "empty"
57
62
  end
58
63
 
59
64
  def comments_url(*args)
60
65
  parts = []
61
66
  parts << active_admin_namespace.name unless active_admin_namespace.root?
62
67
  parts << active_admin_namespace.comments_registration_name.underscore
63
- parts << 'path'
64
- send parts.join('_'), *args
68
+ parts << "path"
69
+ send parts.join("_"), *args
65
70
  end
66
71
 
67
72
  def comment_form_url
68
73
  parts = []
69
74
  parts << active_admin_namespace.name unless active_admin_namespace.root?
70
75
  parts << active_admin_namespace.comments_registration_name.underscore.pluralize
71
- parts << 'path'
72
- send parts.join '_'
76
+ parts << "path"
77
+ send parts.join "_"
73
78
  end
74
79
 
75
80
  def build_comment_form
76
81
  active_admin_form_for(ActiveAdmin::Comment.new, url: comment_form_url) do |f|
77
82
  f.inputs do
78
- f.input :resource_type, as: :hidden, input_html: { value: ActiveAdmin::Comment.resource_type(parent.resource) }
79
- f.input :resource_id, as: :hidden, input_html: { value: parent.resource.id }
80
- f.input :body, label: false, input_html: { size: '80x8' }
83
+ f.input :resource_type, as: :hidden, input_html: { value: ActiveAdmin::Comment.resource_type(parent.resource) }
84
+ f.input :resource_id, as: :hidden, input_html: { value: parent.resource.id }
85
+ f.input :body, label: false, input_html: { size: "80x8" }
81
86
  end
82
87
  f.actions do
83
- f.action :submit, label: I18n.t('active_admin.comments.add')
88
+ f.action :submit, label: I18n.t("active_admin.comments.add")
84
89
  end
85
90
  end
86
91
  end
87
92
 
88
93
  def default_id_for_prefix
89
- 'active_admin_comments_for'
94
+ "active_admin_comments_for"
90
95
  end
91
96
  end
92
97
 
@@ -65,7 +65,7 @@ module ActiveAdmin
65
65
  end
66
66
 
67
67
  def controller_name
68
- [namespace.module_name, camelized_resource_name + "Controller"].compact.join('::')
68
+ [namespace.module_name, camelized_resource_name + "Controller"].compact.join("::")
69
69
  end
70
70
 
71
71
  # Override from `ActiveAdmin::Resource::Controllers`
@@ -21,7 +21,7 @@ module ActiveAdmin
21
21
  def page_action(name, options = {}, &block)
22
22
  config.page_actions << ControllerAction.new(name, options)
23
23
  controller do
24
- define_method(name, &block || Proc.new{})
24
+ define_method(name, &block || Proc.new {})
25
25
  end
26
26
  end
27
27
 
@@ -21,7 +21,8 @@ module ActiveAdmin
21
21
  delegate :has_key?, :fetch, to: :options
22
22
 
23
23
  def initialize(options = {}, &block)
24
- @options, @block = options, block
24
+ @options = options
25
+ @block = block
25
26
  end
26
27
 
27
28
  def [](key)