activeadmin 2.9.0 → 2.14.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 (241) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +230 -1
  3. data/CONTRIBUTING.md +4 -5
  4. data/README.md +2 -2
  5. data/app/assets/javascripts/active_admin/base.js +13 -9
  6. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  7. data/app/assets/stylesheets/active_admin/_forms.scss +1 -11
  8. data/app/assets/stylesheets/active_admin/_normalize.scss +25 -123
  9. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  10. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  11. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +9 -0
  12. data/app/assets/stylesheets/active_admin/structure/_footer.scss +6 -1
  13. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  14. data/app/javascript/active_admin/initializers/has-many.js +4 -1
  15. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  16. data/app/views/active_admin/page/index.html.arb +1 -0
  17. data/app/views/active_admin/resource/edit.html.arb +1 -0
  18. data/app/views/active_admin/resource/index.html.arb +1 -0
  19. data/app/views/active_admin/resource/new.html.arb +1 -0
  20. data/app/views/active_admin/resource/show.html.arb +1 -0
  21. data/app/views/layouts/active_admin.html.arb +1 -0
  22. data/app/views/layouts/active_admin_logged_out.html.erb +5 -4
  23. data/config/locales/fr.yml +3 -3
  24. data/config/locales/ko.yml +1 -1
  25. data/config/locales/nl.yml +1 -1
  26. data/config/locales/ro.yml +3 -2
  27. data/config/locales/vi.yml +34 -7
  28. data/config/locales/zh-CN.yml +36 -17
  29. data/lib/active_admin/abstract_view_factory.rb +1 -0
  30. data/lib/active_admin/application.rb +10 -10
  31. data/lib/active_admin/application_settings.rb +1 -0
  32. data/lib/active_admin/asset_registration.rb +4 -3
  33. data/lib/active_admin/authorization_adapter.rb +3 -0
  34. data/lib/active_admin/base_controller/authorization.rb +4 -3
  35. data/lib/active_admin/base_controller/menu.rb +1 -0
  36. data/lib/active_admin/base_controller.rb +2 -1
  37. data/lib/active_admin/batch_actions/controller.rb +1 -0
  38. data/lib/active_admin/batch_actions/resource_extension.rb +1 -0
  39. data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -0
  40. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -0
  41. data/lib/active_admin/batch_actions/views/selection_cells.rb +1 -0
  42. data/lib/active_admin/batch_actions.rb +1 -0
  43. data/lib/active_admin/callbacks.rb +1 -0
  44. data/lib/active_admin/cancan_adapter.rb +1 -0
  45. data/lib/active_admin/collection_decorator.rb +1 -0
  46. data/lib/active_admin/component.rb +1 -0
  47. data/lib/active_admin/controller_action.rb +1 -0
  48. data/lib/active_admin/csv_builder.rb +5 -18
  49. data/lib/active_admin/dependency.rb +1 -4
  50. data/lib/active_admin/deprecation.rb +1 -0
  51. data/lib/active_admin/devise.rb +11 -0
  52. data/lib/active_admin/dsl.rb +1 -0
  53. data/lib/active_admin/dynamic_setting.rb +1 -0
  54. data/lib/active_admin/dynamic_settings_node.rb +1 -0
  55. data/lib/active_admin/engine.rb +4 -2
  56. data/lib/active_admin/error.rb +1 -0
  57. data/lib/active_admin/filters/active.rb +1 -0
  58. data/lib/active_admin/filters/active_filter.rb +1 -0
  59. data/lib/active_admin/filters/active_sidebar.rb +2 -28
  60. data/lib/active_admin/filters/dsl.rb +1 -0
  61. data/lib/active_admin/filters/forms.rb +1 -0
  62. data/lib/active_admin/filters/formtastic_addons.rb +1 -0
  63. data/lib/active_admin/filters/resource_extension.rb +5 -4
  64. data/lib/active_admin/filters.rb +1 -0
  65. data/lib/active_admin/form_builder.rb +1 -0
  66. data/lib/active_admin/generators/boilerplate.rb +1 -0
  67. data/lib/active_admin/helpers/collection.rb +2 -0
  68. data/lib/active_admin/helpers/i18n.rb +1 -0
  69. data/lib/active_admin/helpers/optional_display.rb +1 -0
  70. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  71. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  72. data/lib/active_admin/inputs/datepicker_input.rb +1 -0
  73. data/lib/active_admin/inputs/filters/base/search_method_select.rb +1 -0
  74. data/lib/active_admin/inputs/filters/base.rb +1 -0
  75. data/lib/active_admin/inputs/filters/boolean_input.rb +1 -0
  76. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -0
  77. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  78. data/lib/active_admin/inputs/filters/date_range_input.rb +1 -0
  79. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  80. data/lib/active_admin/inputs/filters/select_input.rb +1 -0
  81. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  82. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  83. data/lib/active_admin/inputs.rb +1 -0
  84. data/lib/active_admin/localizers/resource_localizer.rb +1 -0
  85. data/lib/active_admin/localizers.rb +1 -0
  86. data/lib/active_admin/menu.rb +1 -0
  87. data/lib/active_admin/menu_collection.rb +1 -0
  88. data/lib/active_admin/menu_item.rb +1 -0
  89. data/lib/active_admin/namespace.rb +3 -2
  90. data/lib/active_admin/namespace_settings.rb +1 -0
  91. data/lib/active_admin/order_clause.rb +1 -0
  92. data/lib/active_admin/orm/active_record/comments/comment.rb +1 -0
  93. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  94. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  95. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  96. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +2 -1
  97. data/lib/active_admin/orm/active_record/comments/views.rb +1 -0
  98. data/lib/active_admin/orm/active_record/comments.rb +9 -8
  99. data/lib/active_admin/orm/active_record.rb +1 -0
  100. data/lib/active_admin/orm/mongoid.rb +1 -0
  101. data/lib/active_admin/page.rb +1 -0
  102. data/lib/active_admin/page_controller.rb +1 -0
  103. data/lib/active_admin/page_dsl.rb +1 -0
  104. data/lib/active_admin/page_presenter.rb +1 -0
  105. data/lib/active_admin/pundit_adapter.rb +55 -13
  106. data/lib/active_admin/resource/action_items.rb +3 -2
  107. data/lib/active_admin/resource/attributes.rb +1 -0
  108. data/lib/active_admin/resource/belongs_to.rb +1 -0
  109. data/lib/active_admin/resource/controllers.rb +1 -0
  110. data/lib/active_admin/resource/includes.rb +1 -0
  111. data/lib/active_admin/resource/menu.rb +1 -0
  112. data/lib/active_admin/resource/model.rb +1 -0
  113. data/lib/active_admin/resource/naming.rb +1 -0
  114. data/lib/active_admin/resource/ordering.rb +1 -0
  115. data/lib/active_admin/resource/page_presenters.rb +1 -0
  116. data/lib/active_admin/resource/pagination.rb +1 -0
  117. data/lib/active_admin/resource/routes.rb +1 -0
  118. data/lib/active_admin/resource/scope_to.rb +1 -0
  119. data/lib/active_admin/resource/scopes.rb +1 -0
  120. data/lib/active_admin/resource/sidebars.rb +1 -0
  121. data/lib/active_admin/resource.rb +3 -2
  122. data/lib/active_admin/resource_collection.rb +1 -0
  123. data/lib/active_admin/resource_controller/action_builder.rb +1 -0
  124. data/lib/active_admin/resource_controller/data_access.rb +30 -4
  125. data/lib/active_admin/resource_controller/decorators.rb +1 -0
  126. data/lib/active_admin/resource_controller/polymorphic_routes.rb +1 -0
  127. data/lib/active_admin/resource_controller/resource_class_methods.rb +1 -0
  128. data/lib/active_admin/resource_controller/scoping.rb +1 -0
  129. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  130. data/lib/active_admin/resource_controller/streaming.rb +3 -2
  131. data/lib/active_admin/resource_controller.rb +1 -0
  132. data/lib/active_admin/resource_dsl.rb +7 -21
  133. data/lib/active_admin/router.rb +1 -0
  134. data/lib/active_admin/scope.rb +1 -0
  135. data/lib/active_admin/settings_node.rb +1 -0
  136. data/lib/active_admin/sidebar_section.rb +1 -0
  137. data/lib/active_admin/version.rb +2 -1
  138. data/lib/active_admin/view_factory.rb +1 -0
  139. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  140. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
  141. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +1 -0
  142. data/lib/active_admin/view_helpers/display_helper.rb +11 -3
  143. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  144. data/lib/active_admin/view_helpers/fields_for.rb +1 -0
  145. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  146. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  147. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +1 -0
  148. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  149. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  150. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  151. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  152. data/lib/active_admin/view_helpers.rb +1 -0
  153. data/lib/active_admin/views/action_items.rb +1 -0
  154. data/lib/active_admin/views/components/active_admin_form.rb +2 -1
  155. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  156. data/lib/active_admin/views/components/attributes_table.rb +1 -0
  157. data/lib/active_admin/views/components/blank_slate.rb +1 -0
  158. data/lib/active_admin/views/components/columns.rb +1 -0
  159. data/lib/active_admin/views/components/dropdown_menu.rb +3 -5
  160. data/lib/active_admin/views/components/index_list.rb +1 -0
  161. data/lib/active_admin/views/components/menu.rb +1 -0
  162. data/lib/active_admin/views/components/menu_item.rb +1 -0
  163. data/lib/active_admin/views/components/paginated_collection.rb +1 -0
  164. data/lib/active_admin/views/components/panel.rb +1 -0
  165. data/lib/active_admin/views/components/scopes.rb +1 -0
  166. data/lib/active_admin/views/components/sidebar.rb +1 -0
  167. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  168. data/lib/active_admin/views/components/site_title.rb +1 -0
  169. data/lib/active_admin/views/components/status_tag.rb +1 -0
  170. data/lib/active_admin/views/components/table_for.rb +1 -0
  171. data/lib/active_admin/views/components/tabs.rb +1 -0
  172. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  173. data/lib/active_admin/views/footer.rb +1 -0
  174. data/lib/active_admin/views/header.rb +1 -0
  175. data/lib/active_admin/views/index_as_block.rb +1 -0
  176. data/lib/active_admin/views/index_as_blog.rb +1 -0
  177. data/lib/active_admin/views/index_as_grid.rb +1 -0
  178. data/lib/active_admin/views/index_as_table.rb +2 -1
  179. data/lib/active_admin/views/pages/base.rb +8 -4
  180. data/lib/active_admin/views/pages/form.rb +1 -0
  181. data/lib/active_admin/views/pages/index.rb +2 -1
  182. data/lib/active_admin/views/pages/layout.rb +1 -0
  183. data/lib/active_admin/views/pages/page.rb +1 -0
  184. data/lib/active_admin/views/pages/show.rb +1 -0
  185. data/lib/active_admin/views/tabbed_navigation.rb +1 -0
  186. data/lib/active_admin/views/title_bar.rb +1 -0
  187. data/lib/active_admin/views.rb +1 -0
  188. data/lib/active_admin.rb +2 -1
  189. data/lib/activeadmin.rb +1 -0
  190. data/lib/generators/active_admin/assets/assets_generator.rb +1 -0
  191. data/lib/generators/active_admin/devise/devise_generator.rb +1 -0
  192. data/lib/generators/active_admin/install/install_generator.rb +1 -0
  193. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +17 -0
  194. data/lib/generators/active_admin/install/templates/dashboard.rb +1 -0
  195. data/lib/generators/active_admin/page/page_generator.rb +1 -0
  196. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  197. data/lib/generators/active_admin/resource/resource_generator.rb +1 -0
  198. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +1 -0
  199. data/lib/ransack_ext.rb +1 -0
  200. metadata +21 -59
  201. data/docs/.gitignore +0 -1
  202. data/docs/0-installation.md +0 -142
  203. data/docs/1-general-configuration.md +0 -224
  204. data/docs/10-custom-pages.md +0 -150
  205. data/docs/11-decorators.md +0 -70
  206. data/docs/12-arbre-components.md +0 -214
  207. data/docs/13-authorization-adapter.md +0 -285
  208. data/docs/14-gotchas.md +0 -138
  209. data/docs/2-resource-customization.md +0 -475
  210. data/docs/3-index-pages/custom-index.md +0 -35
  211. data/docs/3-index-pages/index-as-block.md +0 -19
  212. data/docs/3-index-pages/index-as-blog.md +0 -69
  213. data/docs/3-index-pages/index-as-grid.md +0 -27
  214. data/docs/3-index-pages/index-as-table.md +0 -234
  215. data/docs/3-index-pages.md +0 -328
  216. data/docs/4-csv-format.md +0 -74
  217. data/docs/5-forms.md +0 -237
  218. data/docs/6-show-pages.md +0 -93
  219. data/docs/7-sidebars.md +0 -75
  220. data/docs/8-custom-actions.md +0 -177
  221. data/docs/9-batch-actions.md +0 -237
  222. data/docs/CNAME +0 -1
  223. data/docs/Gemfile +0 -3
  224. data/docs/Gemfile.lock +0 -259
  225. data/docs/README.md +0 -24
  226. data/docs/_config.yml +0 -4
  227. data/docs/_includes/footer.html +0 -8
  228. data/docs/_includes/google-analytics.html +0 -16
  229. data/docs/_includes/head.html +0 -7
  230. data/docs/_includes/toc.html +0 -98
  231. data/docs/_includes/top-menu.html +0 -17
  232. data/docs/_layouts/default.html +0 -21
  233. data/docs/documentation.md +0 -60
  234. data/docs/images/activeadmin.png +0 -0
  235. data/docs/images/code-header.png +0 -0
  236. data/docs/images/divider.png +0 -0
  237. data/docs/images/features.png +0 -0
  238. data/docs/images/tidelift.svg +0 -14
  239. data/docs/index.html +0 -226
  240. data/docs/stylesheets/main.css +0 -1205
  241. /data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +0 -0
