activeadmin 1.0.0 → 2.11.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (618) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +778 -68
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +80 -82
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +524 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +7 -35
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/app/assets/stylesheets/active_admin/_normalize.scss +349 -0
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +3 -4
  13. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  14. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  15. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  16. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  17. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  18. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  19. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  20. data/app/assets/stylesheets/active_admin/components/_tables.scss +5 -3
  21. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -10
  23. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  25. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  26. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  27. data/app/javascript/active_admin/base.js +28 -0
  28. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  29. data/app/javascript/active_admin/ext/jquery.js +9 -0
  30. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  31. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  32. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  33. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  34. data/app/javascript/active_admin/initializers/filters.js +10 -0
  35. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  36. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  37. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  38. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  39. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  40. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  41. data/app/javascript/active_admin/lib/filters.js +39 -0
  42. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  43. data/app/javascript/active_admin/lib/per-page.js +38 -0
  44. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  45. data/app/javascript/active_admin/lib/utils.js +40 -0
  46. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  47. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  48. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  49. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  50. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  51. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  52. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  53. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  54. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  55. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  56. data/app/views/active_admin/page/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/edit.html.arb +1 -0
  58. data/app/views/active_admin/resource/index.html.arb +1 -0
  59. data/app/views/active_admin/resource/new.html.arb +1 -0
  60. data/app/views/active_admin/resource/show.html.arb +1 -0
  61. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  63. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  64. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  65. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  66. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  67. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  68. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  69. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  70. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  71. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  72. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  73. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  74. data/app/views/layouts/active_admin.html.arb +1 -0
  75. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  76. data/config/locales/ar.yml +10 -11
  77. data/config/locales/az.yml +138 -0
  78. data/config/locales/bg.yml +1 -3
  79. data/config/locales/bs.yml +1 -2
  80. data/config/locales/ca.yml +1 -3
  81. data/config/locales/cs.yml +1 -2
  82. data/config/locales/da.yml +2 -3
  83. data/config/locales/de-CH.yml +2 -3
  84. data/config/locales/de.yml +30 -3
  85. data/config/locales/el.yml +2 -3
  86. data/config/locales/en-CA.yml +139 -0
  87. data/config/locales/en-GB.yml +46 -5
  88. data/config/locales/en.yml +32 -8
  89. data/config/locales/eo.yml +145 -0
  90. data/config/locales/es-MX.yml +6 -3
  91. data/config/locales/es.yml +36 -10
  92. data/config/locales/fa.yml +1 -2
  93. data/config/locales/fi.yml +2 -3
  94. data/config/locales/fr.yml +15 -7
  95. data/config/locales/he.yml +53 -7
  96. data/config/locales/hr.yml +1 -2
  97. data/config/locales/hu.yml +5 -2
  98. data/config/locales/id.yml +2 -3
  99. data/config/locales/it.yml +33 -7
  100. data/config/locales/ja.yml +9 -5
  101. data/config/locales/ko.yml +2 -3
  102. data/config/locales/lt.yml +27 -6
  103. data/config/locales/lv.yml +3 -4
  104. data/config/locales/mk.yml +134 -0
  105. data/config/locales/nb.yml +16 -7
  106. data/config/locales/nl.yml +14 -4
  107. data/config/locales/pl.yml +75 -5
  108. data/config/locales/pt-BR.yml +10 -3
  109. data/config/locales/pt-PT.yml +1 -2
  110. data/config/locales/ro.yml +4 -4
  111. data/config/locales/ru.yml +4 -3
  112. data/config/locales/sk.yml +60 -2
  113. data/config/locales/sv-SE.yml +4 -3
  114. data/config/locales/tr.yml +10 -2
  115. data/config/locales/uk.yml +4 -3
  116. data/config/locales/vi.yml +53 -12
  117. data/config/locales/zh-CN.yml +34 -7
  118. data/config/locales/zh-TW.yml +2 -3
  119. data/docs/.gitignore +1 -0
  120. data/docs/0-installation.md +42 -15
  121. data/docs/1-general-configuration.md +46 -4
  122. data/docs/10-custom-pages.md +24 -5
  123. data/docs/11-decorators.md +17 -5
  124. data/docs/12-arbre-components.md +47 -9
  125. data/docs/13-authorization-adapter.md +69 -35
  126. data/docs/14-gotchas.md +41 -22
  127. data/docs/2-resource-customization.md +57 -20
  128. data/docs/3-index-pages/custom-index.md +2 -1
  129. data/docs/3-index-pages/index-as-block.md +0 -5
  130. data/docs/3-index-pages/index-as-blog.md +1 -6
  131. data/docs/3-index-pages/index-as-grid.md +0 -5
  132. data/docs/3-index-pages/index-as-table.md +13 -14
  133. data/docs/3-index-pages.md +47 -12
  134. data/docs/4-csv-format.md +2 -1
  135. data/docs/5-forms.md +65 -22
  136. data/docs/6-show-pages.md +14 -1
  137. data/docs/7-sidebars.md +2 -1
  138. data/docs/8-custom-actions.md +16 -2
  139. data/docs/9-batch-actions.md +5 -3
  140. data/docs/CNAME +1 -1
  141. data/docs/Gemfile +4 -2
  142. data/docs/Gemfile.lock +283 -0
  143. data/docs/_config.yml +3 -1
  144. data/docs/_includes/toc.html +1 -1
  145. data/docs/_includes/top-menu.html +9 -1
  146. data/docs/documentation.md +21 -23
  147. data/docs/images/tidelift.svg +14 -0
  148. data/docs/index.html +110 -9
  149. data/docs/stylesheets/main.css +55 -2
  150. data/lib/active_admin/abstract_view_factory.rb +14 -51
  151. data/lib/active_admin/application.rb +65 -170
  152. data/lib/active_admin/application_settings.rb +43 -0
  153. data/lib/active_admin/asset_registration.rb +1 -0
  154. data/lib/active_admin/authorization_adapter.rb +4 -6
  155. data/lib/active_admin/base_controller/authorization.rb +18 -19
  156. data/lib/active_admin/base_controller/menu.rb +10 -9
  157. data/lib/active_admin/base_controller.rb +12 -12
  158. data/lib/active_admin/batch_actions/controller.rb +6 -5
  159. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  160. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  161. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  162. data/lib/active_admin/batch_actions/views/selection_cells.rb +8 -6
  163. data/lib/active_admin/batch_actions.rb +1 -0
  164. data/lib/active_admin/callbacks.rb +2 -1
  165. data/lib/active_admin/cancan_adapter.rb +2 -1
  166. data/lib/active_admin/collection_decorator.rb +32 -0
  167. data/lib/active_admin/component.rb +1 -0
  168. data/lib/active_admin/controller_action.rb +3 -1
  169. data/lib/active_admin/csv_builder.rb +22 -14
  170. data/lib/active_admin/dependency.rb +15 -78
  171. data/lib/active_admin/deprecation.rb +1 -25
  172. data/lib/active_admin/devise.rb +18 -7
  173. data/lib/active_admin/dsl.rb +5 -11
  174. data/lib/active_admin/dynamic_setting.rb +39 -0
  175. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  176. data/lib/active_admin/engine.rb +16 -7
  177. data/lib/active_admin/error.rb +5 -4
  178. data/lib/active_admin/filters/active.rb +14 -14
  179. data/lib/active_admin/filters/active_filter.rb +124 -0
  180. data/lib/active_admin/filters/active_sidebar.rb +28 -0
  181. data/lib/active_admin/filters/dsl.rb +1 -0
  182. data/lib/active_admin/filters/forms.rb +12 -9
  183. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  184. data/lib/active_admin/filters/resource_extension.rb +32 -35
  185. data/lib/active_admin/filters.rb +8 -5
  186. data/lib/active_admin/form_builder.rb +110 -70
  187. data/lib/active_admin/generators/boilerplate.rb +13 -4
  188. data/lib/active_admin/helpers/collection.rb +2 -0
  189. data/lib/active_admin/helpers/i18n.rb +1 -0
  190. data/lib/active_admin/helpers/optional_display.rb +3 -2
  191. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  192. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  193. data/lib/active_admin/inputs/datepicker_input.rb +14 -6
  194. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  195. data/lib/active_admin/inputs/filters/base.rb +2 -1
  196. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  197. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  198. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  199. data/lib/active_admin/inputs/filters/date_range_input.rb +24 -12
  200. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  201. data/lib/active_admin/inputs/filters/select_input.rb +8 -3
  202. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  203. data/lib/active_admin/inputs/filters/text_input.rb +1 -1
  204. data/lib/active_admin/inputs.rb +1 -0
  205. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  206. data/lib/active_admin/localizers.rb +2 -1
  207. data/lib/active_admin/menu.rb +13 -15
  208. data/lib/active_admin/menu_collection.rb +1 -2
  209. data/lib/active_admin/menu_item.rb +11 -38
  210. data/lib/active_admin/namespace.rb +33 -20
  211. data/lib/active_admin/namespace_settings.rb +127 -0
  212. data/lib/active_admin/order_clause.rb +4 -3
  213. data/lib/active_admin/orm/active_record/comments/comment.rb +6 -9
  214. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  215. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  216. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  217. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +37 -24
  218. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  219. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  220. data/lib/active_admin/orm/active_record.rb +2 -1
  221. data/lib/active_admin/orm/mongoid.rb +1 -0
  222. data/lib/active_admin/page.rb +2 -1
  223. data/lib/active_admin/page_controller.rb +2 -1
  224. data/lib/active_admin/page_dsl.rb +2 -1
  225. data/lib/active_admin/page_presenter.rb +3 -1
  226. data/lib/active_admin/pundit_adapter.rb +23 -9
  227. data/lib/active_admin/resource/action_items.rb +16 -6
  228. data/lib/active_admin/resource/attributes.rb +10 -6
  229. data/lib/active_admin/resource/belongs_to.rb +9 -3
  230. data/lib/active_admin/resource/controllers.rb +2 -1
  231. data/lib/active_admin/resource/includes.rb +1 -0
  232. data/lib/active_admin/resource/menu.rb +6 -5
  233. data/lib/active_admin/resource/model.rb +16 -0
  234. data/lib/active_admin/resource/naming.rb +6 -5
  235. data/lib/active_admin/resource/ordering.rb +1 -0
  236. data/lib/active_admin/resource/page_presenters.rb +2 -1
  237. data/lib/active_admin/resource/pagination.rb +1 -0
  238. data/lib/active_admin/resource/routes.rb +26 -15
  239. data/lib/active_admin/resource/scope_to.rb +8 -7
  240. data/lib/active_admin/resource/scopes.rb +5 -3
  241. data/lib/active_admin/resource/sidebars.rb +3 -2
  242. data/lib/active_admin/resource.rb +37 -22
  243. data/lib/active_admin/resource_collection.rb +3 -2
  244. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  245. data/lib/active_admin/resource_controller/data_access.rb +16 -12
  246. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  247. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  248. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  249. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  250. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  251. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  252. data/lib/active_admin/resource_controller.rb +15 -11
  253. data/lib/active_admin/resource_dsl.rb +18 -28
  254. data/lib/active_admin/router.rb +91 -84
  255. data/lib/active_admin/scope.rb +22 -13
  256. data/lib/active_admin/settings_node.rb +20 -0
  257. data/lib/active_admin/sidebar_section.rb +4 -1
  258. data/lib/active_admin/version.rb +2 -1
  259. data/lib/active_admin/view_factory.rb +18 -17
  260. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  261. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  262. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  263. data/lib/active_admin/view_helpers/display_helper.rb +26 -9
  264. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  265. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  266. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  267. data/lib/active_admin/view_helpers/form_helper.rb +2 -1
  268. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  269. data/lib/active_admin/view_helpers/scope_name_helper.rb +17 -0
  270. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  271. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  272. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  273. data/lib/active_admin/view_helpers.rb +3 -1
  274. data/lib/active_admin/views/action_items.rb +2 -1
  275. data/lib/active_admin/views/components/active_admin_form.rb +15 -9
  276. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  277. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  278. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  279. data/lib/active_admin/views/components/columns.rb +1 -0
  280. data/lib/active_admin/views/components/dropdown_menu.rb +9 -11
  281. data/lib/active_admin/views/components/index_list.rb +4 -5
  282. data/lib/active_admin/views/components/menu.rb +33 -0
  283. data/lib/active_admin/views/components/menu_item.rb +59 -0
  284. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  285. data/lib/active_admin/views/components/panel.rb +2 -1
  286. data/lib/active_admin/views/components/scopes.rb +19 -17
  287. data/lib/active_admin/views/components/sidebar.rb +14 -0
  288. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  289. data/lib/active_admin/views/components/site_title.rb +7 -7
  290. data/lib/active_admin/views/components/status_tag.rb +19 -23
  291. data/lib/active_admin/views/components/table_for.rb +22 -29
  292. data/lib/active_admin/views/components/tabs.rb +18 -5
  293. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  294. data/lib/active_admin/views/footer.rb +6 -8
  295. data/lib/active_admin/views/header.rb +4 -16
  296. data/lib/active_admin/views/index_as_block.rb +1 -0
  297. data/lib/active_admin/views/index_as_blog.rb +4 -4
  298. data/lib/active_admin/views/index_as_grid.rb +27 -26
  299. data/lib/active_admin/views/index_as_table.rb +53 -26
  300. data/lib/active_admin/views/pages/base.rb +47 -63
  301. data/lib/active_admin/views/pages/form.rb +1 -0
  302. data/lib/active_admin/views/pages/index.rb +16 -13
  303. data/lib/active_admin/views/pages/layout.rb +1 -0
  304. data/lib/active_admin/views/pages/page.rb +1 -0
  305. data/lib/active_admin/views/pages/show.rb +7 -1
  306. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  307. data/lib/active_admin/views/title_bar.rb +6 -5
  308. data/lib/active_admin/views.rb +2 -1
  309. data/lib/active_admin.rb +70 -68
  310. data/lib/activeadmin.rb +2 -1
  311. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  312. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  313. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  314. data/lib/generators/active_admin/devise/devise_generator.rb +7 -6
  315. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  316. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  317. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -1
  318. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  319. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  320. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  321. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  322. data/lib/generators/active_admin/resource/resource_generator.rb +5 -4
  323. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  324. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  325. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  326. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  327. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  328. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  329. data/lib/ransack_ext.rb +10 -9
  330. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  331. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  332. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  333. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  334. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  335. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  336. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  337. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  338. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  339. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  340. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  341. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  342. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  343. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  344. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  345. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  346. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  347. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  348. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  349. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  350. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  351. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  352. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  353. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  354. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  355. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  356. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  357. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  358. metadata +158 -580
  359. data/.gitignore +0 -49
  360. data/.hound.yml +0 -14
  361. data/.rubocop.yml +0 -27
  362. data/.travis.yml +0 -66
  363. data/.yardopts +0 -8
  364. data/Appraisals +0 -41
  365. data/Gemfile +0 -49
  366. data/Rakefile +0 -65
  367. data/activeadmin.gemspec +0 -34
  368. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  369. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  370. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  371. data/app/assets/images/active_admin/orderable.png +0 -0
  372. data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
  373. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  374. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  375. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
  376. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
  377. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -22
  378. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
  379. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -18
  380. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  381. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -44
  382. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  383. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  384. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  385. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  386. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -42
  387. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  388. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  389. data/codecov.yml +0 -23
  390. data/cucumber.yml +0 -3
  391. data/features/action_item.feature +0 -73
  392. data/features/authorization.feature +0 -64
  393. data/features/authorization_cancan.feature +0 -52
  394. data/features/authorization_pundit.feature +0 -37
  395. data/features/belongs_to.feature +0 -124
  396. data/features/breadcrumb.feature +0 -75
  397. data/features/comments/commenting.feature +0 -158
  398. data/features/comments/viewing_index.feature +0 -19
  399. data/features/create_another.feature +0 -55
  400. data/features/dashboard.feature +0 -16
  401. data/features/decorators.feature +0 -43
  402. data/features/development_reloading.feature +0 -28
  403. data/features/edit_page.feature +0 -116
  404. data/features/favicon.feature +0 -20
  405. data/features/first_boot.feature +0 -16
  406. data/features/footer.feature +0 -28
  407. data/features/global_navigation.feature +0 -29
  408. data/features/i18n.feature +0 -55
  409. data/features/index/batch_actions.feature +0 -218
  410. data/features/index/filters.feature +0 -199
  411. data/features/index/format_as_csv.feature +0 -203
  412. data/features/index/formats.feature +0 -88
  413. data/features/index/index_as_block.feature +0 -15
  414. data/features/index/index_as_blog.feature +0 -69
  415. data/features/index/index_as_grid.feature +0 -45
  416. data/features/index/index_as_table.feature +0 -291
  417. data/features/index/index_blank_slate.feature +0 -83
  418. data/features/index/index_parameters.feature +0 -75
  419. data/features/index/index_scope_to.feature +0 -56
  420. data/features/index/index_scopes.feature +0 -270
  421. data/features/index/page_title.feature +0 -41
  422. data/features/index/pagination.feature +0 -63
  423. data/features/index/switch_index_view.feature +0 -73
  424. data/features/menu.feature +0 -72
  425. data/features/meta_tags.feature +0 -21
  426. data/features/new_page.feature +0 -107
  427. data/features/registering_assets.feature +0 -34
  428. data/features/registering_pages.feature +0 -237
  429. data/features/registering_resources.feature +0 -33
  430. data/features/renamed_resource.feature +0 -30
  431. data/features/root_to.feature +0 -17
  432. data/features/show/columns.feature +0 -40
  433. data/features/show/default_content.feature +0 -44
  434. data/features/show/page_title.feature +0 -58
  435. data/features/show/tabs.feature +0 -27
  436. data/features/sidebar_sections.feature +0 -210
  437. data/features/site_title.feature +0 -47
  438. data/features/specifying_actions.feature +0 -118
  439. data/features/step_definitions/action_item_steps.rb +0 -7
  440. data/features/step_definitions/action_link_steps.rb +0 -20
  441. data/features/step_definitions/additional_web_steps.rb +0 -81
  442. data/features/step_definitions/asset_steps.rb +0 -15
  443. data/features/step_definitions/attribute_steps.rb +0 -18
  444. data/features/step_definitions/batch_action_steps.rb +0 -81
  445. data/features/step_definitions/blog_steps.rb +0 -3
  446. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  447. data/features/step_definitions/column_steps.rb +0 -8
  448. data/features/step_definitions/comment_steps.rb +0 -12
  449. data/features/step_definitions/configuration_steps.rb +0 -100
  450. data/features/step_definitions/dashboard_steps.rb +0 -15
  451. data/features/step_definitions/factory_steps.rb +0 -35
  452. data/features/step_definitions/filter_steps.rb +0 -39
  453. data/features/step_definitions/flash_steps.rb +0 -11
  454. data/features/step_definitions/footer_steps.rb +0 -11
  455. data/features/step_definitions/format_steps.rb +0 -56
  456. data/features/step_definitions/i18n_steps.rb +0 -11
  457. data/features/step_definitions/index_scope_steps.rb +0 -25
  458. data/features/step_definitions/index_views_steps.rb +0 -3
  459. data/features/step_definitions/layout_steps.rb +0 -3
  460. data/features/step_definitions/member_link_steps.rb +0 -7
  461. data/features/step_definitions/menu_steps.rb +0 -11
  462. data/features/step_definitions/meta_tag_steps.rb +0 -3
  463. data/features/step_definitions/pagination_steps.rb +0 -15
  464. data/features/step_definitions/sidebar_steps.rb +0 -11
  465. data/features/step_definitions/site_title_steps.rb +0 -17
  466. data/features/step_definitions/tab_steps.rb +0 -8
  467. data/features/step_definitions/table_steps.rb +0 -116
  468. data/features/step_definitions/user_steps.rb +0 -52
  469. data/features/step_definitions/web_steps.rb +0 -86
  470. data/features/sti_resource.feature +0 -65
  471. data/features/strong_parameters.feature +0 -69
  472. data/features/support/env.rb +0 -121
  473. data/features/support/paths.rb +0 -73
  474. data/features/support/selectors.rb +0 -45
  475. data/features/users/logging_in.feature +0 -36
  476. data/features/users/logging_out.feature +0 -13
  477. data/features/users/resetting_password.feature +0 -34
  478. data/gemfiles/rails_42.gemfile +0 -45
  479. data/gemfiles/rails_50.gemfile +0 -45
  480. data/gemfiles/rails_51.gemfile +0 -45
  481. data/lib/active_admin/event.rb +0 -24
  482. data/lib/active_admin/filters/humanized.rb +0 -68
  483. data/lib/active_admin/helpers/settings.rb +0 -115
  484. data/lib/active_admin/reloader.rb +0 -25
  485. data/lib/bug_report_templates/rails_5_master.rb +0 -118
  486. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  487. data/spec/bug_report_templates_spec.rb +0 -27
  488. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  489. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  490. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  491. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  492. data/spec/javascripts/fixtures/flashes.html +0 -2
  493. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  494. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  495. data/spec/javascripts/support/jasmine.yml +0 -74
  496. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  497. data/spec/rails_helper.rb +0 -62
  498. data/spec/requests/default_namespace_spec.rb +0 -81
  499. data/spec/requests/javascript_spec.rb +0 -22
  500. data/spec/requests/memory_spec.rb +0 -25
  501. data/spec/requests/stylesheets_spec.rb +0 -18
  502. data/spec/spec_helper.rb +0 -12
  503. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  504. data/spec/support/active_admin_request_helpers.rb +0 -39
  505. data/spec/support/jslint.yml +0 -80
  506. data/spec/support/rails_template.rb +0 -182
  507. data/spec/support/rails_template_with_data.rb +0 -68
  508. data/spec/support/templates/admin/stores.rb +0 -7
  509. data/spec/support/templates/en.yml +0 -8
  510. data/spec/support/templates/manifest.js +0 -3
  511. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  512. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  513. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  514. data/spec/support/templates/policies/application_policy.rb +0 -45
  515. data/spec/support/templates/policies/category_policy.rb +0 -7
  516. data/spec/support/templates/policies/post_policy.rb +0 -15
  517. data/spec/support/templates/policies/store_policy.rb +0 -11
  518. data/spec/support/templates/policies/user_policy.rb +0 -11
  519. data/spec/support/templates/post_decorator.rb +0 -11
  520. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  521. data/spec/unit/action_builder_spec.rb +0 -125
  522. data/spec/unit/active_admin_spec.rb +0 -11
  523. data/spec/unit/application_spec.rb +0 -180
  524. data/spec/unit/asset_registration_spec.rb +0 -52
  525. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  526. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  527. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  528. data/spec/unit/auto_link_spec.rb +0 -93
  529. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  530. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  531. data/spec/unit/belongs_to_spec.rb +0 -77
  532. data/spec/unit/cancan_adapter_spec.rb +0 -43
  533. data/spec/unit/comments_spec.rb +0 -176
  534. data/spec/unit/component_spec.rb +0 -18
  535. data/spec/unit/config_shared_examples.rb +0 -59
  536. data/spec/unit/controller_filters_spec.rb +0 -41
  537. data/spec/unit/csv_builder_spec.rb +0 -306
  538. data/spec/unit/dependency_spec.rb +0 -135
  539. data/spec/unit/devise_spec.rb +0 -110
  540. data/spec/unit/dsl_spec.rb +0 -122
  541. data/spec/unit/filters/active_spec.rb +0 -14
  542. data/spec/unit/filters/filter_form_builder_spec.rb +0 -500
  543. data/spec/unit/filters/humanized_spec.rb +0 -64
  544. data/spec/unit/filters/resource_spec.rb +0 -128
  545. data/spec/unit/form_builder_spec.rb +0 -990
  546. data/spec/unit/generators/install_spec.rb +0 -31
  547. data/spec/unit/helpers/collection_spec.rb +0 -68
  548. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  549. data/spec/unit/helpers/settings_spec.rb +0 -30
  550. data/spec/unit/i18n_spec.rb +0 -12
  551. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  552. data/spec/unit/menu_collection_spec.rb +0 -62
  553. data/spec/unit/menu_item_spec.rb +0 -143
  554. data/spec/unit/menu_spec.rb +0 -71
  555. data/spec/unit/namespace/authorization_spec.rb +0 -27
  556. data/spec/unit/namespace/register_page_spec.rb +0 -99
  557. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  558. data/spec/unit/namespace_spec.rb +0 -125
  559. data/spec/unit/order_clause_spec.rb +0 -81
  560. data/spec/unit/page_controller_spec.rb +0 -5
  561. data/spec/unit/page_spec.rb +0 -131
  562. data/spec/unit/pretty_format_spec.rb +0 -82
  563. data/spec/unit/pundit_adapter_spec.rb +0 -98
  564. data/spec/unit/resource/action_items_spec.rb +0 -65
  565. data/spec/unit/resource/attributes_spec.rb +0 -50
  566. data/spec/unit/resource/includes_spec.rb +0 -21
  567. data/spec/unit/resource/menu_spec.rb +0 -18
  568. data/spec/unit/resource/naming_spec.rb +0 -122
  569. data/spec/unit/resource/ordering_spec.rb +0 -38
  570. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  571. data/spec/unit/resource/pagination_spec.rb +0 -38
  572. data/spec/unit/resource/routes_spec.rb +0 -125
  573. data/spec/unit/resource/scopes_spec.rb +0 -50
  574. data/spec/unit/resource/sidebars_spec.rb +0 -43
  575. data/spec/unit/resource_collection_spec.rb +0 -175
  576. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  577. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  578. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  579. data/spec/unit/resource_controller_spec.rb +0 -274
  580. data/spec/unit/resource_registration_spec.rb +0 -61
  581. data/spec/unit/resource_spec.rb +0 -313
  582. data/spec/unit/routing_spec.rb +0 -213
  583. data/spec/unit/scope_spec.rb +0 -209
  584. data/spec/unit/settings_spec.rb +0 -118
  585. data/spec/unit/view_factory_spec.rb +0 -19
  586. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  587. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  588. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  589. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  590. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  591. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  592. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  593. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  594. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  595. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  596. data/spec/unit/views/components/columns_spec.rb +0 -189
  597. data/spec/unit/views/components/index_list_spec.rb +0 -49
  598. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  599. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  600. data/spec/unit/views/components/panel_spec.rb +0 -58
  601. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  602. data/spec/unit/views/components/site_title_spec.rb +0 -78
  603. data/spec/unit/views/components/status_tag_spec.rb +0 -249
  604. data/spec/unit/views/components/table_for_spec.rb +0 -436
  605. data/spec/unit/views/components/tabs_spec.rb +0 -39
  606. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  607. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  608. data/spec/unit/views/pages/form_spec.rb +0 -54
  609. data/spec/unit/views/pages/index_spec.rb +0 -60
  610. data/spec/unit/views/pages/layout_spec.rb +0 -59
  611. data/spec/unit/views/pages/show_spec.rb +0 -32
  612. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  613. data/tasks/docs.rake +0 -37
  614. data/tasks/lint.rake +0 -8
  615. data/tasks/local.rake +0 -25
  616. data/tasks/parallel_tests.rake +0 -66
  617. data/tasks/test.rake +0 -46
  618. data/tasks/yard.rake +0 -9
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class Resource
3
4
  module Scopes
