activeadmin 1.3.1 → 2.9.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 (531) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +589 -136
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +83 -61
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +517 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +29 -29
  8. data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
  12. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  14. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  15. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  16. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  17. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  18. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  19. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +8 -0
  20. data/app/assets/stylesheets/active_admin/print.scss +2 -2
  21. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  22. data/app/javascript/active_admin/base.js +28 -0
  23. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  24. data/app/javascript/active_admin/ext/jquery.js +9 -0
  25. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  26. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  27. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  28. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  29. data/app/javascript/active_admin/initializers/filters.js +10 -0
  30. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  31. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  32. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  33. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  34. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  35. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  36. data/app/javascript/active_admin/lib/filters.js +39 -0
  37. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  38. data/app/javascript/active_admin/lib/per-page.js +38 -0
  39. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  40. data/app/javascript/active_admin/lib/utils.js +40 -0
  41. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  42. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  43. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  44. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  45. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  46. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  47. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  48. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  49. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  50. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  51. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  52. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  53. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  54. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  55. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  56. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  57. data/config/locales/ar.yml +9 -8
  58. data/config/locales/az.yml +138 -0
  59. data/config/locales/bg.yml +1 -1
  60. data/config/locales/bs.yml +1 -0
  61. data/config/locales/ca.yml +1 -1
  62. data/config/locales/cs.yml +1 -0
  63. data/config/locales/da.yml +1 -0
  64. data/config/locales/de-CH.yml +1 -0
  65. data/config/locales/de.yml +29 -0
  66. data/config/locales/el.yml +1 -0
  67. data/config/locales/en-CA.yml +4 -3
  68. data/config/locales/en-GB.yml +4 -3
  69. data/config/locales/en.yml +23 -4
  70. data/config/locales/eo.yml +1 -0
  71. data/config/locales/es-MX.yml +3 -1
  72. data/config/locales/es.yml +26 -6
  73. data/config/locales/fa.yml +1 -0
  74. data/config/locales/fi.yml +2 -1
  75. data/config/locales/fr.yml +6 -5
  76. data/config/locales/he.yml +1 -1
  77. data/config/locales/hr.yml +1 -0
  78. data/config/locales/hu.yml +5 -0
  79. data/config/locales/id.yml +1 -0
  80. data/config/locales/it.yml +23 -0
  81. data/config/locales/ja.yml +4 -3
  82. data/config/locales/ko.yml +1 -0
  83. data/config/locales/lt.yml +3 -2
  84. data/config/locales/lv.yml +3 -2
  85. data/config/locales/mk.yml +134 -0
  86. data/config/locales/nb.yml +16 -5
  87. data/config/locales/nl.yml +12 -0
  88. data/config/locales/pl.yml +72 -3
  89. data/config/locales/pt-BR.yml +1 -0
  90. data/config/locales/pt-PT.yml +1 -0
  91. data/config/locales/ro.yml +1 -0
  92. data/config/locales/ru.yml +3 -0
  93. data/config/locales/sk.yml +60 -0
  94. data/config/locales/sv-SE.yml +1 -0
  95. data/config/locales/tr.yml +10 -0
  96. data/config/locales/uk.yml +3 -0
  97. data/config/locales/vi.yml +7 -5
  98. data/config/locales/zh-CN.yml +34 -5
  99. data/config/locales/zh-TW.yml +1 -0
  100. data/docs/.gitignore +1 -0
  101. data/docs/0-installation.md +28 -4
  102. data/docs/1-general-configuration.md +36 -1
  103. data/docs/10-custom-pages.md +14 -0
  104. data/docs/11-decorators.md +16 -5
  105. data/docs/12-arbre-components.md +41 -1
  106. data/docs/13-authorization-adapter.md +41 -22
  107. data/docs/2-resource-customization.md +19 -5
  108. data/docs/3-index-pages/custom-index.md +1 -1
  109. data/docs/3-index-pages/index-as-blog.md +1 -1
  110. data/docs/3-index-pages/index-as-table.md +12 -5
  111. data/docs/3-index-pages.md +18 -1
  112. data/docs/5-forms.md +22 -3
  113. data/docs/6-show-pages.md +12 -0
  114. data/docs/8-custom-actions.md +11 -0
  115. data/docs/9-batch-actions.md +2 -2
  116. data/docs/CNAME +1 -1
  117. data/docs/Gemfile +3 -2
  118. data/docs/Gemfile.lock +259 -0
  119. data/docs/_config.yml +3 -1
  120. data/docs/_includes/toc.html +1 -1
  121. data/docs/_includes/top-menu.html +9 -1
  122. data/docs/documentation.md +2 -2
  123. data/docs/images/tidelift.svg +14 -0
  124. data/docs/index.html +110 -9
  125. data/docs/stylesheets/main.css +55 -2
  126. data/lib/active_admin/abstract_view_factory.rb +13 -51
  127. data/lib/active_admin/application.rb +59 -166
  128. data/lib/active_admin/application_settings.rb +42 -0
  129. data/lib/active_admin/asset_registration.rb +0 -8
  130. data/lib/active_admin/authorization_adapter.rb +3 -3
  131. data/lib/active_admin/base_controller/authorization.rb +16 -17
  132. data/lib/active_admin/base_controller.rb +10 -10
  133. data/lib/active_admin/batch_actions/controller.rb +5 -5
  134. data/lib/active_admin/batch_actions/resource_extension.rb +15 -10
  135. data/lib/active_admin/batch_actions/views/batch_action_form.rb +3 -3
  136. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +6 -6
  137. data/lib/active_admin/batch_actions/views/selection_cells.rb +3 -3
  138. data/lib/active_admin/callbacks.rb +1 -1
  139. data/lib/active_admin/cancan_adapter.rb +1 -1
  140. data/lib/active_admin/collection_decorator.rb +31 -0
  141. data/lib/active_admin/controller_action.rb +2 -1
  142. data/lib/active_admin/csv_builder.rb +14 -9
  143. data/lib/active_admin/dependency.rb +13 -77
  144. data/lib/active_admin/deprecation.rb +0 -25
  145. data/lib/active_admin/devise.rb +5 -5
  146. data/lib/active_admin/dsl.rb +2 -9
  147. data/lib/active_admin/dynamic_setting.rb +38 -0
  148. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  149. data/lib/active_admin/engine.rb +14 -7
  150. data/lib/active_admin/error.rb +4 -4
  151. data/lib/active_admin/filters/active.rb +1 -1
  152. data/lib/active_admin/filters/active_filter.rb +11 -11
  153. data/lib/active_admin/filters/active_sidebar.rb +9 -5
  154. data/lib/active_admin/filters/forms.rb +12 -9
  155. data/lib/active_admin/filters/formtastic_addons.rb +2 -7
  156. data/lib/active_admin/filters/resource_extension.rb +29 -5
  157. data/lib/active_admin/filters.rb +7 -7
  158. data/lib/active_admin/form_builder.rb +109 -70
  159. data/lib/active_admin/generators/boilerplate.rb +12 -4
  160. data/lib/active_admin/helpers/optional_display.rb +2 -2
  161. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  162. data/lib/active_admin/inputs/datepicker_input.rb +9 -2
  163. data/lib/active_admin/inputs/filters/base/search_method_select.rb +6 -6
  164. data/lib/active_admin/inputs/filters/base.rb +1 -1
  165. data/lib/active_admin/inputs/filters/boolean_input.rb +1 -1
  166. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -1
  167. data/lib/active_admin/inputs/filters/date_range_input.rb +15 -12
  168. data/lib/active_admin/inputs/filters/select_input.rb +2 -2
  169. data/lib/active_admin/localizers/resource_localizer.rb +3 -3
  170. data/lib/active_admin/localizers.rb +1 -1
  171. data/lib/active_admin/menu.rb +8 -11
  172. data/lib/active_admin/menu_item.rb +10 -38
  173. data/lib/active_admin/namespace.rb +30 -18
  174. data/lib/active_admin/namespace_settings.rb +126 -0
  175. data/lib/active_admin/order_clause.rb +2 -2
  176. data/lib/active_admin/orm/active_record/comments/comment.rb +4 -4
  177. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +29 -24
  178. data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
  179. data/lib/active_admin/orm/active_record/comments.rb +34 -23
  180. data/lib/active_admin/orm/active_record.rb +1 -1
  181. data/lib/active_admin/page.rb +1 -1
  182. data/lib/active_admin/page_dsl.rb +1 -1
  183. data/lib/active_admin/page_presenter.rb +2 -1
  184. data/lib/active_admin/pundit_adapter.rb +22 -9
  185. data/lib/active_admin/resource/action_items.rb +11 -6
  186. data/lib/active_admin/resource/attributes.rb +8 -5
  187. data/lib/active_admin/resource/belongs_to.rb +8 -3
  188. data/lib/active_admin/resource/controllers.rb +1 -1
  189. data/lib/active_admin/resource/menu.rb +5 -5
  190. data/lib/active_admin/resource/model.rb +15 -0
  191. data/lib/active_admin/resource/naming.rb +5 -5
  192. data/lib/active_admin/resource/routes.rb +25 -14
  193. data/lib/active_admin/resource/scope_to.rb +7 -7
  194. data/lib/active_admin/resource/scopes.rb +3 -3
  195. data/lib/active_admin/resource/sidebars.rb +2 -2
  196. data/lib/active_admin/resource.rb +34 -20
  197. data/lib/active_admin/resource_collection.rb +2 -2
  198. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  199. data/lib/active_admin/resource_controller/data_access.rb +1 -1
  200. data/lib/active_admin/resource_controller/decorators.rb +9 -31
  201. data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -0
  202. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  203. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  204. data/lib/active_admin/resource_controller/streaming.rb +7 -6
  205. data/lib/active_admin/resource_controller.rb +13 -10
  206. data/lib/active_admin/resource_dsl.rb +11 -9
  207. data/lib/active_admin/router.rb +90 -84
  208. data/lib/active_admin/scope.rb +19 -11
  209. data/lib/active_admin/settings_node.rb +19 -0
  210. data/lib/active_admin/sidebar_section.rb +3 -1
  211. data/lib/active_admin/version.rb +1 -1
  212. data/lib/active_admin/view_factory.rb +17 -17
  213. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +5 -5
  214. data/lib/active_admin/view_helpers/display_helper.rb +16 -7
  215. data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
  216. data/lib/active_admin/view_helpers/fields_for.rb +2 -2
  217. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  218. data/lib/active_admin/view_helpers.rb +1 -1
  219. data/lib/active_admin/views/components/active_admin_form.rb +12 -7
  220. data/lib/active_admin/views/components/attributes_table.rb +8 -8
  221. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  222. data/lib/active_admin/views/components/dropdown_menu.rb +8 -8
  223. data/lib/active_admin/views/components/index_list.rb +3 -3
  224. data/lib/active_admin/views/components/menu.rb +32 -0
  225. data/lib/active_admin/views/components/menu_item.rb +58 -0
  226. data/lib/active_admin/views/components/paginated_collection.rb +21 -20
  227. data/lib/active_admin/views/components/panel.rb +1 -1
  228. data/lib/active_admin/views/components/scopes.rb +17 -8
  229. data/lib/active_admin/views/components/sidebar.rb +13 -0
  230. data/lib/active_admin/views/components/sidebar_section.rb +0 -3
  231. data/lib/active_admin/views/components/site_title.rb +6 -7
  232. data/lib/active_admin/views/components/status_tag.rb +13 -26
  233. data/lib/active_admin/views/components/table_for.rb +21 -29
  234. data/lib/active_admin/views/components/tabs.rb +17 -5
  235. data/lib/active_admin/views/footer.rb +5 -8
  236. data/lib/active_admin/views/header.rb +3 -15
  237. data/lib/active_admin/views/index_as_blog.rb +2 -2
  238. data/lib/active_admin/views/index_as_grid.rb +26 -26
  239. data/lib/active_admin/views/index_as_table.rb +33 -25
  240. data/lib/active_admin/views/pages/base.rb +40 -59
  241. data/lib/active_admin/views/pages/index.rb +15 -13
  242. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  243. data/lib/active_admin/views/title_bar.rb +1 -1
  244. data/lib/active_admin/views.rb +1 -1
  245. data/lib/active_admin.rb +67 -63
  246. data/lib/activeadmin.rb +1 -1
  247. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  248. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  249. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  250. data/lib/generators/active_admin/devise/devise_generator.rb +5 -5
  251. data/lib/generators/active_admin/install/install_generator.rb +18 -8
  252. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  253. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  254. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  255. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  256. data/lib/generators/active_admin/resource/resource_generator.rb +3 -3
  257. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  258. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  259. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  260. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  261. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  262. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
  263. data/lib/ransack_ext.rb +9 -9
  264. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  265. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  266. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  267. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  268. metadata +120 -553
  269. data/.github/ISSUE_TEMPLATE.md +0 -20
  270. data/.gitignore +0 -49
  271. data/.mdlrc +0 -1
  272. data/.rubocop.yml +0 -76
  273. data/.simplecov +0 -13
  274. data/.travis.yml +0 -51
  275. data/.yardopts +0 -7
  276. data/Gemfile +0 -58
  277. data/Rakefile +0 -54
  278. data/activeadmin.gemspec +0 -32
  279. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  280. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  281. data/app/assets/images/active_admin/orderable.png +0 -0
  282. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  283. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  284. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  285. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  286. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  287. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  288. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  289. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  290. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  291. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  292. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  293. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  294. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  295. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  296. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  297. data/codecov.yml +0 -25
  298. data/config/i18n-tasks.yml +0 -26
  299. data/config/mdl_style.rb +0 -9
  300. data/cucumber.yml +0 -3
  301. data/features/action_item.feature +0 -73
  302. data/features/authorization.feature +0 -64
  303. data/features/authorization_cancan.feature +0 -52
  304. data/features/authorization_pundit.feature +0 -37
  305. data/features/belongs_to.feature +0 -124
  306. data/features/breadcrumb.feature +0 -75
  307. data/features/comments/commenting.feature +0 -178
  308. data/features/comments/viewing_index.feature +0 -19
  309. data/features/create_another.feature +0 -55
  310. data/features/dashboard.feature +0 -16
  311. data/features/decorators.feature +0 -43
  312. data/features/development_reloading.feature +0 -28
  313. data/features/edit_page.feature +0 -116
  314. data/features/favicon.feature +0 -20
  315. data/features/first_boot.feature +0 -16
  316. data/features/footer.feature +0 -28
  317. data/features/global_navigation.feature +0 -29
  318. data/features/i18n.feature +0 -55
  319. data/features/index/batch_actions.feature +0 -218
  320. data/features/index/filters.feature +0 -250
  321. data/features/index/format_as_csv.feature +0 -220
  322. data/features/index/formats.feature +0 -88
  323. data/features/index/index_as_block.feature +0 -15
  324. data/features/index/index_as_blog.feature +0 -69
  325. data/features/index/index_as_grid.feature +0 -45
  326. data/features/index/index_as_table.feature +0 -291
  327. data/features/index/index_blank_slate.feature +0 -83
  328. data/features/index/index_parameters.feature +0 -75
  329. data/features/index/index_scope_to.feature +0 -56
  330. data/features/index/index_scopes.feature +0 -285
  331. data/features/index/page_title.feature +0 -41
  332. data/features/index/pagination.feature +0 -63
  333. data/features/index/switch_index_view.feature +0 -73
  334. data/features/menu.feature +0 -72
  335. data/features/meta_tags.feature +0 -21
  336. data/features/new_page.feature +0 -136
  337. data/features/registering_assets.feature +0 -38
  338. data/features/registering_pages.feature +0 -237
  339. data/features/registering_resources.feature +0 -33
  340. data/features/renamed_resource.feature +0 -30
  341. data/features/root_to.feature +0 -17
  342. data/features/show/attributes_table_title.feature +0 -54
  343. data/features/show/columns.feature +0 -40
  344. data/features/show/default_content.feature +0 -44
  345. data/features/show/page_title.feature +0 -58
  346. data/features/show/tabs.feature +0 -33
  347. data/features/sidebar_sections.feature +0 -210
  348. data/features/site_title.feature +0 -47
  349. data/features/specifying_actions.feature +0 -118
  350. data/features/step_definitions/action_item_steps.rb +0 -7
  351. data/features/step_definitions/action_link_steps.rb +0 -19
  352. data/features/step_definitions/additional_web_steps.rb +0 -81
  353. data/features/step_definitions/asset_steps.rb +0 -15
  354. data/features/step_definitions/attribute_steps.rb +0 -18
  355. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  356. data/features/step_definitions/batch_action_steps.rb +0 -81
  357. data/features/step_definitions/blog_steps.rb +0 -3
  358. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  359. data/features/step_definitions/column_steps.rb +0 -8
  360. data/features/step_definitions/comment_steps.rb +0 -32
  361. data/features/step_definitions/configuration_steps.rb +0 -100
  362. data/features/step_definitions/dashboard_steps.rb +0 -15
  363. data/features/step_definitions/factory_steps.rb +0 -35
  364. data/features/step_definitions/filter_steps.rb +0 -47
  365. data/features/step_definitions/flash_steps.rb +0 -11
  366. data/features/step_definitions/footer_steps.rb +0 -11
  367. data/features/step_definitions/format_steps.rb +0 -56
  368. data/features/step_definitions/i18n_steps.rb +0 -11
  369. data/features/step_definitions/index_scope_steps.rb +0 -29
  370. data/features/step_definitions/index_views_steps.rb +0 -3
  371. data/features/step_definitions/layout_steps.rb +0 -3
  372. data/features/step_definitions/member_link_steps.rb +0 -7
  373. data/features/step_definitions/menu_steps.rb +0 -11
  374. data/features/step_definitions/meta_tag_steps.rb +0 -3
  375. data/features/step_definitions/pagination_steps.rb +0 -15
  376. data/features/step_definitions/sidebar_steps.rb +0 -11
  377. data/features/step_definitions/site_title_steps.rb +0 -17
  378. data/features/step_definitions/tab_steps.rb +0 -8
  379. data/features/step_definitions/table_steps.rb +0 -116
  380. data/features/step_definitions/user_steps.rb +0 -52
  381. data/features/step_definitions/web_steps.rb +0 -86
  382. data/features/sti_resource.feature +0 -65
  383. data/features/strong_parameters.feature +0 -69
  384. data/features/support/env.rb +0 -122
  385. data/features/support/paths.rb +0 -73
  386. data/features/support/regular_env.rb +0 -7
  387. data/features/support/reload_env.rb +0 -7
  388. data/features/support/selectors.rb +0 -45
  389. data/features/users/logging_in.feature +0 -36
  390. data/features/users/logging_out.feature +0 -13
  391. data/features/users/resetting_password.feature +0 -34
  392. data/gemfiles/rails_42.gemfile +0 -10
  393. data/gemfiles/rails_50.gemfile +0 -10
  394. data/gemfiles/rails_51.gemfile +0 -10
  395. data/gemfiles/rails_52.gemfile +0 -11
  396. data/lib/active_admin/event.rb +0 -24
  397. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  398. data/lib/active_admin/helpers/settings.rb +0 -114
  399. data/lib/active_admin/reloader.rb +0 -25
  400. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  401. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  402. data/spec/bug_report_templates_spec.rb +0 -26
  403. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  404. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  405. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  406. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  407. data/spec/javascripts/fixtures/flashes.html +0 -2
  408. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  409. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  410. data/spec/javascripts/support/jasmine.yml +0 -74
  411. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  412. data/spec/rails_helper.rb +0 -59
  413. data/spec/requests/default_namespace_spec.rb +0 -81
  414. data/spec/requests/memory_spec.rb +0 -25
  415. data/spec/requests/stylesheets_spec.rb +0 -18
  416. data/spec/spec_helper.rb +0 -1
  417. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  418. data/spec/support/active_admin_request_helpers.rb +0 -39
  419. data/spec/support/rails_template.rb +0 -153
  420. data/spec/support/rails_template_with_data.rb +0 -327
  421. data/spec/support/templates/admin/stores.rb +0 -7
  422. data/spec/support/templates/en.yml +0 -8
  423. data/spec/support/templates/manifest.js +0 -3
  424. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  425. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  426. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  427. data/spec/support/templates/policies/application_policy.rb +0 -44
  428. data/spec/support/templates/policies/category_policy.rb +0 -7
  429. data/spec/support/templates/policies/post_policy.rb +0 -15
  430. data/spec/support/templates/policies/store_policy.rb +0 -11
  431. data/spec/support/templates/policies/user_policy.rb +0 -11
  432. data/spec/support/templates/post_decorator.rb +0 -24
  433. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  434. data/spec/unit/action_builder_spec.rb +0 -158
  435. data/spec/unit/active_admin_spec.rb +0 -11
  436. data/spec/unit/application_spec.rb +0 -184
  437. data/spec/unit/asset_registration_spec.rb +0 -81
  438. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  439. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  440. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  441. data/spec/unit/auto_link_spec.rb +0 -93
  442. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  443. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  444. data/spec/unit/belongs_to_spec.rb +0 -76
  445. data/spec/unit/cancan_adapter_spec.rb +0 -43
  446. data/spec/unit/comments_spec.rb +0 -176
  447. data/spec/unit/component_spec.rb +0 -18
  448. data/spec/unit/config_shared_examples.rb +0 -59
  449. data/spec/unit/controller_filters_spec.rb +0 -41
  450. data/spec/unit/csv_builder_spec.rb +0 -313
  451. data/spec/unit/dependency_spec.rb +0 -135
  452. data/spec/unit/devise_spec.rb +0 -110
  453. data/spec/unit/dsl_spec.rb +0 -120
  454. data/spec/unit/filters/active_filter_spec.rb +0 -189
  455. data/spec/unit/filters/active_spec.rb +0 -24
  456. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  457. data/spec/unit/filters/resource_spec.rb +0 -128
  458. data/spec/unit/form_builder_spec.rb +0 -990
  459. data/spec/unit/generators/install_spec.rb +0 -31
  460. data/spec/unit/helpers/collection_spec.rb +0 -68
  461. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  462. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  463. data/spec/unit/helpers/settings_spec.rb +0 -30
  464. data/spec/unit/i18n_spec.rb +0 -29
  465. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  466. data/spec/unit/menu_collection_spec.rb +0 -62
  467. data/spec/unit/menu_item_spec.rb +0 -141
  468. data/spec/unit/menu_spec.rb +0 -71
  469. data/spec/unit/namespace/authorization_spec.rb +0 -27
  470. data/spec/unit/namespace/register_page_spec.rb +0 -99
  471. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  472. data/spec/unit/namespace_spec.rb +0 -124
  473. data/spec/unit/order_clause_spec.rb +0 -81
  474. data/spec/unit/page_controller_spec.rb +0 -5
  475. data/spec/unit/page_spec.rb +0 -128
  476. data/spec/unit/pretty_format_spec.rb +0 -82
  477. data/spec/unit/pundit_adapter_spec.rb +0 -98
  478. data/spec/unit/resource/action_items_spec.rb +0 -69
  479. data/spec/unit/resource/attributes_spec.rb +0 -49
  480. data/spec/unit/resource/includes_spec.rb +0 -21
  481. data/spec/unit/resource/menu_spec.rb +0 -18
  482. data/spec/unit/resource/naming_spec.rb +0 -122
  483. data/spec/unit/resource/ordering_spec.rb +0 -35
  484. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  485. data/spec/unit/resource/pagination_spec.rb +0 -38
  486. data/spec/unit/resource/routes_spec.rb +0 -125
  487. data/spec/unit/resource/scopes_spec.rb +0 -50
  488. data/spec/unit/resource/sidebars_spec.rb +0 -43
  489. data/spec/unit/resource_collection_spec.rb +0 -175
  490. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  491. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  492. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  493. data/spec/unit/resource_controller_spec.rb +0 -273
  494. data/spec/unit/resource_registration_spec.rb +0 -61
  495. data/spec/unit/resource_spec.rb +0 -320
  496. data/spec/unit/routing_spec.rb +0 -211
  497. data/spec/unit/scope_spec.rb +0 -209
  498. data/spec/unit/settings_spec.rb +0 -117
  499. data/spec/unit/view_factory_spec.rb +0 -19
  500. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  501. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  502. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  503. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  504. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  505. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  506. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  507. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  508. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  509. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  510. data/spec/unit/views/components/columns_spec.rb +0 -187
  511. data/spec/unit/views/components/index_list_spec.rb +0 -49
  512. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  513. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  514. data/spec/unit/views/components/panel_spec.rb +0 -58
  515. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  516. data/spec/unit/views/components/site_title_spec.rb +0 -76
  517. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  518. data/spec/unit/views/components/table_for_spec.rb +0 -436
  519. data/spec/unit/views/components/tabs_spec.rb +0 -67
  520. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  521. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  522. data/spec/unit/views/pages/form_spec.rb +0 -54
  523. data/spec/unit/views/pages/index_spec.rb +0 -60
  524. data/spec/unit/views/pages/layout_spec.rb +0 -59
  525. data/spec/unit/views/pages/show_spec.rb +0 -32
  526. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  527. data/tasks/docs.rake +0 -64
  528. data/tasks/lint.rake +0 -21
  529. data/tasks/local.rake +0 -25
  530. data/tasks/parallel_tests.rake +0 -66
  531. data/tasks/test.rake +0 -29