@@ -1,4 +1,20 @@
1
1
  "zh-CN":
2
+ activerecord:
3
+ models:
4
+ comment:
5
+ one: "评论"
6
+ other: "评论"
7
+ active_admin/comment:
8
+ one: "评论"
9
+ other: "评论"
10
+ attributes:
11
+ active_admin/comment:
12
+ author_type: "作者类型"
13
+ body: "内容"
14
+ created_at: "创建"
15
+ namespace: "Namespace"
16
+ resource_type: "Resource 类型"
17
+ updated_at: "更新"
2
18
  active_admin:
3
19
  dashboard: "控制面板"
4
20
  dashboard_welcome:
@@ -8,8 +24,8 @@
8
24
  edit: "编辑"
9
25
  delete: "删除"
10
26
  delete_confirmation: "确定删除?"
11
- create_another: "新建另一个%{model}"
12
- new_model: "新建%{model}"
27
+ create_another: "新增另一个%{model}"
28
+ new_model: "新增%{model}"
13
29
  edit_model: "编辑%{model}"
14
30
  delete_model: "删除%{model}"
15
31
  details: "%{model}详情"
@@ -17,10 +33,11 @@
17
33
  empty: "未定义"
18
34
  previous: "上一个"
19
35
  next: "下一个"
20
- download: "下载:"
21
- has_many_new: "新建一个%{model}"
36
+ download: "下载:"
37
+ has_many_new: "新增一个%{model}"
22
38
  has_many_delete: "删除"