@@ -10,7 +11,7 @@ module ActiveAdmin
10
11
  # Returns a scope for this object by its identifier
11
12
  def get_scope_by_id(id)
12
13
  id = id.to_s
13
- scopes.find{|s| s.id == id }
14
+ scopes.find { |s| s.id == id }
14
15
  end
15
16
 
16
17
  def default_scope(context = nil)
@@ -27,7 +28,8 @@ module ActiveAdmin
27
28
  # If you want to internationalize the scope name, you can add
28
29
  # to your i18n files a key like "active_admin.scopes.scope_method".
29
30
  def scope(*args, &block)
30
- options = args.extract_options!
31
+ default_options = { show_count: namespace.scopes_show_count }
32
+ options = default_options.merge(args.extract_options!)
31
33
  title = args[0] rescue nil
32
34
  method = args[1] rescue nil
33
35
 
@@ -35,7 +37,7 @@ module ActiveAdmin
35
37
  scope = ActiveAdmin::Scope.new(title, method, options, &block)
36
38
 
37
39
  # Finds and replaces a scope by the same name if it already exists
38
- existing_scope_index = scopes.index{|existing_scope| existing_scope.id == scope.id }
40
+ existing_scope_index = scopes.index { |existing_scope| existing_scope.id == scope.id }
39
41
  if existing_scope_index