@@ -1,5 +1,5 @@
1
- require 'active_admin/helpers/collection'
2
- require 'active_admin/view_helpers/method_or_proc_helper'
1
+ require "active_admin/helpers/collection"
2
+ require "active_admin/view_helpers/method_or_proc_helper"
3
3
 
4
4
  module ActiveAdmin
5
5
  module Views
@@ -13,16 +13,22 @@ module ActiveAdmin
13
13
  include ::ActiveAdmin::Helpers::Collection
14
14
 
15
15
  def default_class_name
16
- "scopes table_tools_segmented_control"
16
+ "scopes"
17
17
  end
18
18
 
19
19
  def tag_name
20
- 'ul'
20
+ "div"
21
21
  end
22
22
 
23
23
  def build(scopes, options = {})
24
- scopes.each do |scope|
25
- build_scope(scope, options) if call_method_or_proc_on(self, scope.display_if_block)
24
+ scopes.group_by(&:group).each do |group, group_scopes|
25
+ ul class: "table_tools_segmented_control #{group_class(group)}" do
26
+ group_scopes.each do |scope|
27
+ build_scope(scope, options) if call_method_or_exec_proc(scope.display_if_block)
28
+ end
29
+
30
+ nil
31
+ end
26
32
  end
27
33
  end
28
34
 
