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
@@ -1,4 +1,4 @@
1
- require 'active_admin/helpers/collection'
1
+ require "active_admin/helpers/collection"
2
2
 
3
3
  module ActiveAdmin
4
4
  module Views
@@ -111,7 +111,7 @@ module ActiveAdmin
111
111
 
112
112
  def render_blank_slate
113
113
  blank_slate_content = I18n.t("active_admin.blank_slate.content", resource_name: active_admin_config.plural_resource_label)
114
- if controller.action_methods.include?('new') && authorized?(ActiveAdmin::Auth::CREATE, active_admin_config.resource_class)
114
+ if controller.action_methods.include?("new") && authorized?(ActiveAdmin::Auth::CREATE, active_admin_config.resource_class)
115
115
  blank_slate_content = [blank_slate_content, blank_slate_link].compact.join(" ")
116
116
  end
117
117
  insert_tag(view_factory.blank_slate, blank_slate_content)
@@ -124,18 +124,20 @@ module ActiveAdmin
124
124
 
125
125
  def render_index
126
126
  renderer_class = find_index_renderer_class(config[:as])
127
- paginator = config.fetch(:paginator, true)
128
- download_links = config.fetch(:download_links, active_admin_config.namespace.download_links)
127
+
128
+ paginator = config.fetch(:paginator, true)
129
+ download_links = config.fetch(:download_links, active_admin_config.namespace.download_links)
129
130
  pagination_total = config.fetch(:pagination_total, true)
130
- per_page = config.fetch(:per_page, active_admin_config.per_page)
131
-
132
- paginated_collection(collection, entry_name: active_admin_config.resource_label,
133
- entries_name: active_admin_config.plural_resource_label(count: collection_size),
134
- download_links: download_links,
135
- paginator: paginator,
136
- per_page: per_page,
137
- pagination_total: pagination_total) do
138
- div class: 'index_content' do
131
+ per_page = config.fetch(:per_page, active_admin_config.per_page)
132
+
133
+ paginated_collection(
134
+ collection, entry_name: active_admin_config.resource_label,
135
+ entries_name: active_admin_config.plural_resource_label(count: collection_size),
136
+ download_links: download_links,
137
+ paginator: paginator,
138
+ per_page: per_page,
139
+ pagination_total: pagination_total) do
140
+ div class: "index_content" do
139
141
  insert_tag(renderer_class, config, collection)
140
142
  end
141
143
  end
@@ -1,10 +1,10 @@
1
- require_relative 'components/menu'
1
+ require_relative "components/menu"
2
2
 
3
3
  module ActiveAdmin
4
4
  module Views
5
5
  class TabbedNavigation < Menu
6
6
  def build(menu, options = {})
7
- super(menu, options.reverse_merge(id: 'tabs'))
7
+ super(menu, options.reverse_merge(id: "tabs"))
8
8
  end
9
9
  end
10
10
  end
@@ -43,7 +43,7 @@ module ActiveAdmin
43
43
  end
44
44
 
45
45
  def build_title_tag
46
- h2(@title, id: 'page_title')
46
+ h2(@title, id: "page_title")
47
47
  end
48
48
 
49
49
  def build_action_items
data/lib/activeadmin.rb CHANGED
@@ -1 +1 @@
1
- require 'active_admin'
1
+ require "active_admin"
@@ -2,10 +2,10 @@ module ActiveAdmin
2
2
  module Generators
3
3
  class AssetsGenerator < Rails::Generators::Base
4
4
 
5
- source_root File.expand_path("../templates", __FILE__)
5
+ source_root File.expand_path("templates", __dir__)
6
6
 
7
7
  def install_assets
8
- template 'active_admin.js.coffee', 'app/assets/javascripts/active_admin.js.coffee'
8
+ template "active_admin.js", "app/assets/javascripts/active_admin.js"
9
9
  template "active_admin.scss", "app/assets/stylesheets/active_admin.scss"
10
10
  end
11
11
 
@@ -0,0 +1 @@
1
+ //= require active_admin/base
@@ -1,4 +1,4 @@
1
- // SASS variable overrides must be declared before loading up Active Admin's styles.
1
+ // Sass variable overrides must be declared before loading up Active Admin's styles.
2
2
  //
3
3
  // To view the variables that Active Admin provides, take a look at
4
4
  // `app/assets/stylesheets/active_admin/mixins/_variables.scss` in the
@@ -11,7 +11,7 @@
11
11
  @import "active_admin/mixins";
12
12
  @import "active_admin/base";
13
13
 
14
- // Overriding any non-variable SASS must be done after the fact.
14
+ // Overriding any non-variable Sass must be done after the fact.
15
15
  // For example, to change the default status-tag color:
16
16
  //
17
17
  // .status_tag { background: #6090DB; }
