activeadmin 2.7.0 → 2.10.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 (214) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +166 -9
  3. data/CONTRIBUTING.md +7 -23
  4. data/README.md +3 -3
  5. data/app/assets/javascripts/active_admin/base.js +26 -21
  6. data/app/assets/stylesheets/active_admin/_base.scss +43 -37
  7. data/app/assets/stylesheets/active_admin/_forms.scss +3 -3
  8. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +0 -0
  9. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  10. data/app/javascript/active_admin/initializers/per-page.js +1 -1
  11. data/app/javascript/active_admin/lib/checkbox-toggler.js +3 -3
  12. data/app/javascript/active_admin/lib/dropdown-menu.js +1 -1
  13. data/app/javascript/active_admin/lib/modal-dialog.js +7 -7
  14. data/app/javascript/active_admin/lib/per-page.js +1 -1
  15. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +1 -1
  16. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  17. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  18. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  19. data/app/views/active_admin/page/index.html.arb +1 -0
  20. data/app/views/active_admin/resource/edit.html.arb +1 -0
  21. data/app/views/active_admin/resource/index.html.arb +1 -0
  22. data/app/views/active_admin/resource/new.html.arb +1 -0
  23. data/app/views/active_admin/resource/show.html.arb +1 -0
  24. data/app/views/layouts/active_admin.html.arb +1 -0
  25. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  26. data/config/locales/ar.yml +6 -6
  27. data/config/locales/es-MX.yml +2 -1
  28. data/config/locales/es.yml +2 -2
  29. data/config/locales/it.yml +18 -0
  30. data/config/locales/ja.yml +3 -3
  31. data/config/locales/ko.yml +1 -1
  32. data/config/locales/nl.yml +1 -1
  33. data/config/locales/ro.yml +3 -2
  34. data/docs/0-installation.md +1 -1
  35. data/docs/11-decorators.md +16 -5
  36. data/docs/5-forms.md +6 -1
  37. data/docs/6-show-pages.md +12 -0
  38. data/docs/8-custom-actions.md +1 -1
  39. data/docs/Gemfile +3 -2
  40. data/docs/Gemfile.lock +127 -93
  41. data/lib/active_admin/abstract_view_factory.rb +1 -0
  42. data/lib/active_admin/application.rb +17 -17
  43. data/lib/active_admin/application_settings.rb +4 -3
  44. data/lib/active_admin/asset_registration.rb +1 -0
  45. data/lib/active_admin/authorization_adapter.rb +4 -3
  46. data/lib/active_admin/base_controller/authorization.rb +14 -12
  47. data/lib/active_admin/base_controller/menu.rb +1 -0
  48. data/lib/active_admin/base_controller.rb +5 -5
  49. data/lib/active_admin/batch_actions/controller.rb +4 -3
  50. data/lib/active_admin/batch_actions/resource_extension.rb +10 -8
  51. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  52. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  53. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  54. data/lib/active_admin/batch_actions.rb +1 -0
  55. data/lib/active_admin/callbacks.rb +1 -0
  56. data/lib/active_admin/cancan_adapter.rb +2 -1
  57. data/lib/active_admin/collection_decorator.rb +32 -0
  58. data/lib/active_admin/component.rb +1 -0
  59. data/lib/active_admin/controller_action.rb +1 -0
  60. data/lib/active_admin/csv_builder.rb +5 -4
  61. data/lib/active_admin/dependency.rb +13 -12
  62. data/lib/active_admin/deprecation.rb +1 -0
  63. data/lib/active_admin/devise.rb +6 -5
  64. data/lib/active_admin/dsl.rb +2 -1
  65. data/lib/active_admin/dynamic_setting.rb +1 -0
  66. data/lib/active_admin/dynamic_settings_node.rb +3 -2
  67. data/lib/active_admin/engine.rb +11 -8
  68. data/lib/active_admin/error.rb +1 -2
  69. data/lib/active_admin/filters/active.rb +2 -1
  70. data/lib/active_admin/filters/active_filter.rb +6 -6
  71. data/lib/active_admin/filters/active_sidebar.rb +4 -30
  72. data/lib/active_admin/filters/dsl.rb +1 -0
  73. data/lib/active_admin/filters/forms.rb +7 -6
  74. data/lib/active_admin/filters/formtastic_addons.rb +2 -6
  75. data/lib/active_admin/filters/resource_extension.rb +2 -1
  76. data/lib/active_admin/filters.rb +8 -7
  77. data/lib/active_admin/form_builder.rb +25 -20
  78. data/lib/active_admin/generators/boilerplate.rb +2 -1
  79. data/lib/active_admin/helpers/collection.rb +2 -0
  80. data/lib/active_admin/helpers/i18n.rb +1 -0
  81. data/lib/active_admin/helpers/optional_display.rb +3 -2
  82. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  83. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  84. data/lib/active_admin/inputs/datepicker_input.rb +2 -1
  85. data/lib/active_admin/inputs/filters/base/search_method_select.rb +5 -4
  86. data/lib/active_admin/inputs/filters/base.rb +2 -1
  87. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  88. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  89. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  90. data/lib/active_admin/inputs/filters/date_range_input.rb +1 -0
  91. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  92. data/lib/active_admin/inputs/filters/select_input.rb +3 -2
  93. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  94. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  95. data/lib/active_admin/inputs.rb +1 -0
  96. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  97. data/lib/active_admin/localizers.rb +2 -1
  98. data/lib/active_admin/menu.rb +2 -1
  99. data/lib/active_admin/menu_collection.rb +1 -0
  100. data/lib/active_admin/menu_item.rb +8 -7
  101. data/lib/active_admin/namespace.rb +14 -13
  102. data/lib/active_admin/namespace_settings.rb +6 -5
  103. data/lib/active_admin/order_clause.rb +2 -1
  104. data/lib/active_admin/orm/active_record/comments/comment.rb +4 -3
  105. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  106. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  107. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  108. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +20 -19
  109. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  110. data/lib/active_admin/orm/active_record/comments.rb +20 -19
  111. data/lib/active_admin/orm/active_record.rb +2 -1
  112. data/lib/active_admin/orm/mongoid.rb +1 -0
  113. data/lib/active_admin/page.rb +2 -1
  114. data/lib/active_admin/page_controller.rb +1 -0
  115. data/lib/active_admin/page_dsl.rb +1 -0
  116. data/lib/active_admin/page_presenter.rb +1 -0
  117. data/lib/active_admin/pundit_adapter.rb +6 -5
  118. data/lib/active_admin/resource/action_items.rb +6 -5
  119. data/lib/active_admin/resource/attributes.rb +2 -1
  120. data/lib/active_admin/resource/belongs_to.rb +3 -2
  121. data/lib/active_admin/resource/controllers.rb +2 -1
  122. data/lib/active_admin/resource/includes.rb +1 -0
  123. data/lib/active_admin/resource/menu.rb +5 -4
  124. data/lib/active_admin/resource/model.rb +1 -0
  125. data/lib/active_admin/resource/naming.rb +5 -4
  126. data/lib/active_admin/resource/ordering.rb +1 -0
  127. data/lib/active_admin/resource/page_presenters.rb +1 -0
  128. data/lib/active_admin/resource/pagination.rb +1 -0
  129. data/lib/active_admin/resource/routes.rb +6 -7
  130. data/lib/active_admin/resource/scope_to.rb +8 -7
  131. data/lib/active_admin/resource/scopes.rb +1 -0
  132. data/lib/active_admin/resource/sidebars.rb +2 -1
  133. data/lib/active_admin/resource.rb +18 -17
  134. data/lib/active_admin/resource_collection.rb +1 -0
  135. data/lib/active_admin/resource_controller/action_builder.rb +1 -0
  136. data/lib/active_admin/resource_controller/data_access.rb +4 -3
  137. data/lib/active_admin/resource_controller/decorators.rb +7 -28
  138. data/lib/active_admin/resource_controller/polymorphic_routes.rb +1 -0
  139. data/lib/active_admin/resource_controller/resource_class_methods.rb +1 -0
  140. data/lib/active_admin/resource_controller/scoping.rb +1 -0
  141. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  142. data/lib/active_admin/resource_controller/streaming.rb +8 -6
  143. data/lib/active_admin/resource_controller.rb +13 -11
  144. data/lib/active_admin/resource_dsl.rb +11 -25
  145. data/lib/active_admin/router.rb +1 -0
  146. data/lib/active_admin/scope.rb +7 -6
  147. data/lib/active_admin/settings_node.rb +1 -0
  148. data/lib/active_admin/sidebar_section.rb +1 -0
  149. data/lib/active_admin/version.rb +2 -1
  150. data/lib/active_admin/view_factory.rb +18 -17
  151. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  152. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  153. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
  154. data/lib/active_admin/view_helpers/display_helper.rb +15 -7
  155. data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
  156. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  157. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  158. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  159. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +1 -0
  160. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  161. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  162. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  163. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  164. data/lib/active_admin/view_helpers.rb +2 -1
  165. data/lib/active_admin/views/action_items.rb +1 -0
  166. data/lib/active_admin/views/components/active_admin_form.rb +7 -6
  167. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  168. data/lib/active_admin/views/components/attributes_table.rb +6 -5
  169. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  170. data/lib/active_admin/views/components/columns.rb +1 -0
  171. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  172. data/lib/active_admin/views/components/index_list.rb +4 -3
  173. data/lib/active_admin/views/components/menu.rb +2 -1
  174. data/lib/active_admin/views/components/menu_item.rb +5 -4
  175. data/lib/active_admin/views/components/paginated_collection.rb +19 -18
  176. data/lib/active_admin/views/components/panel.rb +2 -1
  177. data/lib/active_admin/views/components/scopes.rb +6 -5
  178. data/lib/active_admin/views/components/sidebar.rb +1 -0
  179. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  180. data/lib/active_admin/views/components/site_title.rb +2 -1
  181. data/lib/active_admin/views/components/status_tag.rb +12 -11
  182. data/lib/active_admin/views/components/table_for.rb +17 -16
  183. data/lib/active_admin/views/components/tabs.rb +4 -3
  184. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  185. data/lib/active_admin/views/footer.rb +3 -1
  186. data/lib/active_admin/views/header.rb +3 -2
  187. data/lib/active_admin/views/index_as_block.rb +1 -0
  188. data/lib/active_admin/views/index_as_blog.rb +2 -1
  189. data/lib/active_admin/views/index_as_grid.rb +2 -1
  190. data/lib/active_admin/views/index_as_table.rb +17 -16
  191. data/lib/active_admin/views/pages/base.rb +11 -8
  192. data/lib/active_admin/views/pages/form.rb +1 -0
  193. data/lib/active_admin/views/pages/index.rb +15 -13
  194. data/lib/active_admin/views/pages/layout.rb +1 -0
  195. data/lib/active_admin/views/pages/page.rb +1 -0
  196. data/lib/active_admin/views/pages/show.rb +1 -0
  197. data/lib/active_admin/views/tabbed_navigation.rb +3 -2
  198. data/lib/active_admin/views/title_bar.rb +2 -1
  199. data/lib/active_admin/views.rb +2 -1
  200. data/lib/active_admin.rb +61 -61
  201. data/lib/activeadmin.rb +2 -1
  202. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  203. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  204. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  205. data/lib/generators/active_admin/install/install_generator.rb +8 -7
  206. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +2 -2
  207. data/lib/generators/active_admin/install/templates/dashboard.rb +1 -0
  208. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  209. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  210. data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
  211. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +2 -2
  212. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +8 -7
  213. data/lib/ransack_ext.rb +9 -8
  214. metadata +24 -50