@@ -32,9 +38,9 @@ module ActiveAdmin
32
38
  li class: classes_for_scope(scope) do
33
39
  params = request.query_parameters.except :page, :scope, :commit, :format
34
40
 
35
- a href: url_for(scope: scope.id, params: params), class: 'table_tools_button' do
41
+ a href: url_for(scope: scope.id, params: params), class: "table_tools_button" do
36
42
  text_node scope_name(scope)
37
- span class: 'count' do
43
+ span class: "count" do
38
44
  "(#{get_scope_count(scope)})"
39
45
  end if options[:scope_count] && scope.show_count
40
46
  end
@@ -60,6 +66,9 @@ module ActiveAdmin
60
66
  collection_size(scope_chain(scope, collection_before_scope))
61
67
  end
62
68
 
69
+ def group_class(group)
70
+ group.present? ? "scope-group-#{group}" : "scope-default-group"
71
+ end
63
72
  end
64
73
  end
65
74
  end
@@ -0,0 +1,13 @@
1
+ module ActiveAdmin
2
+ module Views
3
+
4
+ class Sidebar < Component
5
+ builder_method :sidebar
6
+
7
+ def build(sections, attributes = {})
8
+ super(attributes)
9
+ sections.map(&method(:sidebar_section))
10
+ end
11
+ end
12
+ end
13
+ end
@@ -1,11 +1,8 @@
1
- require 'active_admin/helpers/output_safety_helper'
2
-
3
1
  module ActiveAdmin