@@ -7,13 +7,13 @@ module ActiveAdmin
7
7
  desc "Creates an admin user and uses Devise for authentication"
8
8
  argument :name, type: :string, default: "AdminUser"
9
9
 
10
- class_option :registerable, type: :boolean, default: false,
11
- desc: "Should the generated resource be registerable?"
10
+ class_option :registerable, type: :boolean, default: false,
11
+ desc: "Should the generated resource be registerable?"
12
12
 
13
13
  RESERVED_NAMES = [:active_admin_user]
14
14
 
15
- class_option :default_user, type: :boolean, default: true,
16
- desc: "Should a default user be created inside the migration?"
15
+ class_option :default_user, type: :boolean, default: true,
16
+ desc: "Should a default user be created inside the migration?"
17
17
 
18
18
  def install_devise
19
19
  begin
@@ -22,7 +22,7 @@ module ActiveAdmin
22
22
  raise ActiveAdmin::GeneratorError, "#{e.message} If you don't want to use devise, run the generator with --skip-users."
23
23
  end
24
24
 
25
- require 'devise'
25
+ require "devise"
26
26
 
27
27
  initializer_file =
28
28
  File.join(destination_root, "config", "initializers", "devise.rb")
@@ -1,4 +1,4 @@
1
- require 'rails/generators/active_record'
1
+ require "rails/generators/active_record"
2
2
 
3
3
  module ActiveAdmin
4
4
  module Generators
@@ -7,21 +7,25 @@ module ActiveAdmin
7
7
  argument :name, type: :string, default: "AdminUser"
8
8
 
9
9
  hook_for :users, default: "devise", desc: "Admin user generator to run. Skip with --skip-users"
10
+ class_option :skip_comments, type: :boolean, default: false, desc: "Skip installation of comments"
11
+ class_option :use_webpacker, type: :boolean, default: false, desc: "Use Webpacker assets instead of Sprockets"
10
12
 
11
- source_root File.expand_path("../templates", __FILE__)
13
+ source_root File.expand_path("templates", __dir__)
12
14
 
13
15
  def copy_initializer
14
- @underscored_user_name = name.underscore.gsub('/', '_')
16
+ @underscored_user_name = name.underscore.gsub("/", "_")
15
17
  @use_authentication_method = options[:users].present?
16
- template 'active_admin.rb.erb', 'config/initializers/active_admin.rb'
18
+ @skip_comments = options[:skip_comments]
19
+ @use_webpacker = options[:use_webpacker]
20
+ template "active_admin.rb.erb", "config/initializers/active_admin.rb"
17
21
  end
18
22
 
19
23
  def setup_directory
20
24
  empty_directory "app/admin"
21
- template 'dashboard.rb', 'app/admin/dashboard.rb'
25
+ template "dashboard.rb", "app/admin/dashboard.rb"
22
26
  if options[:users].present?
23
27
  @user_class = name
24
- template 'admin_users.rb.erb', "app/admin/#{name.underscore.pluralize}.rb"
28
+ template "admin_users.rb.erb", "app/admin/#{name.underscore.pluralize}.rb"
25
29
  end
26
30
  end
27
31
 
@@ -34,11 +38,17 @@ module ActiveAdmin
34
38
  end
35
39
 
36
40
  def create_assets
37
- generate "active_admin:assets"
41
+ if options[:use_webpacker]
42
+ generate "active_admin:webpacker"
43
+ else
44
+ generate "active_admin:assets"
45
+ end
38
46
  end
39
47
 
40
48
  def create_migrations
41
- migration_template 'migrations/create_active_admin_comments.rb.erb', 'db/migrate/create_active_admin_comments.rb'
49
+ unless options[:skip_comments]
50
+ migration_template "migrations/create_active_admin_comments.rb.erb", "db/migrate/create_active_admin_comments.rb"
51
+ end
42
52
  end
43
53
  end
44
54
  end
@@ -69,6 +69,11 @@ ActiveAdmin.setup do |config|
69
69
  # case when Pundit is unable to find suitable policy.
70
70
  # config.pundit_default_policy = "MyDefaultPunditPolicy"
71
71
 
72
+ # If you wish to maintain a separate set of Pundit policies for admin
73
+ # resources, you may set a namespace here that Pundit will search
74
+ # within when looking for a resource's policy.
75
+ # config.pundit_policy_namespace = :admin
76
+
72
77
  # You can customize your CanCan Ability class name here.
73
78
  # config.cancan_ability_class = "Ability"
74
79
 
@@ -119,7 +124,7 @@ ActiveAdmin.setup do |config|
119
124
  # This allows your users to comment on any resource registered with Active Admin.
120
125
  #
121
126
  # You can completely disable comments:
122
- # config.comments = false
127
+ <% unless @skip_comments %># <% end %>config.comments = false
123
128
  #
124
129
  # You can change the name under which comments are registered:
125
130
  # config.comments_registration_name = 'AdminComment'
@@ -147,11 +152,21 @@ ActiveAdmin.setup do |config|
147
152
  #
148
153
  # config.before_action :do_something_awesome
149
154
 
155
+ # == Attribute Filters
156
+ #
157
+ # You can exclude possibly sensitive model attributes from being displayed,
158
+ # added to forms, or exported by default by ActiveAdmin
159
+ #
160
+ config.filter_attributes = [:encrypted_password, :password, :password_confirmation]
161
+
150
162
  # == Localize Date/Time Format
151
163
  #
152
164
  # Set the localize format to display dates and times.
153
165
  # To understand how to localize your app with I18n, read more at
154
- # https://github.com/svenfuchs/i18n/blob/master/lib%2Fi18n%2Fbackend%2Fbase.rb#L52
166
+ # https://guides.rubyonrails.org/i18n.html
167
+ #
168
+ # You can run `bin/rails runner 'puts I18n.t("date.formats")'` to see the
169
+ # available formats in your application.
155
170
  #
156
171
  config.localize_format = :long
157
172
 
@@ -271,12 +286,32 @@ ActiveAdmin.setup do |config|
271
286
  # config.filters = true
272
287
  #
273
288
  # By default the filters include associations in a select, which means
274
- # that every record will be loaded for each association.
289
+ # that every record will be loaded for each association (up
290
+ # to the value of config.maximum_association_filter_arity).
275
291
  # You can enabled or disable the inclusion
276
292
  # of those filters by default here.
277
293
  #
278
294
  # config.include_default_association_filters = true
279
295
 
296
+ # config.maximum_association_filter_arity = 256 # default value of :unlimited will change to 256 in a future version
297
+ # config.filter_columns_for_large_association = [
298
+ # :display_name,
299
+ # :full_name,
300
+ # :name,
301
+ # :username,
302
+ # :login,
303
+ # :title,
304
+ # :email,
305
+ # ]
306
+ # config.filter_method_for_large_association = '_starts_with'
307
+
308
+ # == Head
309
+ #
310
+ # You can add your own content to the site head like analytics. Make sure
311
+ # you only pass content you trust.
312
+ #
313
+ # config.head = ''.html_safe
314
+
280
315
  # == Footer
281
316
  #
282
317
  # By default, the footer shows the current Active Admin version. You can
@@ -290,4 +325,11 @@ ActiveAdmin.setup do |config|
290
325
  # You can inherit it with own class and inject it for all resources
291
326
  #
292
327
  # config.order_clause = MyOrderClause
328
+
329
+ # == Webpacker
330
+ #
331
+ # By default, Active Admin uses Sprocket's asset pipeline.
332
+ # You can switch to using Webpacker here.
333
+ #
334
+ <% unless @use_webpacker %># <% end %>config.use_webpacker = true
293
335
  end
@@ -1,8 +1,7 @@
1
1
  ActiveAdmin.register_page "Dashboard" do
2
+ menu priority: 1, label: proc { I18n.t("active_admin.dashboard") }
2
3
 
3
- menu priority: 1, label: proc{ I18n.t("active_admin.dashboard") }
4
-
5
- content title: proc{ I18n.t("active_admin.dashboard") } do
4
+ content title: proc { I18n.t("active_admin.dashboard") } do
6
5
  div class: "blank_slate_container", id: "dashboard_default_message" do
7
6
  span class: "blank_slate" do
8
7
  span I18n.t("active_admin.dashboard_welcome.welcome")
@@ -1,27 +1,13 @@
1
- <%
2
- parent_class = ActiveRecord::Migration
3
- parent_class = parent_class[parent_class.current_version] if Rails::VERSION::MAJOR >= 5
4
- -%>
5
- class CreateActiveAdminComments < <%= parent_class.to_s %>
1
+ class CreateActiveAdminComments < ActiveRecord::Migration[<%= ActiveRecord::Migration.current_version.to_s %>]
6
2
  def self.up
7
3
  create_table :active_admin_comments do |t|
8
4
  t.string :namespace
9
5
  t.text :body
10
6
  t.references :resource, polymorphic: true
11
7
  t.references :author, polymorphic: true
12
- <%- if Rails::VERSION::MAJOR >= 5 -%>
13
8
  t.timestamps
14
- <%- else -%>
15
- t.timestamps null: false
16
- <%- end -%>
17
9
  end
18
10
  add_index :active_admin_comments, [:namespace]
19
- <%- unless Rails::VERSION::MAJOR >= 5 -%>
20
-
21
- add_index :active_admin_comments, [:author_type, :author_id]
22
- add_index :active_admin_comments, [:resource_type, :resource_id]
23
- <%- end -%>
24
-
25
11
  end
26
12
 
27
13
  def self.down