23
39
  has_many_remove: "清除"
40
+ move: "移动"
24
41
  filters:
25
42
  buttons:
26
43
  filter: "过滤"
@@ -28,26 +45,28 @@
28
45
  predicates:
29
46
  contains: "包含"
30
47
  equals: "等于"
31
- starts_with: "开头"
32
- ends_with: "完与"
48
+ starts_with: "始于"
49
+ ends_with: "止于"
33
50
  greater_than: "大于"
34
51
  less_than: "小于"
35
52
  gteq_datetime: "大于等于"
36
53
  lteq_datetime: "小于等于"
37
54
  from: "起"
38
55
  to: "止"
56
+ scopes:
57
+ all: "所有"
39
58
  search_status:
40
59
  headline: "搜索条件:"
41
- current_scope: "搜索范围:"
60
+ current_scope: "范围:"
42
61
  current_filters: "过滤条件:"
43
62
  no_current_filters: "无"
44
63
  status_tag:
45
64
  "yes": "是"
46
65
  "no": "否"
47
66
  "unset": "否"
48
- main_content: "请执行 %{model}#main_content 来显示内容."
67
+ main_content: "请执行 %{model}#main_content 来显示内容。"
49
68
  logout: "退出"
50
- powered_by: "Powered by %{active_admin} %{version}"
69
+ powered_by: "构建程序为 %{active_admin} %{version}"
51
70
  sidebars:
52
71
  filters: "所有条件"
53
72
  search_status: "搜索条件"
@@ -63,14 +82,14 @@
63
82
  other: "条目"
64
83
  any: "任何"
65
84
  blank_slate:
66
- content: "暂时还没有%{resource_name}."
67
- link: "新建一个"
85
+ content: "暂时还没有%{resource_name}"
86
+ link: "新增一个"
68
87
  dropdown_actions:
69
- button_label: "行动"
88
+ button_label: "操作"
70
89
  batch_actions:
71
90
  button_label: "批处理"
72
- default_confirmation: "你确定你要这样做?"
73
- delete_confirmation: "你确定要删除这些%{plural_model}?"
91
+ default_confirmation: "你确定要这样做?"
92
+ delete_confirmation: "你确定要删除这些%{plural_model}"
74
93
  succesfully_destroyed:
75
94
  one: "成功删除 1 %{model}"
76
95
  other: "成功删除 %{count} %{plural_model}"
@@ -92,7 +111,7 @@
92
111
  author_missing: "匿名"
93
112
  title_content: "(%{count})条评论"
94
113
  errors:
95
- empty_text: "评论保存失败,内空不能为空."
114
+ empty_text: "评论保存失败,内空不能为空。"
96
115
  devise:
97
116
  username:
98
117
  title: "用户名"
@@ -121,8 +140,8 @@
121
140
  title: "重新发送送解锁命令"
122
141
  submit: "重新发送送解锁命令"
123
142
  resend_confirmation_instructions:
124
- title: " 重新发送确认指示"
125
- submit: " 重新发送确认指示"
143
+ title: " 重新发送确认说明"
144
+ submit: " 重新发送确认说明"
126
145
  links:
127
146
  sign_up: "注册"
128
147
  sign_in: "登录"
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class AbstractViewFactory < SettingsNode
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/router"
2
3
  require "active_admin/application_settings"
3
4
  require "active_admin/namespace_settings"
@@ -75,7 +76,7 @@ module ActiveAdmin
75
76
 
76
77
  namespace = namespaces[name.to_sym] ||= begin
77
78
  namespace = Namespace.new(self, name)
78
- ActiveSupport::Notifications.publish ActiveAdmin::Namespace::RegisterEvent, namespace
79
+ ActiveSupport::Notifications.instrument ActiveAdmin::Namespace::RegisterEvent, { active_admin_namespace: namespace }
79
80
  namespace
80
81
  end
81
82
 
@@ -111,10 +112,10 @@ module ActiveAdmin
111
112
  # To reload everything simply call `ActiveAdmin.unload!`
112
113
  def load!
113
114
  unless loaded?
114
- ActiveSupport::Notifications.publish BeforeLoadEvent, self # before_load hook
115
+ ActiveSupport::Notifications.instrument BeforeLoadEvent, { active_admin_application: self } # before_load hook
115
116
  files.each { |file| load file } # load files
116
117
  namespace(default_namespace) # init AA resources
117
- ActiveSupport::Notifications.publish AfterLoadEvent, self # after_load hook
118
+ ActiveSupport::Notifications.instrument AfterLoadEvent, { active_admin_application: self } # after_load hook
118
119
  @@loaded = true
119
120
  end
120
121
  end
@@ -125,7 +126,7 @@ module ActiveAdmin
125
126
 
126
127
  # Returns ALL the files to be loaded
127
128
  def files
128
- load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"] }.sort
129
+ load_paths.flatten.compact.uniq.flat_map { |path| Dir["#{path}/**/*.rb"].sort }
129
130
  end
130
131
 
131
132
  # Creates all the necessary routes for the ActiveAdmin configurations
@@ -144,13 +145,13 @@ module ActiveAdmin
144
145
 
145
146
  # Adds before, around and after filters to all controllers.
146
147
  # Example usage:
147
- # ActiveAdmin.before_filter :authenticate_admin!
148
+ # ActiveAdmin.before_action :authenticate_admin!
148
149
  #
149
150
  AbstractController::Callbacks::ClassMethods.public_instance_methods.
150
- select { |m| m.match(/(filter|action)/) }.each do |name|
151
+ select { |m| m.match(/_action\z/) }.each do |name|
151
152
  define_method name do |*args, &block|
152
- controllers_for_filters.each do |controller|
153
- controller.public_send name, *args, &block
153
+ ActiveSupport.on_load(:active_admin_controller) do
154
+ public_send name, *args, &block
154
155
  end