@@ -1,5 +1,6 @@
1
- require 'active_admin/views'
2
- require 'active_admin/views/components/panel'
1
+ # frozen_string_literal: true
2
+ require "active_admin/views"
3
+ require "active_admin/views/components/panel"
3
4
 
4
5
  module ActiveAdmin
5
6
  module Comments
@@ -22,13 +23,13 @@ module ActiveAdmin
22
23
  protected
23
24
 
24
25
  def title
25
- I18n.t 'active_admin.comments.title_content', count: @comments.total_count
26
+ I18n.t "active_admin.comments.title_content", count: @comments.total_count
26
27
  end
27
28
 
28
29
  def build_comments
29
30
  if @comments.any?
30
31
  @comments.each(&method(:build_comment))
31
- div page_entries_info(@comments).html_safe, class: 'pagination_information'
32
+ div page_entries_info(@comments).html_safe, class: "pagination_information"
32
33
  else
33
34
  build_empty_message
34
35
  end
@@ -42,56 +43,56 @@ module ActiveAdmin
42
43
 
43
44
  def build_comment(comment)
44
45
  div for: comment do
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')
46
+ div class: "active_admin_comment_meta" do
47
+ h4 class: "active_admin_comment_author" do
48
+ comment.author ? auto_link(comment.author) : I18n.t("active_admin.comments.author_missing")
48
49
  end