40
42
  scopes.delete_at(existing_scope_index)
41
43
  scopes.insert(existing_scope_index, scope)
@@ -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
 
@@ -14,7 +15,7 @@ module ActiveAdmin
14
15
  end
15
16
 
16
17
  def sidebar_sections_for(action, render_context = nil)
17
- sidebar_sections.select{|section| section.display_on?(action, render_context) }
18
+ sidebar_sections.select { |section| section.display_on?(action, render_context) }
18
19
  .sort_by(&:priority)
19
20
  end
20
21
 
@@ -1,17 +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'
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"
15
17
 
16
18
  module ActiveAdmin
17
19
 
@@ -26,7 +28,7 @@ module ActiveAdmin
26
28
  class Resource
27
29
 
28
30
  # Event dispatched when a new resource is registered
29
- RegisterEvent = 'active_admin.resource.register'.freeze
31
+ RegisterEvent = "active_admin.resource.register".freeze
30
32
 
31
33
  # The namespace this config belongs to
32
34
  attr_reader :namespace
@@ -43,7 +45,7 @@ module ActiveAdmin
43
45
  # The default sort order to use in the controller
44
46
  attr_writer :sort_order
45
47
  def sort_order
46
- @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"
47
49
  end
48
50
 
49
51
  # Set the configuration for the CSV