155
156
  end
156
157
  end
@@ -164,8 +165,7 @@ module ActiveAdmin
164
165
  private
165
166
 
166
167
  def register_default_assets
167
- register_stylesheet "active_admin.css", media: "screen"
168
- register_stylesheet "active_admin/print.css", media: "print"
168
+ register_stylesheet "active_admin.css", media: "all"
169
169
  register_javascript "active_admin.js"
170
170
  end
171
171
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/settings_node"
2
3
 
3
4
  module ActiveAdmin
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module AssetRegistration
3
4
 
@@ -13,12 +14,12 @@ module ActiveAdmin
13
14
  stylesheets.clear
14
15
  end
15
16
 
16
- def register_javascript(name)
17
- javascripts.add name
17
+ def register_javascript(path, options = {})
18
+ javascripts[path] = options
18
19
  end
19
20
 
20
21
  def javascripts
21
- @javascripts ||= Set.new
22
+ @javascripts ||= {}
22
23
  end
23
24
 
24
25
  def clear_javascripts!
@@ -1,9 +1,12 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  # Default Authorization permissions for Active Admin
4
5
  module Authorization
5
6
  READ = :read
7
+ NEW = :new
6
8
  CREATE = :create
9
+ EDIT = :edit
7
10
  UPDATE = :update
8
11
  DESTROY = :destroy
9
12
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class BaseController < ::InheritedResources::Base
3
4
  module Authorization
@@ -6,9 +7,9 @@ module ActiveAdmin
6
7
  ACTIONS_DICTIONARY = {
7
8
  index: ActiveAdmin::Authorization::READ,
8
9
  show: ActiveAdmin::Authorization::READ,
9
- new: ActiveAdmin::Authorization::CREATE,
10
+ new: ActiveAdmin::Authorization::NEW,
10
11
  create: ActiveAdmin::Authorization::CREATE,
11
- edit: ActiveAdmin::Authorization::UPDATE,
12
+ edit: ActiveAdmin::Authorization::EDIT,
12
13
  update: ActiveAdmin::Authorization::UPDATE,
13
14
  destroy: ActiveAdmin::Authorization::DESTROY
14
15
  }
@@ -81,7 +82,7 @@ module ActiveAdmin
81
82
  def active_admin_authorization_adapter
82
83
  adapter = active_admin_namespace.authorization_adapter
83
84
  if adapter.is_a? String
84
- ActiveSupport::Dependencies.constantize adapter
85
+ adapter.constantize
85
86
  else
86
87
  adapter
87
88
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class BaseController < ::InheritedResources::Base
3
4
  module Menu
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/base_controller/authorization"
2
3
  require "active_admin/base_controller/menu"
3
4
 
@@ -6,7 +7,6 @@ module ActiveAdmin
6
7
  # It implements ActiveAdmin controllers core features.
7
8
  class BaseController < ::InheritedResources::Base
8
9
  helper ::ActiveAdmin::ViewHelpers
9
- helper_method :env
10
10
 
11
11
  layout :determine_active_admin_layout
12
12
 
@@ -77,5 +77,6 @@ module ActiveAdmin
77
77
  { controller: controller, action: action }
78
78
  end
79
79
 
80
+ ActiveSupport.run_load_hooks(:active_admin_controller, self)
80
81
  end
81
82
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module BatchActions
3
4
  module Controller
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  module BatchActions
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/component"
2
3
 
3
4
  module ActiveAdmin
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/component"
2
3
 
3
4
  module ActiveAdmin
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/component"
2
3
 
3
4
  module ActiveAdmin
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  ActiveAdmin.before_load do |app|
2
3
  require "active_admin/batch_actions/resource_extension"
3
4
  require "active_admin/batch_actions/controller"
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Callbacks
3
4
  extend ActiveSupport::Concern
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  unless ActiveAdmin::Dependency.cancan? || ActiveAdmin::Dependency.cancancan?
2
3
  ActiveAdmin::Dependency.cancan!
3
4
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  # This class decorates a collection of objects delegating
3
4
  # mehods to behave like an Array. It's used to decouple ActiveAdmin
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Component < Arbre::Component
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ControllerAction
3
4
  attr_reader :name
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  # CSVBuilder stores CSV configuration
3
4
  #