49
50
  span pretty_format comment.created_at
50
51
  if authorized?(ActiveAdmin::Auth::DESTROY, comment)
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') }
52
+ 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") }
52
53
  end
53
54
  end
54
- div class: 'active_admin_comment_body' do
55
+ div class: "active_admin_comment_body" do
55
56
  simple_format comment.body
56
57
  end
57
58
  end
58
59
  end
59
60
 
60
61
  def build_empty_message
61
- span I18n.t('active_admin.comments.no_comments_yet'), class: 'empty'
62
+ span I18n.t("active_admin.comments.no_comments_yet"), class: "empty"
62
63
  end
63
64
 
64
65
  def comments_url(*args)
65
66
  parts = []
66
67
  parts << active_admin_namespace.name unless active_admin_namespace.root?
67
68
  parts << active_admin_namespace.comments_registration_name.underscore
68
- parts << 'path'
69
- send parts.join('_'), *args
69
+ parts << "path"
70
+ send parts.join("_"), *args
70
71
  end
71
72
 
72
73
  def comment_form_url
73
74
  parts = []
74
75
  parts << active_admin_namespace.name unless active_admin_namespace.root?
75
76
  parts << active_admin_namespace.comments_registration_name.underscore.pluralize
76
- parts << 'path'
77
- send parts.join '_'
77
+ parts << "path"
78
+ send parts.join "_"
78
79
  end