4
2
  module Views
5
3
 
6
4
  class SidebarSection < Panel
7
5
  builder_method :sidebar_section
8
- include OutputSafetyHelper
9
6
 
10
7
  # Takes a ActiveAdmin::SidebarSection instance
11
8
  def build(section)
@@ -4,7 +4,7 @@ module ActiveAdmin
4
4
  class SiteTitle < Component
5
5
 
6
6
  def tag_name
7
- 'h1'
7
+ "h1"
8
8
  end
9
9
 
10
10
  def build(namespace)
@@ -22,8 +22,8 @@ module ActiveAdmin
22
22
  @namespace.site_title_link.present?
23
23
  end
24
24
 
25
- def site_title_image?
26
- @namespace.site_title_image.present?
25
+ def site_title_image
26
+ @site_title_image ||= @namespace.site_title_image(helpers)
27
27
  end
28
28
 
29
29
  private
@@ -33,7 +33,7 @@ module ActiveAdmin
33
33
  end
34
34
 
35
35
  def site_title_content
36
- if site_title_image?
36
+ if site_title_image.present?
37
37
  title_image
38
38
  else
39
39
  title_text
@@ -41,12 +41,11 @@ module ActiveAdmin
41
41
  end
42
42
 
43
43
  def title_text
44
- helpers.render_or_call_method_or_proc_on(helpers, @namespace.site_title)
44
+ @title_text ||= @namespace.site_title(helpers)
45
45
  end