@@ -69,9 +71,10 @@ module ActiveAdmin
69
71
  def initialize(namespace, resource_class, options = {})
70
72
  @namespace = namespace
71
73
  @resource_class_name = "::#{resource_class.name}"
72
- @options = options
74
+ @options = options
73
75
  @sort_order = options[:sort_order]
74
- @member_actions, @collection_actions = [], []
76
+ @member_actions = []
77
+ @collection_actions = []
75
78
  end
76
79
  end
77
80
 
@@ -96,11 +99,15 @@ module ActiveAdmin
96
99
  # The class this resource wraps. If you register the Post model, Resource#resource_class
97
100
  # will point to the Post class
98
101
  def resource_class
99
- ActiveSupport::Dependencies.constantize(resource_class_name)
102
+ resource_class_name.constantize
100
103
  end
101
104
 
102
105
  def decorator_class
103
- ActiveSupport::Dependencies.constantize(decorator_class_name) if decorator_class_name
106
+ decorator_class_name&.constantize
107
+ end
108
+
109
+ def resource_name_extension
110
+ @resource_name_extension ||= define_resource_name_extension(self)
104
111
  end
105
112
 
106
113
  def resource_table_name
@@ -132,6 +139,7 @@ module ActiveAdmin
132
139
  def belongs_to(target, options = {})