79
80
 
80
81
  def build_comment_form
81
82
  active_admin_form_for(ActiveAdmin::Comment.new, url: comment_form_url) do |f|
82
83
  f.inputs do
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' }
84
+ f.input :resource_type, as: :hidden, input_html: { value: ActiveAdmin::Comment.resource_type(parent.resource) }
85
+ f.input :resource_id, as: :hidden, input_html: { value: parent.resource.id }
86
+ f.input :body, label: false, input_html: { size: "80x8" }
86
87
  end
87
88
  f.actions do
88
- f.action :submit, label: I18n.t('active_admin.comments.add')
89
+ f.action :submit, label: I18n.t("active_admin.comments.add")
89
90
  end
90
91
  end
91
92
  end
92
93
 
93
94
  def default_id_for_prefix
94
- 'active_admin_comments_for'
95
+ "active_admin_comments_for"
95
96
  end
96
97
  end
97
98
 
@@ -1,2 +1,3 @@
1
- require 'active_admin/views'
2
- require 'active_admin/orm/active_record/comments/views/active_admin_comments'
1
+ # frozen_string_literal: true
2
+ require "active_admin/views"
3
+ require "active_admin/orm/active_record/comments/views/active_admin_comments"
@@ -1,21 +1,22 @@
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
+ # frozen_string_literal: true
2
+ require "active_admin/orm/active_record/comments/views"
3
+ require "active_admin/orm/active_record/comments/show_page_helper"
4
+ require "active_admin/orm/active_record/comments/namespace_helper"
5
+ require "active_admin/orm/active_record/comments/resource_helper"
5
6
 
6
7
  # 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, {}
8
+ ActiveAdmin::Application.inheritable_setting :comments, true
9
+ ActiveAdmin::Application.inheritable_setting :comments_registration_name, "Comment"
10
+ ActiveAdmin::Application.inheritable_setting :comments_order, "created_at ASC"
11
+ ActiveAdmin::Application.inheritable_setting :comments_menu, {}
11
12
 
12
13
  # Insert helper modules
13
14
  ActiveAdmin::Namespace.send :include, ActiveAdmin::Comments::NamespaceHelper
14
- ActiveAdmin::Resource.send :include, ActiveAdmin::Comments::ResourceHelper
15
+ ActiveAdmin::Resource.send :include, ActiveAdmin::Comments::ResourceHelper
15
16
  ActiveAdmin.application.view_factory.show_page.send :include, ActiveAdmin::Comments::ShowPageHelper
16
17
 
17
18
  # 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'
19
+ ActiveAdmin.autoload :Comment, "active_admin/orm/active_record/comments/comment"
19
20
 