46
46
 
47
47
  def title_image
48
- path = helpers.render_or_call_method_or_proc_on(helpers, @namespace.site_title_image)
49
- helpers.image_tag(path, id: "site_title_image", alt: title_text)
48
+ helpers.image_tag(site_title_image, id: "site_title_image", alt: title_text)
50
49
  end
51
50
 
52
51
  end
@@ -5,11 +5,11 @@ module ActiveAdmin
5
5
  builder_method :status_tag
6
6
 
7
7
  def tag_name
8
- 'span'
8
+ "span"
9
9
  end
10
10
 
11
11
  def default_class_name
12
- 'status_tag'
12
+ "status_tag"
13
13
  end
14
14
 
15
15
  # @overload status_tag(status, options = {})
@@ -28,11 +28,7 @@ module ActiveAdmin
28
28
  # status_tag('active', class: 'important', id: 'status_123', label: 'on')
29
29
  # # => <span class='status_tag active important' id='status_123'>on</span>
30
30
  #
31
- def build(*args)
32
- options = args.extract_options!
33
- status = args[0]
34
- type = args[1]
35
-
31
+ def build(status, options = {})
36
32
  label = options.delete(:label)
37
33
  classes = options.delete(:class)
38
34
  status = convert_to_boolean_status(status)
@@ -46,19 +42,6 @@ module ActiveAdmin
46
42
  super(content, options)
47
43
 
48
44
  add_class(status_to_class(status)) if status
49
-
50
- if type
51
- Deprecation.warn <<-MSG.strip_heredoc
52
- The `type` parameter has been deprecated. Provide the "#{type}" type as
53
- a class instead. For example, `status_tag(status, :#{type}, class: "abc")`
54
- would change to `status_tag(status, class: "#{type} abc")`. Also note that
55
- the "#{type}" CSS rule will be removed too, so you'll have to provide
56
- the styles yourself. See https://github.com/activeadmin/activeadmin/blob/master/CHANGELOG.md#110-
57
- for more information.
58
- MSG
59
- add_class(type.to_s)
60
- end
61
-
62
45
  add_class(classes) if classes
63
46
  end
64
47
 
@@ -66,10 +49,12 @@ module ActiveAdmin
66
49
 
67
50
  def convert_to_boolean_status(status)
68
51
  case status
69
- when true, 'true'
70
- 'Yes'
71
- when false, 'false', nil
72
- 'No'
52
+ when true, "true"
53
+ "Yes"
54
+ when false, "false"
55
+ "No"
56
+ when nil
57
+ "Unset"
73
58
  else