@@ -1,7 +1,7 @@
1
1
  module ActiveAdmin
2
2
  module Generators
3
3
  class PageGenerator < Rails::Generators::NamedBase
4
- source_root File.expand_path('../templates', __FILE__)
4
+ source_root File.expand_path("templates", __dir__)
5
5
 
6
6
  def generate_config_file
7
7
  template "page.rb", "app/admin/#{file_path.tr('/', '_')}.rb"
@@ -1,4 +1,4 @@
1
- require 'active_admin/generators/boilerplate'
1
+ require "active_admin/generators/boilerplate"
2
2
 
3
3
  module ActiveAdmin
4
4
  module Generators
@@ -6,9 +6,9 @@ module ActiveAdmin
6
6
  desc "Registers resources with Active Admin"
7
7
 
8
8
  class_option :include_boilerplate, type: :boolean, default: false,
9
- desc: "Generate boilerplate code for your resource."
9
+ desc: "Generate boilerplate code for your resource."
10
10
 
11
- source_root File.expand_path("../templates", __FILE__)
11
+ source_root File.expand_path("templates", __dir__)
12
12
 
13
13
  def generate_config_file
14
14
  @boilerplate = ActiveAdmin::Generators::Boilerplate.new(class_name)
@@ -1,43 +1,46 @@
1
1
  ActiveAdmin.register <%= class_name %> do
2
- # See permitted parameters documentation:
3
- # https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters
4
- #
5
- # permit_params :list, :of, :attributes, :on, :model
6
- #
7
- # or
8
- #
9
- # permit_params do
10
- # permitted = [:permitted, :attributes]
11
- # permitted << :other if params[:action] == 'create' && current_user.admin?
12
- # permitted
13
- # end
14
- <% if options.include_boilerplate? %>
15
- # Limit actions available to your users by adding them to the 'except' array
16
- # actions :all, except: []
17
2
 
18
- # Add or remove filters (you can use any ActiveRecord scope) to toggle their
19
- # visibility in the sidebar
20
- <%= @boilerplate.filters %>
3
+ # See permitted parameters documentation:
4
+ # https://github.com/activeadmin/activeadmin/blob/master/docs/2-resource-customization.md#setting-up-strong-parameters
5
+ #
6
+ # Uncomment all parameters which should be permitted for assignment
7
+ #
8
+ # permit_params <%= @boilerplate.permit_params %>
9
+ #
10
+ # or
11
+ #
12
+ # permit_params do
13
+ # permitted = [<%= @boilerplate.permit_params %>]
14
+ # permitted << :other if params[:action] == 'create' && current_user.admin?
15
+ # permitted
16
+ # end
17
+ <% if options.include_boilerplate? %>
18
+ # Limit actions available to your users by adding them to the 'except' array
19
+ # actions :all, except: []
21
20
 
22
- # Add or remove columns to toggle their visiblity in the index action
23
- # index do
24
- # selectable_column
25
- # id_column
26
- <%= @boilerplate.columns %>
27
- # actions
28
- # end
21
+ # Add or remove filters (you can use any ActiveRecord scope) to toggle their
22
+ # visibility in the sidebar
23
+ <%= @boilerplate.filters %>
29
24
 
30
- # Add or remove rows to toggle their visiblity in the show action
31
- # show do |<%= class_name.downcase %>|
32
- <%= @boilerplate.rows %>
33
- # end
25
+ # Add or remove columns to toggle their visiblity in the index action
26
+ # index do
27
+ # selectable_column
28
+ # id_column
29
+ <%= @boilerplate.columns %>
30
+ # actions
31
+ # end
34
32
 
35
- # Add or remove fields to toggle their visibility in the form
36
- # form do |f|
37
- # f.inputs do
38
- <%= @boilerplate.form_inputs %>
39
- # end
40
- # f.actions
41
- # end
42
- <% end %>
33
+ # Add or remove rows to toggle their visiblity in the show action
34
+ # show do |<%= class_name.downcase %>|
35
+ <%= @boilerplate.rows %>
36
+ # end
37
+
38
+ # Add or remove fields to toggle their visibility in the form
39
+ # form do |f|
40
+ # f.inputs do
41
+ <%= @boilerplate.form_inputs %>
42
+ # end
43
+ # f.actions
44
+ # end
45
+ <% end %>
43
46
  end
@@ -0,0 +1,7 @@
1
+ const webpack = require('webpack')
2
+
3
+ module.exports = new webpack.ProvidePlugin({
4
+ "$":"jquery",
5
+ "jQuery":"jquery",
6
+ "window.jQuery":"jquery"
7
+ });
@@ -0,0 +1,5 @@
1
+ // Load Active Admin's styles into Webpacker,
2
+ // see `active_admin.scss` for customization.
3
+ import "../stylesheets/active_admin";
4
+
5
+ import "@activeadmin/activeadmin";