20
21
  # Hint i18n-tasks about model and attribute translations used by default install
21
22
  # i18n-tasks-use t('activerecord.models.comment')
@@ -36,7 +37,7 @@ ActiveAdmin.after_load do |app|
36
37
 
37
38
  menu namespace.comments ? namespace.comments_menu : false
38
39
 
39
- config.comments = false # Don't allow comments on comments
40
+ config.comments = false # Don't allow comments on comments
40
41
  config.batch_actions = false # The default destroy batch action isn't showing up anyway...
41
42
 
42
43
  scope :all, show_count: false
@@ -51,7 +52,7 @@ ActiveAdmin.after_load do |app|
51
52
  # Store the author and namespace
52
53
  before_save do |comment|
53
54
  comment.namespace = active_admin_config.namespace.name
54
- comment.author = current_active_admin_user
55
+ comment.author = current_active_admin_user
55
56
  end
56
57
 
57
58
  controller do
@@ -67,7 +68,7 @@ ActiveAdmin.after_load do |app|
67
68
  redirect_back fallback_location: active_admin_root
68
69
  end
69
70
  failure.html do
70
- flash[:error] = I18n.t 'active_admin.comments.errors.empty_text'
71
+ flash[:error] = I18n.t "active_admin.comments.errors.empty_text"
71
72
  redirect_back fallback_location: active_admin_root
72
73
  end
73
74
  end
@@ -88,12 +89,12 @@ ActiveAdmin.after_load do |app|
88
89
  permit_params :body, :namespace, :resource_id, :resource_type
89
90
 
90
91
  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
92
+ column I18n.t("active_admin.comments.resource_type"), :resource_type
93
+ column I18n.t("active_admin.comments.author_type"), :author_type
94
+ column I18n.t("active_admin.comments.resource"), :resource
95
+ column I18n.t("active_admin.comments.author"), :author
96
+ column I18n.t("active_admin.comments.body"), :body
97
+ column I18n.t("active_admin.comments.created_at"), :created_at
97
98
  actions
98
99
  end
99
100
  end
@@ -1,5 +1,6 @@
1
+ # frozen_string_literal: true
1
2
  # ActiveRecord-specific plugins should be required here
2
3
 
3
4
  ActiveAdmin::DatabaseHitDuringLoad.database_error_classes << ActiveRecord::StatementInvalid
4
5
 
5
- require 'active_admin/orm/active_record/comments'
6
+ require "active_admin/orm/active_record/comments"
@@ -1 +1,2 @@
1
+ # frozen_string_literal: true
1
2
  # Mongoid-specific plugins should be required here
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  # Page is the primary data storage for page configuration in Active Admin
3
4
  #
@@ -65,7 +66,7 @@ module ActiveAdmin
65
66
  end
66
67
 
67
68
  def controller_name
68
- [namespace.module_name, camelized_resource_name + "Controller"].compact.join('::')
69
+ [namespace.module_name, camelized_resource_name + "Controller"].compact.join("::")
69
70
  end
70
71
 
71
72
  # Override from `ActiveAdmin::Resource::Controllers`
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  # All Pages controllers inherit from this controller.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  # This is the class where all the register_page blocks are evaluated.
3
4
  class PageDSL < DSL
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  # A simple object that gets used to present different aspects of views
@@ -1,6 +1,7 @@
1
+ # frozen_string_literal: true
1
2
  ActiveAdmin::Dependency.pundit!
2
3
 
3
- require 'pundit'
4
+ require "pundit"
4
5
 
5
6
  # Add a setting to the application to configure the pundit default policy
6
7
  ActiveAdmin::Application.inheritable_setting :pundit_default_policy, nil
@@ -31,7 +32,7 @@ module ActiveAdmin
31
32
 
32
33
  def retrieve_policy(subject)
33
34
  case subject
34
- when nil then Pundit.policy!(user, namespace(resource))
35
+ when nil then Pundit.policy!(user, namespace(resource))
35
36
  when Class then Pundit.policy!(user, namespace(subject.new))
36
37
  else Pundit.policy!(user, namespace(subject))
37
38
  end
@@ -46,9 +47,9 @@ module ActiveAdmin
46
47
  def format_action(action, subject)
47
48
  # https://github.com/varvet/pundit/blob/master/lib/generators/pundit/install/templates/application_policy.rb