@@ -42,11 +43,10 @@ module ActiveAdmin
42
43
  end
43
44
 
44
45
  def build(controller, csv)
45
- @collection = controller.send :find_collection, except: :pagination
46
46
  columns = exec_columns controller.view_context
47
- bom = options.delete :byte_order_mark
47
+ bom = options[:byte_order_mark]
48
48
  column_names = options.delete(:column_names) { true }
49
- csv_options = options.except :encoding_options, :humanize_name
49
+ csv_options = options.except :encoding_options, :humanize_name, :byte_order_mark
50
50
 
51
51
  csv << bom if bom
52
52
 
@@ -54,13 +54,8 @@ module ActiveAdmin
54
54
  csv << CSV.generate_line(columns.map { |c| encode c.name, options }, **csv_options)
55
55
  end
56
56
 
57
- ActiveRecord::Base.uncached do
58
- (1..paginated_collection.total_pages).each do |page|
59
- paginated_collection(page).each do |resource|
60
- resource = controller.send :apply_decorator, resource
61
- csv << CSV.generate_line(build_row(resource, columns, options), **csv_options)
62
- end
63
- end
57
+ controller.send(:in_paginated_batches) do |resource|
58
+ csv << CSV.generate_line(build_row(resource, columns, options), **csv_options)
64
59
  end
65
60
 
66
61
  csv
@@ -124,13 +119,5 @@ module ActiveAdmin
124
119
  def column_transitive_options
125
120
  @column_transitive_options ||= @options.slice(*COLUMN_TRANSITIVE_OPTIONS)
126
121
  end
127
-
128
- def paginated_collection(page_no = 1)
129
- @collection.public_send(Kaminari.config.page_method_name, page_no).per(batch_size)
130
- end
131
-
132
- def batch_size
133
- 1000
134
- end
135
122
  end
136
123
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Dependency
3
4
  module Requirements
@@ -55,10 +56,6 @@ module ActiveAdmin
55
56
  Matcher.new name.to_s
56
57
  end
57
58
 
58
- def self.supports_zeitwerk?
59
- rails >= "6.0.0.beta3" && RUBY_ENGINE != "jruby"
60
- end
61
-
62
59
  class Matcher
63
60
  attr_reader :name
64
61
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Deprecation
3
4
  module_function
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  ActiveAdmin::Dependency.devise! ActiveAdmin::Dependency::Requirements::DEVISE
2
3
 
3
4
  require "devise"
@@ -52,22 +53,32 @@ module ActiveAdmin
52
53
 
53
54
  class SessionsController < ::Devise::SessionsController
54
55
  include ::ActiveAdmin::Devise::Controller
56
+
57
+ ActiveSupport.run_load_hooks(:active_admin_controller, self)
55
58
  end
56
59
 
57
60
  class PasswordsController < ::Devise::PasswordsController
58
61
  include ::ActiveAdmin::Devise::Controller
62
+
63
+ ActiveSupport.run_load_hooks(:active_admin_controller, self)
59
64
  end
60
65
 
61
66
  class UnlocksController < ::Devise::UnlocksController
62
67
  include ::ActiveAdmin::Devise::Controller
68
+
69
+ ActiveSupport.run_load_hooks(:active_admin_controller, self)
63
70
  end
64
71
 
65
72
  class RegistrationsController < ::Devise::RegistrationsController
66
73
  include ::ActiveAdmin::Devise::Controller
74
+
75
+ ActiveSupport.run_load_hooks(:active_admin_controller, self)
67
76
  end
68
77
 
69
78
  class ConfirmationsController < ::Devise::ConfirmationsController
70
79
  include ::ActiveAdmin::Devise::Controller
80
+
81
+ ActiveSupport.run_load_hooks(:active_admin_controller, self)
71
82
  end
72
83
 
73
84
  def self.controllers_for_filters
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  # The Active Admin DSL. This class is where all the registration blocks
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  class DynamicSetting
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/dynamic_setting"
2
3
  require "active_admin/settings_node"
3
4
 
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Engine < ::Rails::Engine
3
- initializer "active_admin.load_app_path" do |app|
4
+ # Set default values for app_path and load_paths before running initializers
5
+ initializer "active_admin.load_app_path", before: :load_config_initializers do |app|
4
6
  ActiveAdmin::Application.setting :app_path, app.root