74
59
  status
75
60
  end
@@ -77,10 +62,12 @@ module ActiveAdmin
77
62
 
78
63
  def status_to_class(status)
79
64
  case status
65
+ when "Unset"
66
+ "unset no"
80
67
  when String, Symbol
81
- status.to_s.titleize.gsub(/\s/, '').underscore
68
+ status.to_s.titleize.gsub(/\s/, "").underscore
82
69
  else
83
- ''
70
+ ""
84
71
  end
85
72
  end
86
73
  end
@@ -4,17 +4,18 @@ module ActiveAdmin
4
4
  builder_method :table_for
5
5
 
6
6
  def tag_name
7
- 'table'
7
+ "table"
8
8
  end
9
9
 
10
10
  def build(obj, *attrs)
11
- options = attrs.extract_options!
12
- @sortable = options.delete(:sortable)
13
- @collection = obj.respond_to?(:each) && !obj.is_a?(Hash) ? obj : [obj]
11
+ options = attrs.extract_options!
12
+ @sortable = options.delete(:sortable)
13
+ @collection = obj.respond_to?(:each) && !obj.is_a?(Hash) ? obj : [obj]
14
14
  @resource_class = options.delete(:i18n)
15
15
  @resource_class ||= @collection.klass if @collection.respond_to? :klass
16
- @columns = []
17
- @row_class = options.delete(:row_class)
16
+
17
+ @columns = []
18
+ @row_class = options.delete(:row_class)
18
19
 
19
20
  build_table
20
21
  super(options)
@@ -22,13 +23,13 @@ module ActiveAdmin
22
23
  end
23
24
 
24
25
  def columns(*attrs)
25
- attrs.each {|attr| column(attr) }
26
+ attrs.each { |attr| column(attr) }
26
27
  end
27
28
 
28
29
  def column(*args, &block)
29
30
  options = default_options.merge(args.extract_options!)
30
31
  title = args[0]
31
- data = args[1] || args[0]
32
+ data = args[1] || args[0]
32
33
 
33
34
  col = Column.new(title, data, @resource_class, options, &block)
34
35
  @columns << col
@@ -64,12 +65,12 @@ module ActiveAdmin
64
65
  end
65
66
 
66
67
  def build_table_header(col)
67
- classes = Arbre::HTML::ClassList.new
68
+ classes = Arbre::HTML::ClassList.new
68
69
  sort_key = sortable? && col.sortable? && col.sort_key
69
- params = request.query_parameters.except :page, :order, :commit, :format
70
+ params = request.query_parameters.except :page, :order, :commit, :format
70
71
 
71
- classes << 'sortable' if sort_key
72
- classes << "sorted-#{current_sort[1]}" if sort_key && current_sort[0] == sort_key
72
+ classes << "sortable" if sort_key
73
+ classes << "sorted-#{current_sort[1]}" if sort_key && current_sort[0] == sort_key
73
74
  classes << col.html_class
74
75
 
75
76
  if sort_key
@@ -85,13 +86,13 @@ module ActiveAdmin
85
86
  @tbody = tbody do
86
87
  # Build enough rows for our collection
87
88
  @collection.each do |elem|
88
- classes = [helpers.cycle('odd', 'even')]
89
+ classes = [helpers.cycle("odd", "even")]
89
90
 
90
91
  if @row_class
91
92
  classes << @row_class.call(elem)
92
93
  end
93
94
 
94
- tr(class: classes.flatten.join(' '), id: dom_id_for(elem))
95
+ tr(class: classes.flatten.join(" "), id: dom_id_for(elem))
95
96
  end
96
97
  end
97
98
  end
@@ -125,8 +126,8 @@ module ActiveAdmin
125
126
  # 'desc' it will return 'asc'
126
127
  def order_for_sort_key(sort_key)
127
128
  current_key, current_order = current_sort
128
- return 'desc' unless current_key == sort_key
129
- current_order == 'desc' ? 'asc' : 'desc'
129
+ return "desc" unless current_key == sort_key
130
+ current_order == "desc" ? "asc" : "desc"
130
131
  end
131
132
 
132
133
  def default_options
@@ -137,7 +138,7 @@ module ActiveAdmin
137
138
 
138
139
  class Column
139
140
 
140
- attr_accessor :title, :data , :html_class
141
+ attr_accessor :title, :data, :html_class
141
142
 
142
143
  def initialize(*args, &block)
143
144
  @options = args.extract_options!
@@ -147,9 +148,9 @@ module ActiveAdmin
147
148
  if @options.has_key?(:class)
148
149
  html_classes << @options.delete(:class)
149
150
  elsif @title.present?
150
- html_classes << "col-#{ActiveAdmin::Dependency.rails.parameterize(@title.to_s)}"
151
+ html_classes << "col-#{@title.to_s.parameterize(separator: "_")}"
151
152
  end
152
- @html_class = html_classes.join(' ')
153
+ @html_class = html_classes.join(" ")
153
154
  @data = args[1] || args[0]
154
155
  @data = block if block
155
156
  @resource_class = args[2]
@@ -176,18 +177,9 @@ module ActiveAdmin
176
177
  # to the sortable option:
177
178
  # column :username, sortable: 'other_column_to_sort_on'
178
179
  #
179
- # If you pass a block to be rendered for this column, the column
180
- # will not be sortable unless you pass a string to sortable to
181
- # sort the column on:
182
- #
183
- # column('Username', sortable: 'login'){ @user.pretty_name }
184
- # # => Sort key will be 'login'
185
- #
186
180
  def sort_key
187
181
  # If boolean or nil, use the default sort key.
188
- if @options[:sortable] == true || @options[:sortable] == false
189
- @data.to_s
190
- elsif @options[:sortable].nil?
182
+ if @options[:sortable].nil? || @options[:sortable] == true || @options[:sortable] == false
191
183
  sort_column_name
192
184
  else
193
185
  @options[:sortable].to_s
@@ -10,19 +10,31 @@ module ActiveAdmin
10
10
  end
11
11
 
12
12
  def build(&block)
13
- @menu = ul(class: 'nav nav-tabs', role: "tablist")
14
- @tabs_content = div(class: 'tab-content')
13
+ @menu = ul(class: "nav nav-tabs", role: "tablist")
14
+ @tabs_content = div(class: "tab-content")
15
15
  end
16
16
 
17
17
  def build_menu_item(title, options, &block)