48
49
  case action
49
- when Auth::CREATE then :create?
50
- when Auth::UPDATE then :update?
51
- when Auth::READ then subject.is_a?(Class) ? :index? : :show?
50
+ when Auth::CREATE then :create?
51
+ when Auth::UPDATE then :update?
52
+ when Auth::READ then subject.is_a?(Class) ? :index? : :show?
52
53
  when Auth::DESTROY then subject.is_a?(Class) ? :destroy_all? : :destroy?
53
54
  else "#{action}?"
54
55
  end
@@ -1,4 +1,5 @@
1
- require 'active_admin/helpers/optional_display'
1
+ # frozen_string_literal: true
2
+ require "active_admin/helpers/optional_display"
2
3
 
3
4
  module ActiveAdmin
4
5
 
@@ -64,7 +65,7 @@ module ActiveAdmin
64
65
  # Adds the default New link on index
65
66
  def add_default_new_action_item
66
67
  add_action_item :new, only: :index do
67
- if controller.action_methods.include?('new') && authorized?(ActiveAdmin::Auth::CREATE, active_admin_config.resource_class)
68
+ if controller.action_methods.include?("new") && authorized?(ActiveAdmin::Auth::CREATE, active_admin_config.resource_class)
68
69
  localizer = ActiveAdmin::Localizers.resource(active_admin_config)
69
70
  link_to localizer.t(:new_model), new_resource_path
70
71
  end
@@ -74,7 +75,7 @@ module ActiveAdmin
74
75
  # Adds the default Edit link on show
75
76
  def add_default_edit_action_item
76
77
  add_action_item :edit, only: :show do
77
- if controller.action_methods.include?('edit') && authorized?(ActiveAdmin::Auth::UPDATE, resource)
78
+ if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::UPDATE, resource)
78
79
  localizer = ActiveAdmin::Localizers.resource(active_admin_config)
79
80
  link_to localizer.t(:edit_model), edit_resource_path(resource)
80
81
  end
@@ -84,10 +85,10 @@ module ActiveAdmin
84
85
  # Adds the default Destroy link on show
85
86
  def add_default_show_action_item
86
87
  add_action_item :destroy, only: :show do
87
- if controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, resource)
88
+ if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
88
89
  localizer = ActiveAdmin::Localizers.resource(active_admin_config)
89
90
  link_to localizer.t(:delete_model), resource_path(resource), method: :delete,
90
- data: { confirm: localizer.t(:delete_confirmation) }
91
+ data: { confirm: localizer.t(:delete_confirmation) }
91
92
  end
92
93
  end
93
94
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  class Resource
@@ -36,7 +37,7 @@ module ActiveAdmin
36
37
  end
37
38
 
38
39
  def counter_cache_col?(c)
39
- c.name.end_with?('_count')
40
+ c.name.end_with?("_count")
40
41
  end
41
42
 
42
43
  def filtered_col?(c)
@@ -1,4 +1,5 @@
1
- require 'active_admin/resource'
1
+ # frozen_string_literal: true
2
+ require "active_admin/resource"
2
3
 
3
4
  module ActiveAdmin
4
5
  class Resource
@@ -46,7 +47,7 @@ module ActiveAdmin
46
47
  end
47
48
 
48
49
  def to_param
49
- :"#{@target_name}_id"
50
+ (@options[:param] || "#{@target_name}_id").to_sym
50
51
  end
51
52
  end
52
53
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Resource
3
4
  module Controllers
@@ -6,7 +7,7 @@ module ActiveAdmin
6
7
  # Returns a properly formatted controller name for this
7
8
  # config within its namespace
8
9
  def controller_name
9
- [namespace.module_name, resource_name.plural.camelize + "Controller"].compact.join('::')
10
+ [namespace.module_name, resource_name.plural.camelize + "Controller"].compact.join("::")
10
11
  end
11
12
 
12
13
  # Returns the controller for this config
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Resource
3
4
  module Includes
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Resource
3
4
 
@@ -7,12 +8,12 @@ module ActiveAdmin
7
8
  # To disable this menu item, call `menu(false)` from the DSL
8
9
  def menu_item_options=(options)
9
10
  if options == false
10
- @include_in_menu = false
11
+ @include_in_menu = false
11
12
  @menu_item_options = {}
12
13
  else