5
7
  ActiveAdmin::Application.setting :load_paths, [File.expand_path("app/admin", app.root)]
6
8
  end
@@ -10,7 +12,7 @@ module ActiveAdmin
10
12
  ActiveAdmin.application.stylesheets.each do |path, _|
11
13
  app.config.assets.precompile << path
12
14
  end
13
- ActiveAdmin.application.javascripts.each do |path|
15
+ ActiveAdmin.application.javascripts.each do |path, _|
14
16
  app.config.assets.precompile << path
15
17
  end
16
18
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  # Exception class to raise when there is an authorized access
3
4
  # exception thrown. The exception has a few goodies that may
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/filters/active_filter"
2
3
 
3
4
  module ActiveAdmin
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Filters
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/filters/active"
2
3
 
3
4
  module ActiveAdmin
@@ -9,34 +10,7 @@ module ActiveAdmin
9
10
  end
10
11
 
11
12
  def block
12
- -> do
13
- active_filters = ActiveAdmin::Filters::Active.new(active_admin_config, assigns[:search])
14
- span do
15
- if current_scope
16
- h4 I18n.t("active_admin.search_status.current_scope"), style: "display: inline"
17
- b scope_name(current_scope), class: "current_scope_name", style: "display: inline"
18
- end
19
- div style: "margin-top: 10px" do
20
- h4 I18n.t("active_admin.search_status.current_filters"), style: "margin-bottom: 10px"
21
- ul do
22
- if active_filters.filters.blank?
23
- li I18n.t("active_admin.search_status.no_current_filters")
24
- else
25
- active_filters.filters.each do |filter|
26
- li filter.html_options do
27
- span do
28
- text_node filter.label
29
- end
30
- b do
31
- text_node to_sentence(filter.values.map { |v| pretty_format(v) })
32
- end
33
- end
34
- end
35
- end
36
- end
37
- end
38
- end
39
- end
13
+ -> { active_filters_sidebar_content }
40
14
  end
41
15
 
42
16
  def title
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Filters
3
4
  module DSL
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Filters
3
4
  # This form builder defines methods to build filter forms such
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Filters
3
4
  module FormtasticAddons
@@ -1,9 +1,10 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Filters
3
4
 
4
5
  class Disabled < RuntimeError
5
- def initialize
6
- super "Can't remove a filter when filters are disabled. Enable filters with 'config.filters = true'"
6
+ def initialize(action)
7
+ super "Cannot #{action} a filter when filters are disabled. Enable filters with 'config.filters = true'"
7
8
  end
8
9
  end
9
10
 
@@ -60,7 +61,7 @@ module ActiveAdmin
60
61
  #
61
62
  # @param [Symbol] attributes The attributes to not filter on
62
63
  def remove_filter(*attributes)
63
- raise Disabled unless filters_enabled?
64
+ raise Disabled, "remove" unless filters_enabled?
64
65
 
65
66
  attributes.each { |attribute| (@filters_to_remove ||= []) << attribute.to_sym }
66
67
  end
@@ -72,7 +73,7 @@ module ActiveAdmin
72
73
  # @param [Hash] options The set of options that are passed through to
73
74
  # ransack for the field definition.
74
75
  def add_filter(attribute, options = {})
75
- raise Disabled unless filters_enabled?
76
+ raise Disabled, "add" unless filters_enabled?
76
77
 
77
78
  (@filters ||= {})[attribute.to_sym] = options
78
79
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  require "active_admin/filters/dsl"
2
3
  require "active_admin/filters/resource_extension"
3
4
  require "active_admin/filters/formtastic_addons"
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  # Provides an intuitive way to build has_many associated records in the same form.
2
3
  module Formtastic
3
4
  module Inputs
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Generators
3
4
  class Boilerplate
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Helpers
3
4
  module Collection
@@ -5,6 +6,7 @@ module ActiveAdmin
5
6
  # 2. correctly handles the Hash returned when `group by` is used
6
7
  def collection_size(c = collection)
7
8
  return c.count if c.is_a?(Array)
9
+ return c.length if c.limit_value
8
10
 
9
11
  c = c.except :select, :order
10
12
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Helpers
3
4
  module I18n
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  # Shareable module to give a #display_on?(action) method
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Helpers
3
4
  module Routes