133
140
  @belongs_to = Resource::BelongsTo.new(self, target, options)
134
141
  self.menu_item_options = false if @belongs_to.required?
142
+ options[:class_name] ||= @belongs_to.resource.resource_class_name if @belongs_to.resource
135
143
  controller.send :belongs_to, target, options.dup
136
144
  end
137
145
 
@@ -181,11 +189,11 @@ module ActiveAdmin
181
189
  end
182
190
 
183
191
  def association_columns
184
- @association_columns ||= resource_attributes.select{ |key, value| key != value }.values
192
+ @association_columns ||= resource_attributes.select { |key, value| key != value }.values
185
193
  end
186
194
 
187
195
  def content_columns
188
- @content_columns ||= resource_attributes.select{ |key, value| key == value }.values
196
+ @content_columns ||= resource_attributes.select { |key, value| key == value }.values
189
197
  end
190
198
 
191
199
  private
@@ -202,5 +210,12 @@ module ActiveAdmin
202
210
  @default_csv_builder ||= CSVBuilder.default_for_resource(self)
203
211
  end
204
212
 
213
+ def define_resource_name_extension(resource)
214
+ Module.new do
215
+ define_method :model_name do
216
+ resource.resource_name
217
+ end
218
+ end
219
+ end
205
220
  end # class Resource