13
14
  @include_in_menu = true
14
15
  @navigation_menu_name = options[:menu_name]
15
- @menu_item_options = default_menu_options.merge options
16
+ @menu_item_options = default_menu_options.merge options
16
17
  end
17
18
  end
18
19
 
@@ -27,8 +28,8 @@ module ActiveAdmin
27
28
  {
28
29
  id: resource_name.plural,
29
30
  label: proc { resource.plural_resource_label },
30
- url: proc { resource.route_collection_path(params, url_options) },
31
- if: proc { authorized?(Auth::READ, menu_resource_class) }
31
+ url: proc { resource.route_collection_path(params, url_options) },
32
+ if: proc { authorized?(Auth::READ, menu_resource_class) }
32
33
  }
33
34
  end
34
35
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Model
3
4
  def initialize(resource, record)
@@ -1,10 +1,11 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Resource
3
4
 
4
5
  module Naming
5
6
  def resource_name
6
7
  @resource_name ||= begin
7
- as = @options[:as].gsub /\s/, '' if @options[:as]
8
+ as = @options[:as].gsub /\s/, "" if @options[:as]
8
9
 
9
10
  if as || !resource_class.respond_to?(:model_name)
10
11
  Name.new resource_class, as
@@ -17,13 +18,13 @@ module ActiveAdmin
17
18
  # Returns the name to call this resource such as "Bank Account"
18
19
  def resource_label
19
20
  resource_name.translate count: 1,
20
- default: resource_name.to_s.gsub('::', ' ').titleize
21
+ default: resource_name.to_s.gsub("::", " ").titleize
21
22
  end
22
23
 
23
24
  # Returns the plural version of this resource such as "Bank Accounts"
24
25
  def plural_resource_label(options = {})
25
- defaults = { count: Helpers::I18n::PLURAL_MANY_COUNT,
26
- default: resource_label.pluralize.titleize }
26
+ defaults = { count: Helpers::I18n::PLURAL_MANY_COUNT,
27
+ default: resource_label.pluralize.titleize }
27
28
  resource_name.translate defaults.merge options
28
29
  end
29
30
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Resource
3
4
  module Ordering
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Resource
3
4
  module PagePresenters
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  class Resource
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Resource
3
4
  module Routes
@@ -42,8 +43,6 @@ module ActiveAdmin
42
43
  config[:route_collection_name] == config[:route_instance_name]
43
44
  end
44
45
 
45
- private
46
-
47
46
  class RouteBuilder
48
47
  def initialize(resource)
49
48
  @resource = resource
@@ -98,13 +97,13 @@ module ActiveAdmin
98
97
  suffix = options[:suffix] || "path"
99
98
  route = []
100
99
 
101
- route << options[:action] # "batch_action", "edit" or "new"
102
- route << resource.route_prefix # "admin"
100
+ route << options[:action] # "batch_action", "edit" or "new"
101
+ route << resource.route_prefix # "admin"
103
102
  route << belongs_to_name if nested? # "category"
104
- route << resource_path_name # "posts" or "post"
105
- route << suffix # "path" or "index path"
103
+ route << resource_path_name # "posts" or "post"
104
+ route << suffix # "path" or "index path"
106
105
 
107
- route.compact.join('_').to_sym # :admin_category_posts_path
106
+ route.compact.join("_").to_sym # :admin_category_posts_path
108
107
  end
109
108
 
110
109
  # @return params to pass to instance path
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Resource
3
4
  module ScopeTo
@@ -38,10 +39,10 @@ module ActiveAdmin
38
39
  options = args.extract_options!
39
40
  method = args.first
40
41
 
41
- scope_to_config[:method] = block || method
42
- scope_to_config[:association_method] = options[:association_method]
43
- scope_to_config[:if] = options[:if]
44
- scope_to_config[:unless] = options[:unless]
42
+ scope_to_config[:method] = block || method
43
+ scope_to_config[:association_method] = options[:association_method]
44
+ scope_to_config[:if] = options[:if]
45
+ scope_to_config[:unless] = options[:unless]
45
46
 
46
47
  end
47
48
 
@@ -55,10 +56,10 @@ module ActiveAdmin
55
56
 
56
57
  def scope_to_config