18
- fragment = options.fetch(:id, title.parameterize)
19
- li { link_to title, "##{fragment}" }
18
+ fragment = options.fetch(:id, fragmentize(title))
19
+
20
+ html_options = options.fetch(:html_options, {})
21
+ li html_options do
22
+ link_to title, "##{fragment}"
23
+ end
20
24
  end
21
25
 
22
26
  def build_content_item(title, options, &block)
23
- options = options.reverse_merge(id: title.parameterize)
27
+ options = options.reverse_merge(id: fragmentize(title))
24
28
  div(options, &block)
25
29
  end
30
+
31
+ private
32
+
33
+ def fragmentize(string)
34
+ result = string.parameterize
35
+ result = CGI.escape(string) if result.blank?
36
+ result
37
+ end
26
38
  end
27
39
  end
28
40
  end
@@ -6,26 +6,23 @@ module ActiveAdmin
6
6
  super id: "footer"
7
7
  @namespace = namespace
8
8
 
9
- if footer?
9
+ if footer_text.present?
10
10
  para footer_text
11
11
  else
12
12
  para powered_by_message
13
13
  end
14
14
  end
15
15
 
16
- def footer?
17
- @namespace.footer.present?
18
- end
19
-
20
16
  private
21
17
 
22
18
  def footer_text
23
- helpers.render_or_call_method_or_proc_on(self, @namespace.footer)
19
+ @footer_text ||= @namespace.footer(self)
24
20
  end
25
21
 
26
22
  def powered_by_message