206
221
  end # module ActiveAdmin
@@ -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`.
@@ -38,12 +39,12 @@ module ActiveAdmin
38
39
  r.resource_class.to_s == obj.to_s
39
40
  end ||
40
41
  if obj.respond_to? :base_class
41
- resources.detect{ |r| r.resource_class.to_s == obj.base_class.to_s }
42
+ resources.detect { |r| r.resource_class.to_s == obj.base_class.to_s }
42
43
  end
43
44
  end
44
45
 
45
46
  def resources
46
- select{ |r| r.class <= Resource } # can otherwise be a Page
47
+ select { |r| r.class <= Resource } # can otherwise be a Page
47
48
  end
48
49
 
49
50
  def raise_if_mismatched!(existing, given)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
 
@@ -7,12 +8,22 @@ module ActiveAdmin
7
8
  module ClassMethods
8
9
 
9
10
  def clear_member_actions!
11
+ remove_action_methods(:member)
10
12
  active_admin_config.clear_member_actions!
11
13
  end
12
14
 
13
15
  def clear_collection_actions!
16
+ remove_action_methods(:collection)
14
17
  active_admin_config.clear_collection_actions!
15
18
  end
19
+
20
+ private
21
+
22
+ def remove_action_methods(actions_type)
23
+ active_admin_config.public_send("#{actions_type}_actions").each do |action|
24
+ remove_method action.name
25
+ end
26
+ end
16
27
  end
17
28
 
18
29
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
 
@@ -14,6 +15,8 @@ module ActiveAdmin
14
15
  include ScopeChain
15
16
 
16
17
  define_active_admin_callbacks :build, :create, :update, :save, :destroy
18
+
19
+ helper_method :current_scope
17
20
  end
18
21
  end
19
22
 
@@ -21,9 +24,9 @@ module ActiveAdmin
21
24
 
22
25
  COLLECTION_APPLIES = [
23
26
  :authorization_scope,
24
- :sorting,
25
27
  :filtering,
26
28
  :scoping,
29
+ :sorting,
27
30
  :includes,
28
31
  :pagination,
29
32
  :collection_decorator
@@ -45,7 +48,6 @@ module ActiveAdmin
45
48
  end
46
49
  end
47
50
 
48
-
49
51
  # Does the actual work of retrieving the current collection from the db.
50
52
  # This is a great method to override if you would like to perform
51
53
  # some additional db # work before your controller returns and
@@ -60,7 +62,6 @@ module ActiveAdmin
60
62
  collection
61
63
  end
62
64
 
63
-
64
65
  # Override this method in your controllers to modify the start point
65
66
  # of our searches and index.
66
67
  #
@@ -103,7 +104,6 @@ module ActiveAdmin
103
104
  scoped_collection.send method_for_find, params[:id]
104
105
  end
105
106
 
106
-
107
107
  # Builds, memoize and authorize a new instance of the resource. The
108
108
  # actual work of building the new instance is delegated to the
109
109
  # #build_new_resource method.
@@ -116,6 +116,7 @@ module ActiveAdmin
116
116
  get_resource_ivar || begin
117
117
  resource = build_new_resource
118
118
  resource = apply_decorations(resource)
119
+ resource = assign_attributes(resource, resource_params)
119
120
  run_build_callbacks resource
120
121
  authorize_resource! resource
121
122
 
@@ -128,7 +129,10 @@ 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 method_for_build, *resource_params
132
+ apply_authorization_scope(scoped_collection).send(
133
+ method_for_build,
134
+ *resource_params.map { |params| params.slice(active_admin_config.resource_class.inheritance_column) }
135
+ )
132
136
  end
133
137
 
134
138
  # Calls all the appropriate callbacks and then creates the new resource.
@@ -180,12 +184,10 @@ module ActiveAdmin
180
184
  end
181
185
  end
182
186
 
183
-
184
187
  #
185
188
  # Collection Helper Methods
186
189
  #
187
190
 
188
-
189
191
  # Gives the authorization library a change to pre-scope the collection.
190
192
  #
191
193
  # In the case of the CanCan adapter, it calls `#accessible_by` on
@@ -241,13 +243,15 @@ module ActiveAdmin
241
243
 
242
244
  def current_scope
243
245
  @current_scope ||= if params[:scope]
244
- active_admin_config.get_scope_by_id(params[:scope])
245
- else
246
- active_admin_config.default_scope(self)
247
- end
246
+ active_admin_config.get_scope_by_id(params[:scope])
247
+ else
248
+ active_admin_config.default_scope(self)
249
+ end
248
250
  end
249
251
 
250
252
  def apply_pagination(chain)
253
+ # skip pagination if already was paginated by scope
254
+ return chain if chain.respond_to?(:total_pages)
251
255
  page_method_name = Kaminari.config.page_method_name
252
256
  page = params[Kaminari.config.param_name]
253
257
 
@@ -255,7 +259,7 @@ module ActiveAdmin
255
259
  end
256
260
 
257
261
  def collection_applies(options = {})
258
- only = Array(options.fetch(:only, COLLECTION_APPLIES))
262
+ only = Array(options.fetch(:only, COLLECTION_APPLIES))
259
263
  except = Array(options.fetch(:except, []))
260
264
 
261
265
  COLLECTION_APPLIES & only - except
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
  module Decorators
4
5
 
5
- protected
6
+ protected
6
7
 
7
8
  def apply_decorator(resource)
8
9
  decorate? ? decorator_class.new(resource) : resource
@@ -24,11 +25,11 @@ module ActiveAdmin
24
25
  end
25
26
  end
26
27
 
27
- private
28
+ private
28
29
 
29
30
  def decorate?
30
31
  case action_name