57
58
  @scope_to_config ||= {
58
- method: nil,
59
+ method: nil,
59
60
  association_method: nil,
60
- if: nil,
61
- unless: nil
61
+ if: nil,
62
+ unless: nil
62
63
  }
63
64
  end
64
65
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Resource
3
4
  module Scopes
@@ -1,4 +1,5 @@
1
- require 'active_admin/helpers/optional_display'
1
+ # frozen_string_literal: true
2
+ require "active_admin/helpers/optional_display"
2
3
 
3
4
  module ActiveAdmin
4
5
 
@@ -1,18 +1,19 @@
1
- require 'active_admin/resource/action_items'
2
- require 'active_admin/resource/attributes'
3
- require 'active_admin/resource/controllers'
4
- require 'active_admin/resource/menu'
5
- require 'active_admin/resource/page_presenters'
6
- require 'active_admin/resource/pagination'
7
- require 'active_admin/resource/routes'
8
- require 'active_admin/resource/naming'
9
- require 'active_admin/resource/scopes'
10
- require 'active_admin/resource/includes'
11
- require 'active_admin/resource/scope_to'
12
- require 'active_admin/resource/sidebars'
13
- require 'active_admin/resource/belongs_to'
14
- require 'active_admin/resource/ordering'
15
- require 'active_admin/resource/model'
1
+ # frozen_string_literal: true
2
+ require "active_admin/resource/action_items"
3
+ require "active_admin/resource/attributes"
4
+ require "active_admin/resource/controllers"
5
+ require "active_admin/resource/menu"
6
+ require "active_admin/resource/page_presenters"
7
+ require "active_admin/resource/pagination"
8
+ require "active_admin/resource/routes"
9
+ require "active_admin/resource/naming"
10
+ require "active_admin/resource/scopes"
11
+ require "active_admin/resource/includes"
12
+ require "active_admin/resource/scope_to"
13
+ require "active_admin/resource/sidebars"
14
+ require "active_admin/resource/belongs_to"
15
+ require "active_admin/resource/ordering"
16
+ require "active_admin/resource/model"
16
17
 
17
18
  module ActiveAdmin
18
19
 
@@ -27,7 +28,7 @@ module ActiveAdmin
27
28
  class Resource
28
29
 
29
30
  # Event dispatched when a new resource is registered
30
- RegisterEvent = 'active_admin.resource.register'.freeze
31
+ RegisterEvent = "active_admin.resource.register".freeze
31
32
 
32
33
  # The namespace this config belongs to
33
34
  attr_reader :namespace
@@ -44,7 +45,7 @@ module ActiveAdmin
44
45
  # The default sort order to use in the controller
45
46
  attr_writer :sort_order
46
47
  def sort_order
47
- @sort_order ||= (resource_class.respond_to?(:primary_key) ? resource_class.primary_key.to_s : 'id') + '_desc'
48
+ @sort_order ||= (resource_class.respond_to?(:primary_key) ? resource_class.primary_key.to_s : "id") + "_desc"
48
49
  end
49
50
 
50
51
  # Set the configuration for the CSV
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  # This is a container for resources, which acts much like a Hash.
3
4
  # It's assumed that an added resource responds to `resource_name`.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
 
@@ -23,9 +24,9 @@ module ActiveAdmin
23
24
 
24
25
  COLLECTION_APPLIES = [
25
26
  :authorization_scope,
26
- :sorting,
27
27
  :filtering,
28
28
  :scoping,
29
+ :sorting,
29
30
  :includes,
30
31
  :pagination,
31
32
  :collection_decorator
@@ -128,7 +129,7 @@ module ActiveAdmin
128
129
  #
129
130
  # @return [ActiveRecord::Base] An un-saved active record base object
130
131
  def build_new_resource
131
- scoped_collection.send(
132
+ apply_authorization_scope(scoped_collection).send(
132
133
  method_for_build,
133
134
  *resource_params.map { |params| params.slice(active_admin_config.resource_class.inheritance_column) }
134
135
  )
@@ -258,7 +259,7 @@ module ActiveAdmin
258
259
  end
259
260
 
260
261
  def collection_applies(options = {})
261
- only = Array(options.fetch(:only, COLLECTION_APPLIES))
262
+ only = Array(options.fetch(:only, COLLECTION_APPLIES))
262
263
  except = Array(options.fetch(:except, []))
263
264
 
264
265
  COLLECTION_APPLIES & only - except