27
- I18n.t('active_admin.powered_by',
28
- active_admin: link_to("Active Admin", "http://www.activeadmin.info"),
23
+ I18n.t(
24
+ "active_admin.powered_by",
25
+ active_admin: link_to("Active Admin", "https://activeadmin.info"),
29
26
  version: ActiveAdmin::VERSION).html_safe
30
27
  end
31
28
 
@@ -9,21 +9,9 @@ module ActiveAdmin
9
9
  @menu = menu
10
10
  @utility_menu = @namespace.fetch_menu(:utility_navigation)
11
11
 
12
- build_site_title
13
- build_global_navigation
14
- build_utility_navigation
15
- end
16
-
17
- def build_site_title
18
- insert_tag view_factory.site_title, @namespace
19
- end
20
-
21
- def build_global_navigation
22
- insert_tag view_factory.global_navigation, @menu, class: 'header-item tabs'
23
- end
24
-
25
- def build_utility_navigation
26
- insert_tag view_factory.utility_navigation, @utility_menu, id: "utility_nav", class: 'header-item tabs'
12
+ site_title @namespace
13
+ global_navigation @menu, class: "header-item tabs"
14
+ utility_navigation @utility_menu, id: "utility_nav", class: "header-item tabs"
27
15
  end
28
16
 
29
17
  end
@@ -27,7 +27,7 @@ module ActiveAdmin
27
27
  # ```
28
28
  #
29
29
  # Second, you can pass a block to the tile option which will then be
30
- # used as the contents fo the title. The resource being rendered
30
+ # used as the contents of the title. The resource being rendered
31
31
  # is passed in to the block. For Example:
32
32
  #
33
33
  # ```ruby
@@ -135,7 +135,7 @@ module ActiveAdmin
135
135
 
136
136
  def build_body(post)
137
137
  if @body
138
- div class: 'content' do
138
+ div class: "content" do
139
139
  render_method_on_post_or_call_proc post, @body
140
140
  end
141
141
  end
@@ -1,30 +1,30 @@
1
1
  module ActiveAdmin
2
2
  module Views
3
3
 
4
- # # Index as a Grid
5
- #
6
- # Sometimes you want to display the index screen for a set of resources as a grid
7
- # (possibly a grid of thumbnail images). To do so, use the :grid option for the
8
- # index block.
9
- #
10
- # ```ruby
11
- # index as: :grid do |product|
12
- # link_to image_tag(product.image_path), admin_product_path(product)
13
- # end
14
- # ```
15
- #
16
- # The block is rendered within a cell in the grid once for each resource in the
17
- # collection. The resource is passed into the block for you to use in the view.
18
- #
19
- # You can customize the number of columns that are rendered using the columns
20
- # option:
21
- #
22
- # ```ruby
23
- # index as: :grid, columns: 5 do |product|
24
- # link_to image_tag(product.image_path), admin_product_path(product)
25
- # end
26
- # ```
27
- #
4
+ # # Index as a Grid
5
+ #
6
+ # Sometimes you want to display the index screen for a set of resources as a grid
7
+ # (possibly a grid of thumbnail images). To do so, use the :grid option for the
8
+ # index block.
9
+ #
10
+ # ```ruby
11
+ # index as: :grid do |product|
12
+ # link_to image_tag(product.image_path), admin_product_path(product)
13
+ # end
14
+ # ```
15
+ #
16
+ # The block is rendered within a cell in the grid once for each resource in the
17
+ # collection. The resource is passed into the block for you to use in the view.
18
+ #
19
+ # You can customize the number of columns that are rendered using the columns
20
+ # option:
21
+ #
22
+ # ```ruby
23
+ # index as: :grid, columns: 5 do |product|
24
+ # link_to image_tag(product.image_path), admin_product_path(product)
25
+ # end
26
+ # ```
27
+ #
28
28
  class IndexAsGrid < ActiveAdmin::Component
29
29
 
30
30
  def build(page_presenter, collection)
@@ -42,7 +42,7 @@ module ActiveAdmin
42
42
  "grid"
43
43
  end
44
44
 
45
- protected
45
+ protected
46
46
 
47
47
  def build_table
48
48
  resource_selection_toggle_panel if active_admin_config.batch_actions.any?
@@ -68,7 +68,7 @@ module ActiveAdmin
68
68
  end
69
69
 
70
70
  def build_empty_cell
71
- td '&nbsp;'.html_safe
71
+ td "&nbsp;".html_safe
72
72
  end
73
73
 
74
74
  def default_number_of_columns
@@ -110,7 +110,8 @@ module ActiveAdmin
110
110
  # end
111
111
  # ```
112
112
  #
113
- # In addition, you can insert the position of the row in the greater collection by using the index_column special command:
113
+ # In addition, you can insert the position of the row in the greater
114
+ # collection by using the index_column special command:
114
115
  #
115
116
  # ```ruby
116
117
  # index do
@@ -120,7 +121,8 @@ module ActiveAdmin
120
121
  # end
121
122
  # ```
122
123
  #
123
- # index_column take an optional offset parameter to allow a developer to set the starting number for the index (default is 1).
124
+ # index_column take an optional offset parameter to allow a developer to set
125
+ # the starting number for the index (default is 1).
124
126
  #
125
127
  # ## Sorting
126
128
  #
@@ -128,9 +130,7 @@ module ActiveAdmin
128
130
  # sortable by default. If you are creating a custom column, you may need to give
129
131
  # Active Admin a hint for how to sort the table.
130
132
  #
131
- # If a column is defined using a block, you must pass the key to turn on sorting. The key
132
- # is the attribute which gets used to sort objects using Active Record.
133
- #
133
+ # You can pass the key specifying the attribute which gets used to sort objects using Active Record.
134
134
  # By default, this is the column on the resource's table that the attribute corresponds to.
135
135
  # Otherwise, any attribute that the resource collection responds to can be used.
136
136
  #
@@ -192,6 +192,13 @@ module ActiveAdmin
192
192
  # end
193
193
  # ```
194
194
  #
195
+ # You can also define associated objects to include outside of the
196
+ # `scoped_collection` method:
197
+ #
198
+ # ```ruby
199
+ # includes :publisher
200
+ # ```
201
+ #
195
202
  # Then it's simple to sort by any Publisher attribute from within the index table:
196
203
  #
197
204
  # ```ruby
@@ -271,13 +278,13 @@ module ActiveAdmin
271
278
  # Display a column for checkbox
272
279
  def selectable_column
273
280
  return unless active_admin_config.batch_actions.any?
274
- column resource_selection_toggle_cell, class: 'col-selectable', sortable: false do |resource|
281
+ column resource_selection_toggle_cell, class: "col-selectable", sortable: false do |resource|
275
282
  resource_selection_cell resource
276
283
  end
277
284
  end
278
285
 
279
286
  def index_column(start_value = 1)
280
- column '#', class: 'col-index', sortable: false do |resource|
287
+ column "#", class: "col-index", sortable: false do |resource|
281
288
  @collection.offset_value + @collection.index(resource) + start_value
282
289
  end
283
290
  end
@@ -286,9 +293,9 @@ module ActiveAdmin
286
293
  def id_column
287
294
  raise "#{resource_class.name} has no primary_key!" unless resource_class.primary_key
288
295
  column(resource_class.human_attribute_name(resource_class.primary_key), sortable: resource_class.primary_key) do |resource|
289
- if controller.action_methods.include?('show')
296
+ if controller.action_methods.include?("show")
290
297
  link_to resource.id, resource_path(resource), class: "resource_id_link"
291
- elsif controller.action_methods.include?('edit')
298
+ elsif controller.action_methods.include?("edit")
292
299
  link_to resource.id, edit_resource_path(resource), class: "resource_id_link"
293
300
  else
294
301
  resource.id
@@ -297,7 +304,7 @@ module ActiveAdmin
297
304
  end
298
305
 
299
306
  def default_actions
300
- raise '`default_actions` is no longer provided in ActiveAdmin 1.x. Use `actions` instead.'
307
+ raise "`default_actions` is no longer provided in ActiveAdmin 1.x. Use `actions` instead."
301
308
  end
302
309
 
303
310
  # Add links to perform actions.
@@ -337,12 +344,12 @@ module ActiveAdmin
337
344
  #
338
345
  # ```
339
346
  def actions(options = {}, &block)
340
- name = options.delete(:name) { '' }
341
- defaults = options.delete(:defaults) { true }
342
- dropdown = options.delete(:dropdown) { false }
343
- dropdown_name = options.delete(:dropdown_name) { I18n.t 'active_admin.dropdown_actions.button_label', default: 'Actions' }
347
+ name = options.delete(:name) { "" }
348
+ defaults = options.delete(:defaults) { true }
349
+ dropdown = options.delete(:dropdown) { false }
350
+ dropdown_name = options.delete(:dropdown_name) { I18n.t "active_admin.dropdown_actions.button_label", default: "Actions" }
344
351
 
345
- options[:class] ||= 'col-actions'
352
+ options[:class] ||= "col-actions"
346
353
 
347
354
  column name, options do |resource|
348
355
  if dropdown
@@ -362,26 +369,27 @@ module ActiveAdmin
362
369
  end
363
370
  end
364
371
 
365
- private
372
+ private
366
373
 
367
374
  def defaults(resource, options = {})
368
- if controller.action_methods.include?('show') && authorized?(ActiveAdmin::Auth::READ, resource)
369
- item I18n.t('active_admin.view'), resource_path(resource), class: "view_link #{options[:css_class]}", title: I18n.t('active_admin.view')
375
+ localizer = ActiveAdmin::Localizers.resource(active_admin_config)
376
+ if controller.action_methods.include?("show") && authorized?(ActiveAdmin::Auth::READ, resource)
377
+ item localizer.t(:view), resource_path(resource), class: "view_link #{options[:css_class]}", title: localizer.t(:view)
370
378
  end
371
- if controller.action_methods.include?('edit') && authorized?(ActiveAdmin::Auth::UPDATE, resource)
372
- item I18n.t('active_admin.edit'), edit_resource_path(resource), class: "edit_link #{options[:css_class]}", title: I18n.t('active_admin.edit')
379
+ if controller.action_methods.include?("edit") && authorized?(ActiveAdmin::Auth::UPDATE, resource)
380
+ item localizer.t(:edit), edit_resource_path(resource), class: "edit_link #{options[:css_class]}", title: localizer.t(:edit)
373
381
  end
374
- if controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, resource)
375
- item I18n.t('active_admin.delete'), resource_path(resource), class: "delete_link #{options[:css_class]}", title: I18n.t('active_admin.delete'),
376
- method: :delete, data: {confirm: I18n.t('active_admin.delete_confirmation')}
382
+ if controller.action_methods.include?("destroy") && authorized?(ActiveAdmin::Auth::DESTROY, resource)
383
+ item localizer.t(:delete), resource_path(resource), class: "delete_link #{options[:css_class]}", title: localizer.t(:delete),
384
+ method: :delete, data: { confirm: localizer.t(:delete_confirmation) }
377
385
  end
378
386
  end
379
387
 
380
388
  class TableActions < ActiveAdmin::Component
381
389
  builder_method :table_actions
382
390
 
383
- def item *args
384
- text_node link_to *args
391
+ def item *args, **kwargs
392
+ text_node link_to(*args, **kwargs)
385
393
  end
386
394
  end
387
395
  end # IndexTableFor