31
- when 'new', 'edit', 'create', 'update'
32
+ when "new", "edit", "create", "update"
32
33
  form = active_admin_config.get_page_presenter :form
33
34
  form && form.options[:decorate] && decorator_class.present?
34
35
  else
@@ -53,49 +54,27 @@ module ActiveAdmin
53
54
 
54
55
  def self.wrap(decorator)
55
56
  collection_decorator = find_collection_decorator(decorator)
56
-
57
- if draper_collection_decorator? collection_decorator
58
- name = "#{collection_decorator.name} of #{decorator} + ActiveAdmin"
59
- @cache[name] ||= wrap! collection_decorator, name
60
- else
61
- collection_decorator
62
- end
57
+ name = "#{collection_decorator.name} of #{decorator} + ActiveAdmin"
58
+ @cache[name] ||= wrap! collection_decorator, name
63
59
  end
64
60
 
65
- private
66
-
67
61
  def self.wrap!(parent, name)
68
62
  ::Class.new parent do
69
63
  delegate :reorder, :page, :current_page, :total_pages, :limit_value,
70
- :total_count, :total_pages, :to_key, :group_values, :except,
71
- :find_each, :ransack
64
+ :total_count, :total_pages, :offset, :to_key, :group_values,
65
+ :except, :find_each, :ransack, to: :object
72
66
 
73
67
  define_singleton_method(:name) { name }
74
68
  end
75
69
  end
76
70
 
77
- # Draper::CollectionDecorator was introduced in 1.0.0
78
- # Draper::Decorator#collection_decorator_class was introduced in 1.3.0
79
71
  def self.find_collection_decorator(decorator)
80
- if Dependency.draper? '>= 1.3.0'
72
+ if decorator.respond_to?(:collection_decorator_class)
81
73
  decorator.collection_decorator_class
82
- elsif Dependency.draper? '>= 1.0.0'
83
- draper_collection_decorator
84
74
  else
85
- decorator
75
+ CollectionDecorator
86
76
  end
87
77
  end
88
-
89
- def self.draper_collection_decorator?(decorator)
90
- decorator && decorator <= draper_collection_decorator
91
- rescue NameError
92
- false
93
- end
94
-
95
- def self.draper_collection_decorator
96
- ::Draper::CollectionDecorator
97
- end
98
-
99
78
  end
100
79
  end
101
80
  end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/resource"
3
+ require "active_admin/resource/model"
4
+
5
+ module ActiveAdmin
6
+ class ResourceController < BaseController
7
+ module PolymorphicRoutes
8
+ def polymorphic_url(record_or_hash_or_array, options = {})
9
+ super(map_named_resources_for(record_or_hash_or_array), options)
10
+ end
11
+
12
+ def polymorphic_path(record_or_hash_or_array, options = {})
13
+ super(map_named_resources_for(record_or_hash_or_array), options)
14
+ end
15
+
16
+ private
17
+
18
+ def map_named_resources_for(record_or_hash_or_array)
19
+ return record_or_hash_or_array unless record_or_hash_or_array.is_a?(Array)
20
+
21
+ record_or_hash_or_array.map { |record| to_named_resource(record) }
22
+ end
23
+
24
+ def to_named_resource(record)
25
+ if record.is_a?(resource_class)
26
+ return ActiveAdmin::Model.new(active_admin_config, record)
27
+ end
28
+
29
+ belongs_to_resource = active_admin_config.belongs_to_config.try(:resource)
30
+ if belongs_to_resource && record.is_a?(belongs_to_resource.resource_class)
31
+ return ActiveAdmin::Model.new(belongs_to_resource, record)
32
+ end
33
+
34
+ record
35
+ end
36
+ end
37
+ end
38
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
  module ResourceClassMethods
@@ -13,6 +14,8 @@ module ActiveAdmin
13
14
  @active_admin_config ? @active_admin_config.resource_class : nil
14
15
  end
15
16
 
17
+ private
18
+
16
19
  def resource_class
17
20
  self.class.resource_class
18
21
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
 
@@ -15,7 +16,7 @@ module ActiveAdmin
15
16
  # Collection can be scoped conditionally with an :if or :unless proc.
16
17
  def begin_of_association_chain
17
18
  return nil unless active_admin_config.scope_to?(self)
18
- render_in_context(self, active_admin_config.scope_to_method)
19
+ MethodOrProcHelper.render_in_context(self, active_admin_config.scope_to_method)
19
20
  end
20
21
 
21
22
  # Overriding from InheritedResources::BaseHelpers
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  class ResourceController < BaseController
3
4
 
@@ -1,4 +1,5 @@
1
- require 'csv'
1
+ # frozen_string_literal: true
2
+ require "csv"
2
3
 
3
4
  module ActiveAdmin
4
5
  class ResourceController < BaseController
@@ -18,23 +19,24 @@ module ActiveAdmin
18
19
  protected
19
20
 
20
21
  def stream_resource(&block)
21
- headers['X-Accel-Buffering'] = 'no'
22
- headers['Cache-Control'] = 'no-cache'
22
+ headers["X-Accel-Buffering"] = "no"
23
+ headers["Cache-Control"] = "no-cache"
24
+ headers["Last-Modified"] = Time.current.httpdate
23
25
 
24
26
  if ActiveAdmin.application.disable_streaming_in.include? Rails.env
25
- self.response_body = block['']
27
+ self.response_body = block[String.new]
26
28
  else
27
29
  self.response_body = Enumerator.new &block
28
30
  end
29
31
  end
30
32
 
31
33
  def csv_filename
32
- "#{resource_collection_name.to_s.gsub('_', '-')}-#{Time.zone.now.to_date.to_s(:default)}.csv"
34
+ "#{resource_collection_name.to_s.gsub('_', '-')}-#{Time.zone.now.to_date.to_formatted_s(:default)}.csv"
33
35
  end
34
36
 
35
37
  def stream_csv
36
- headers['Content-Type'] = 'text/csv; charset=utf-8' # In Rails 5 it's set to HTML??
37
- headers['Content-Disposition'] = %{attachment; filename="#{csv_filename}"}
38
+ headers["Content-Type"] = "text/csv; charset=utf-8" # In Rails 5 it's set to HTML??
39
+ headers["Content-Disposition"] = %{attachment; filename="#{csv_filename}"}
38
40
  stream_resource &active_admin_config.csv_builder.method(:build).to_proc.curry[self]
39
41
  end
40
42
 
@@ -1,10 +1,13 @@
1
- require 'active_admin/resource_controller/action_builder'
2
- require 'active_admin/resource_controller/data_access'
3
- require 'active_admin/resource_controller/decorators'
4
- require 'active_admin/resource_controller/scoping'
5
- require 'active_admin/resource_controller/streaming'
6
- require 'active_admin/resource_controller/sidebars'
7
- require 'active_admin/resource_controller/resource_class_methods'
1
+ # frozen_string_literal: true
2
+ require "active_admin/collection_decorator"
3
+ require "active_admin/resource_controller/action_builder"
4
+ require "active_admin/resource_controller/data_access"
5
+ require "active_admin/resource_controller/decorators"
6
+ require "active_admin/resource_controller/polymorphic_routes"
7
+ require "active_admin/resource_controller/scoping"
8
+ require "active_admin/resource_controller/streaming"
9
+ require "active_admin/resource_controller/sidebars"
10
+ require "active_admin/resource_controller/resource_class_methods"
8
11
 
9
12
  module ActiveAdmin
10
13
  # All Resources Controller inherits from this controller.
@@ -18,17 +21,18 @@ module ActiveAdmin
18
21
  include ActionBuilder
19
22
  include Decorators
20
23
  include DataAccess
24
+ include PolymorphicRoutes
21
25
  include Scoping
22
26
  include Streaming
23
27
  include Sidebars
24
28
  include ViewHelpers::DownloadFormatLinksHelper
25
- extend ResourceClassMethods
29
+ extend ResourceClassMethods
26
30
 
27
31
  def self.active_admin_config=(config)
28
32
  if @active_admin_config = config
29
33
  defaults resource_class: config.resource_class,
30
- route_prefix: config.route_prefix,
31
- instance_name: config.resource_name.singular
34
+ route_prefix: config.route_prefix,
35
+ instance_name: config.resource_name.singular
32
36
  end
33
37
  end
34
38
 
@@ -52,7 +56,7 @@ module ActiveAdmin
52
56
  def restrict_format_access!
53
57
  unless request.format.html?
54
58
  presenter = active_admin_config.get_page_presenter(:index)
55
- download_formats = (presenter || {}).fetch(:download_links, active_admin_config.namespace.download_links)
59
+ download_formats = (presenter || {}).fetch(:download_links, active_admin_config.namespace.download_links)
56
60
  unless build_download_formats(download_formats).include?(request.format.symbol)
57
61
  raise ActiveAdmin::AccessDenied.new(current_active_admin_user, :index)
58
62
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  # This is the class where all the register blocks are evaluated.
3
4
  class ResourceDSL < DSL
@@ -62,11 +63,12 @@ module ActiveAdmin
62
63
  #
63
64
  def permit_params(*args, &block)
64
65
  param_key = config.param_key.to_sym
65
- belongs_to_param = config.belongs_to_param
66
- create_another_param = :create_another if config.create_another
67
66
 
68
67
  controller do
69
68
  define_method :permitted_params do
69
+ belongs_to_param = active_admin_config.belongs_to_param
70
+ create_another_param = :create_another if active_admin_config.create_another
71
+
70
72
  permitted_params =
71
73
  active_admin_namespace.permitted_params +
72
74
  Array.wrap(belongs_to_param) +
@@ -74,6 +76,8 @@ module ActiveAdmin
74
76
 
75
77
  params.permit(*permitted_params, param_key => block ? instance_exec(&block) : args)
76
78
  end
79
+
80
+ private :permitted_params
77
81
  end
78
82
  end
79
83
 
@@ -105,7 +109,7 @@ module ActiveAdmin
105
109
  # column :name
106
110
  # end
107
111
  #
108
- def csv(options={}, &block)
112
+ def csv(options = {}, &block)
109
113
  options[:resource] = config
110
114
 
111
115
  config.csv_builder = CSVBuilder.new(options, &block)
@@ -119,7 +123,7 @@ module ActiveAdmin
119
123
  #
120
124
  # ActiveAdmin.register Post do
121
125
  # member_action :comments do
122
- # @post = Post.find(params[:id]
126
+ # @post = Post.find(params[:id])
123
127
  # @comments = @post.comments
124
128
  # end
125
129
  # end
@@ -131,12 +135,14 @@ module ActiveAdmin
131
135
  # action.
132
136
  #
133
137
  def action(set, name, options = {}, &block)
138
+ warn "Warning: method `#{name}` already defined in #{controller.name}" if controller.method_defined?(name)
139
+
134
140
  set << ControllerAction.new(name, options)
135
141
  title = options.delete(:title)
136
142
 
137
143
  controller do
138
144
  before_action(only: [name]) { @page_title = title } if title
139
- define_method(name, &block || Proc.new{})
145
+ define_method(name, &block || Proc.new {})
140
146
  end
141
147
  end
142
148
 
@@ -179,31 +185,15 @@ module ActiveAdmin
179
185
  # == Before / After Destroy
180
186
  # Called before and after the object is destroyed from the database.
181
187
  #
182
- delegate :before_build, :after_build, to: :controller
183
- delegate :before_create, :after_create, to: :controller
184
- delegate :before_update, :after_update, to: :controller
185
- delegate :before_save, :after_save, to: :controller
188
+ delegate :before_build, :after_build, to: :controller
189
+ delegate :before_create, :after_create, to: :controller
190
+ delegate :before_update, :after_update, to: :controller
191
+ delegate :before_save, :after_save, to: :controller
186
192
  delegate :before_destroy, :after_destroy, to: :controller
187
193
 
188
- # This code defines both *_filter and *_action for Rails 4.0 to Rails 5 and *_action for Rails >= 5.1
189
- phases = [
190
- :before, :skip_before,
191
- :after, :skip_after,
192
- :around, :skip
193
- ]
194
- keywords = if Rails::VERSION::MAJOR == 5 && Rails::VERSION::MINOR >= 1
195
- [:action]
196
- else
197
- [:action, :filter]
198
- end
199
-
200
- keywords.each do |name|
201
- phases.each do |action|
202
- define_method "#{action}_#{name}" do |*args, &block|
203
- controller.public_send "#{action}_action", *args, &block
204
- end
205
- end
206
- end
194
+ standard_rails_filters =
195
+ AbstractController::Callbacks::ClassMethods.public_instance_methods.select { |m| m.match(/_action\z/) }
196
+ delegate *standard_rails_filters, to: :controller
207
197
 
208
198
  # Specify which actions to create in the controller
209
199
  #