activeadmin 1.3.0 → 2.13.1

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 (582) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +764 -135
  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 +524 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +3 -25
  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 +25 -123
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  14. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  15. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  16. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  17. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  18. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  19. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  20. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  21. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  23. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  25. data/app/javascript/active_admin/base.js +28 -0
  26. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  27. data/app/javascript/active_admin/ext/jquery.js +9 -0
  28. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  29. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  30. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  31. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  32. data/app/javascript/active_admin/initializers/filters.js +10 -0
  33. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  34. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  35. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  36. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  37. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  38. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  39. data/app/javascript/active_admin/lib/filters.js +39 -0
  40. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  41. data/app/javascript/active_admin/lib/per-page.js +38 -0
  42. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  43. data/app/javascript/active_admin/lib/utils.js +40 -0
  44. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  45. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  46. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  47. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  48. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  49. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  50. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  51. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  52. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  53. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  54. data/app/views/active_admin/page/index.html.arb +1 -0
  55. data/app/views/active_admin/resource/edit.html.arb +1 -0
  56. data/app/views/active_admin/resource/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/new.html.arb +1 -0
  58. data/app/views/active_admin/resource/show.html.arb +1 -0
  59. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  60. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  61. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  63. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  64. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  65. data/app/views/layouts/active_admin.html.arb +1 -0
  66. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  67. data/config/locales/ar.yml +9 -8
  68. data/config/locales/az.yml +138 -0
  69. data/config/locales/bg.yml +1 -1
  70. data/config/locales/bs.yml +1 -0
  71. data/config/locales/ca.yml +1 -1
  72. data/config/locales/cs.yml +1 -0
  73. data/config/locales/da.yml +1 -0
  74. data/config/locales/de-CH.yml +1 -0
  75. data/config/locales/de.yml +29 -0
  76. data/config/locales/el.yml +1 -0
  77. data/config/locales/en-CA.yml +4 -3
  78. data/config/locales/en-GB.yml +4 -3
  79. data/config/locales/en.yml +23 -4
  80. data/config/locales/eo.yml +1 -0
  81. data/config/locales/es-MX.yml +3 -1
  82. data/config/locales/es.yml +26 -6
  83. data/config/locales/fa.yml +1 -0
  84. data/config/locales/fi.yml +2 -1
  85. data/config/locales/fr.yml +6 -5
  86. data/config/locales/he.yml +1 -1
  87. data/config/locales/hr.yml +1 -0
  88. data/config/locales/hu.yml +5 -0
  89. data/config/locales/id.yml +1 -0
  90. data/config/locales/it.yml +23 -0
  91. data/config/locales/ja.yml +4 -3
  92. data/config/locales/ko.yml +2 -1
  93. data/config/locales/lt.yml +3 -2
  94. data/config/locales/lv.yml +3 -2
  95. data/config/locales/mk.yml +134 -0
  96. data/config/locales/nb.yml +16 -5
  97. data/config/locales/nl.yml +13 -1
  98. data/config/locales/pl.yml +72 -3
  99. data/config/locales/pt-BR.yml +1 -0
  100. data/config/locales/pt-PT.yml +1 -0
  101. data/config/locales/ro.yml +4 -2
  102. data/config/locales/ru.yml +3 -0
  103. data/config/locales/sk.yml +60 -0
  104. data/config/locales/sv-SE.yml +1 -0
  105. data/config/locales/tr.yml +10 -0
  106. data/config/locales/uk.yml +3 -0
  107. data/config/locales/vi.yml +7 -5
  108. data/config/locales/zh-CN.yml +34 -5
  109. data/config/locales/zh-TW.yml +1 -0
  110. data/docs/.gitignore +1 -0
  111. data/docs/0-installation.md +29 -5
  112. data/docs/1-general-configuration.md +36 -1
  113. data/docs/10-custom-pages.md +14 -0
  114. data/docs/11-decorators.md +16 -5
  115. data/docs/12-arbre-components.md +41 -1
  116. data/docs/13-authorization-adapter.md +41 -22
  117. data/docs/2-resource-customization.md +19 -5
  118. data/docs/3-index-pages/custom-index.md +1 -1
  119. data/docs/3-index-pages/index-as-blog.md +1 -1
  120. data/docs/3-index-pages/index-as-table.md +12 -5
  121. data/docs/3-index-pages.md +18 -1
  122. data/docs/5-forms.md +25 -5
  123. data/docs/6-show-pages.md +12 -0
  124. data/docs/8-custom-actions.md +12 -1
  125. data/docs/9-batch-actions.md +2 -2
  126. data/docs/CNAME +1 -1
  127. data/docs/Gemfile +4 -2
  128. data/docs/Gemfile.lock +283 -0
  129. data/docs/_config.yml +3 -1
  130. data/docs/_includes/toc.html +1 -1
  131. data/docs/_includes/top-menu.html +9 -1
  132. data/docs/documentation.md +2 -2
  133. data/docs/images/tidelift.svg +14 -0
  134. data/docs/index.html +110 -9
  135. data/docs/stylesheets/main.css +55 -2
  136. data/lib/active_admin/abstract_view_factory.rb +14 -51
  137. data/lib/active_admin/application.rb +65 -172
  138. data/lib/active_admin/application_settings.rb +43 -0
  139. data/lib/active_admin/asset_registration.rb +1 -8
  140. data/lib/active_admin/authorization_adapter.rb +4 -3
  141. data/lib/active_admin/base_controller/authorization.rb +18 -18
  142. data/lib/active_admin/base_controller/menu.rb +1 -0
  143. data/lib/active_admin/base_controller.rb +12 -11
  144. data/lib/active_admin/batch_actions/controller.rb +6 -5
  145. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  146. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  147. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  148. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  149. data/lib/active_admin/batch_actions.rb +1 -0
  150. data/lib/active_admin/callbacks.rb +2 -1
  151. data/lib/active_admin/cancan_adapter.rb +2 -1
  152. data/lib/active_admin/collection_decorator.rb +32 -0
  153. data/lib/active_admin/component.rb +1 -0
  154. data/lib/active_admin/controller_action.rb +3 -1
  155. data/lib/active_admin/csv_builder.rb +15 -23
  156. data/lib/active_admin/dependency.rb +14 -77
  157. data/lib/active_admin/deprecation.rb +1 -25
  158. data/lib/active_admin/devise.rb +16 -5
  159. data/lib/active_admin/dsl.rb +3 -9
  160. data/lib/active_admin/dynamic_setting.rb +39 -0
  161. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  162. data/lib/active_admin/engine.rb +16 -7
  163. data/lib/active_admin/error.rb +5 -4
  164. data/lib/active_admin/filters/active.rb +2 -1
  165. data/lib/active_admin/filters/active_filter.rb +12 -11
  166. data/lib/active_admin/filters/active_sidebar.rb +8 -30
  167. data/lib/active_admin/filters/dsl.rb +1 -0
  168. data/lib/active_admin/filters/forms.rb +13 -9
  169. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  170. data/lib/active_admin/filters/resource_extension.rb +30 -5
  171. data/lib/active_admin/filters.rb +8 -7
  172. data/lib/active_admin/form_builder.rb +110 -70
  173. data/lib/active_admin/generators/boilerplate.rb +13 -4
  174. data/lib/active_admin/helpers/collection.rb +2 -0
  175. data/lib/active_admin/helpers/i18n.rb +1 -0
  176. data/lib/active_admin/helpers/optional_display.rb +3 -2
  177. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  178. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  179. data/lib/active_admin/inputs/datepicker_input.rb +10 -2
  180. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  181. data/lib/active_admin/inputs/filters/base.rb +2 -1
  182. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  183. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  184. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  185. data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
  186. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  187. data/lib/active_admin/inputs/filters/select_input.rb +3 -2
  188. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  189. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  190. data/lib/active_admin/inputs.rb +1 -0
  191. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  192. data/lib/active_admin/localizers.rb +2 -1
  193. data/lib/active_admin/menu.rb +9 -11
  194. data/lib/active_admin/menu_collection.rb +1 -0
  195. data/lib/active_admin/menu_item.rb +11 -38
  196. data/lib/active_admin/namespace.rb +33 -20
  197. data/lib/active_admin/namespace_settings.rb +127 -0
  198. data/lib/active_admin/order_clause.rb +3 -2
  199. data/lib/active_admin/orm/active_record/comments/comment.rb +5 -4
  200. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  201. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  202. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  203. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +30 -24
  204. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  205. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  206. data/lib/active_admin/orm/active_record.rb +2 -1
  207. data/lib/active_admin/orm/mongoid.rb +1 -0
  208. data/lib/active_admin/page.rb +2 -1
  209. data/lib/active_admin/page_controller.rb +1 -0
  210. data/lib/active_admin/page_dsl.rb +2 -1
  211. data/lib/active_admin/page_presenter.rb +3 -1
  212. data/lib/active_admin/pundit_adapter.rb +73 -16
  213. data/lib/active_admin/resource/action_items.rb +12 -6
  214. data/lib/active_admin/resource/attributes.rb +9 -5
  215. data/lib/active_admin/resource/belongs_to.rb +9 -3
  216. data/lib/active_admin/resource/controllers.rb +2 -1
  217. data/lib/active_admin/resource/includes.rb +1 -0
  218. data/lib/active_admin/resource/menu.rb +6 -5
  219. data/lib/active_admin/resource/model.rb +16 -0
  220. data/lib/active_admin/resource/naming.rb +6 -5
  221. data/lib/active_admin/resource/ordering.rb +1 -0
  222. data/lib/active_admin/resource/page_presenters.rb +1 -0
  223. data/lib/active_admin/resource/pagination.rb +1 -0
  224. data/lib/active_admin/resource/routes.rb +26 -14
  225. data/lib/active_admin/resource/scope_to.rb +8 -7
  226. data/lib/active_admin/resource/scopes.rb +4 -3
  227. data/lib/active_admin/resource/sidebars.rb +3 -2
  228. data/lib/active_admin/resource.rb +37 -22
  229. data/lib/active_admin/resource_collection.rb +3 -2
  230. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  231. data/lib/active_admin/resource_controller/data_access.rb +31 -5
  232. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  233. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  234. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  235. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  236. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  237. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  238. data/lib/active_admin/resource_controller.rb +14 -10
  239. data/lib/active_admin/resource_dsl.rb +16 -28
  240. data/lib/active_admin/router.rb +91 -84
  241. data/lib/active_admin/scope.rb +20 -11
  242. data/lib/active_admin/settings_node.rb +20 -0
  243. data/lib/active_admin/sidebar_section.rb +4 -1
  244. data/lib/active_admin/version.rb +2 -1
  245. data/lib/active_admin/view_factory.rb +18 -17
  246. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  247. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  248. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  249. data/lib/active_admin/view_helpers/display_helper.rb +25 -8
  250. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  251. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  252. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  253. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  254. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  255. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  256. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  257. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  258. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  259. data/lib/active_admin/view_helpers.rb +2 -1
  260. data/lib/active_admin/views/action_items.rb +1 -0
  261. data/lib/active_admin/views/components/active_admin_form.rb +14 -8
  262. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  263. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  264. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  265. data/lib/active_admin/views/components/columns.rb +1 -0
  266. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  267. data/lib/active_admin/views/components/index_list.rb +4 -3
  268. data/lib/active_admin/views/components/menu.rb +33 -0
  269. data/lib/active_admin/views/components/menu_item.rb +59 -0
  270. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  271. data/lib/active_admin/views/components/panel.rb +2 -1
  272. data/lib/active_admin/views/components/scopes.rb +18 -8
  273. data/lib/active_admin/views/components/sidebar.rb +14 -0
  274. data/lib/active_admin/views/components/sidebar_section.rb +1 -3
  275. data/lib/active_admin/views/components/site_title.rb +7 -7
  276. data/lib/active_admin/views/components/status_tag.rb +14 -26
  277. data/lib/active_admin/views/components/table_for.rb +22 -29
  278. data/lib/active_admin/views/components/tabs.rb +18 -5
  279. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  280. data/lib/active_admin/views/footer.rb +6 -8
  281. data/lib/active_admin/views/header.rb +4 -15
  282. data/lib/active_admin/views/index_as_block.rb +1 -0
  283. data/lib/active_admin/views/index_as_blog.rb +3 -2
  284. data/lib/active_admin/views/index_as_grid.rb +27 -26
  285. data/lib/active_admin/views/index_as_table.rb +34 -25
  286. data/lib/active_admin/views/pages/base.rb +44 -60
  287. data/lib/active_admin/views/pages/form.rb +1 -0
  288. data/lib/active_admin/views/pages/index.rb +16 -13
  289. data/lib/active_admin/views/pages/layout.rb +1 -0
  290. data/lib/active_admin/views/pages/page.rb +1 -0
  291. data/lib/active_admin/views/pages/show.rb +1 -0
  292. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  293. data/lib/active_admin/views/title_bar.rb +2 -1
  294. data/lib/active_admin/views.rb +2 -1
  295. data/lib/active_admin.rb +68 -63
  296. data/lib/activeadmin.rb +2 -1
  297. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  298. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  299. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  300. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  301. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  302. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  303. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  304. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  305. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  306. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  307. data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
  308. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  309. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  310. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  311. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  312. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  313. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  314. data/lib/ransack_ext.rb +10 -9
  315. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  316. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  317. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  318. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  319. metadata +126 -558
  320. data/.github/ISSUE_TEMPLATE.md +0 -20
  321. data/.gitignore +0 -49
  322. data/.mdlrc +0 -1
  323. data/.rubocop.yml +0 -76
  324. data/.simplecov +0 -13
  325. data/.travis.yml +0 -51
  326. data/.yardopts +0 -7
  327. data/Gemfile +0 -58
  328. data/Rakefile +0 -54
  329. data/activeadmin.gemspec +0 -32
  330. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  331. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  332. data/app/assets/images/active_admin/orderable.png +0 -0
  333. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  334. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  335. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  336. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  337. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  338. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  339. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  340. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  341. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  342. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  343. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  344. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  345. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  346. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  347. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  348. data/codecov.yml +0 -25
  349. data/config/i18n-tasks.yml +0 -26
  350. data/config/mdl_style.rb +0 -9
  351. data/cucumber.yml +0 -3
  352. data/features/action_item.feature +0 -73
  353. data/features/authorization.feature +0 -64
  354. data/features/authorization_cancan.feature +0 -52
  355. data/features/authorization_pundit.feature +0 -37
  356. data/features/belongs_to.feature +0 -124
  357. data/features/breadcrumb.feature +0 -75
  358. data/features/comments/commenting.feature +0 -178
  359. data/features/comments/viewing_index.feature +0 -19
  360. data/features/create_another.feature +0 -55
  361. data/features/dashboard.feature +0 -16
  362. data/features/decorators.feature +0 -43
  363. data/features/development_reloading.feature +0 -28
  364. data/features/edit_page.feature +0 -116
  365. data/features/favicon.feature +0 -20
  366. data/features/first_boot.feature +0 -16
  367. data/features/footer.feature +0 -28
  368. data/features/global_navigation.feature +0 -29
  369. data/features/i18n.feature +0 -55
  370. data/features/index/batch_actions.feature +0 -218
  371. data/features/index/filters.feature +0 -250
  372. data/features/index/format_as_csv.feature +0 -220
  373. data/features/index/formats.feature +0 -88
  374. data/features/index/index_as_block.feature +0 -15
  375. data/features/index/index_as_blog.feature +0 -69
  376. data/features/index/index_as_grid.feature +0 -45
  377. data/features/index/index_as_table.feature +0 -291
  378. data/features/index/index_blank_slate.feature +0 -83
  379. data/features/index/index_parameters.feature +0 -75
  380. data/features/index/index_scope_to.feature +0 -56
  381. data/features/index/index_scopes.feature +0 -285
  382. data/features/index/page_title.feature +0 -41
  383. data/features/index/pagination.feature +0 -63
  384. data/features/index/switch_index_view.feature +0 -73
  385. data/features/menu.feature +0 -72
  386. data/features/meta_tags.feature +0 -21
  387. data/features/new_page.feature +0 -136
  388. data/features/registering_assets.feature +0 -38
  389. data/features/registering_pages.feature +0 -237
  390. data/features/registering_resources.feature +0 -33
  391. data/features/renamed_resource.feature +0 -30
  392. data/features/root_to.feature +0 -17
  393. data/features/show/attributes_table_title.feature +0 -54
  394. data/features/show/columns.feature +0 -40
  395. data/features/show/default_content.feature +0 -44
  396. data/features/show/page_title.feature +0 -58
  397. data/features/show/tabs.feature +0 -33
  398. data/features/sidebar_sections.feature +0 -210
  399. data/features/site_title.feature +0 -47
  400. data/features/specifying_actions.feature +0 -118
  401. data/features/step_definitions/action_item_steps.rb +0 -7
  402. data/features/step_definitions/action_link_steps.rb +0 -19
  403. data/features/step_definitions/additional_web_steps.rb +0 -81
  404. data/features/step_definitions/asset_steps.rb +0 -15
  405. data/features/step_definitions/attribute_steps.rb +0 -18
  406. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  407. data/features/step_definitions/batch_action_steps.rb +0 -81
  408. data/features/step_definitions/blog_steps.rb +0 -3
  409. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  410. data/features/step_definitions/column_steps.rb +0 -8
  411. data/features/step_definitions/comment_steps.rb +0 -32
  412. data/features/step_definitions/configuration_steps.rb +0 -100
  413. data/features/step_definitions/dashboard_steps.rb +0 -15
  414. data/features/step_definitions/factory_steps.rb +0 -35
  415. data/features/step_definitions/filter_steps.rb +0 -47
  416. data/features/step_definitions/flash_steps.rb +0 -11
  417. data/features/step_definitions/footer_steps.rb +0 -11
  418. data/features/step_definitions/format_steps.rb +0 -56
  419. data/features/step_definitions/i18n_steps.rb +0 -11
  420. data/features/step_definitions/index_scope_steps.rb +0 -29
  421. data/features/step_definitions/index_views_steps.rb +0 -3
  422. data/features/step_definitions/layout_steps.rb +0 -3
  423. data/features/step_definitions/member_link_steps.rb +0 -7
  424. data/features/step_definitions/menu_steps.rb +0 -11
  425. data/features/step_definitions/meta_tag_steps.rb +0 -3
  426. data/features/step_definitions/pagination_steps.rb +0 -15
  427. data/features/step_definitions/sidebar_steps.rb +0 -11
  428. data/features/step_definitions/site_title_steps.rb +0 -17
  429. data/features/step_definitions/tab_steps.rb +0 -8
  430. data/features/step_definitions/table_steps.rb +0 -116
  431. data/features/step_definitions/user_steps.rb +0 -52
  432. data/features/step_definitions/web_steps.rb +0 -86
  433. data/features/sti_resource.feature +0 -65
  434. data/features/strong_parameters.feature +0 -69
  435. data/features/support/env.rb +0 -122
  436. data/features/support/paths.rb +0 -73
  437. data/features/support/regular_env.rb +0 -7
  438. data/features/support/reload_env.rb +0 -7
  439. data/features/support/selectors.rb +0 -45
  440. data/features/users/logging_in.feature +0 -36
  441. data/features/users/logging_out.feature +0 -13
  442. data/features/users/resetting_password.feature +0 -34
  443. data/gemfiles/rails_42.gemfile +0 -10
  444. data/gemfiles/rails_50.gemfile +0 -10
  445. data/gemfiles/rails_51.gemfile +0 -10
  446. data/gemfiles/rails_52.gemfile +0 -11
  447. data/lib/active_admin/event.rb +0 -24
  448. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  449. data/lib/active_admin/helpers/settings.rb +0 -114
  450. data/lib/active_admin/reloader.rb +0 -25
  451. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  452. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  453. data/spec/bug_report_templates_spec.rb +0 -26
  454. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  455. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  456. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  457. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  458. data/spec/javascripts/fixtures/flashes.html +0 -2
  459. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  460. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  461. data/spec/javascripts/support/jasmine.yml +0 -74
  462. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  463. data/spec/rails_helper.rb +0 -59
  464. data/spec/requests/default_namespace_spec.rb +0 -81
  465. data/spec/requests/memory_spec.rb +0 -25
  466. data/spec/requests/stylesheets_spec.rb +0 -18
  467. data/spec/spec_helper.rb +0 -1
  468. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  469. data/spec/support/active_admin_request_helpers.rb +0 -39
  470. data/spec/support/rails_template.rb +0 -153
  471. data/spec/support/rails_template_with_data.rb +0 -327
  472. data/spec/support/templates/admin/stores.rb +0 -7
  473. data/spec/support/templates/en.yml +0 -8
  474. data/spec/support/templates/manifest.js +0 -3
  475. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  476. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  477. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  478. data/spec/support/templates/policies/application_policy.rb +0 -44
  479. data/spec/support/templates/policies/category_policy.rb +0 -7
  480. data/spec/support/templates/policies/post_policy.rb +0 -15
  481. data/spec/support/templates/policies/store_policy.rb +0 -11
  482. data/spec/support/templates/policies/user_policy.rb +0 -11
  483. data/spec/support/templates/post_decorator.rb +0 -24
  484. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  485. data/spec/unit/action_builder_spec.rb +0 -158
  486. data/spec/unit/active_admin_spec.rb +0 -11
  487. data/spec/unit/application_spec.rb +0 -184
  488. data/spec/unit/asset_registration_spec.rb +0 -81
  489. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  490. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  491. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  492. data/spec/unit/auto_link_spec.rb +0 -93
  493. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  494. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  495. data/spec/unit/belongs_to_spec.rb +0 -76
  496. data/spec/unit/cancan_adapter_spec.rb +0 -43
  497. data/spec/unit/comments_spec.rb +0 -176
  498. data/spec/unit/component_spec.rb +0 -18
  499. data/spec/unit/config_shared_examples.rb +0 -59
  500. data/spec/unit/controller_filters_spec.rb +0 -41
  501. data/spec/unit/csv_builder_spec.rb +0 -313
  502. data/spec/unit/dependency_spec.rb +0 -135
  503. data/spec/unit/devise_spec.rb +0 -110
  504. data/spec/unit/dsl_spec.rb +0 -120
  505. data/spec/unit/filters/active_filter_spec.rb +0 -189
  506. data/spec/unit/filters/active_spec.rb +0 -24
  507. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  508. data/spec/unit/filters/resource_spec.rb +0 -128
  509. data/spec/unit/form_builder_spec.rb +0 -990
  510. data/spec/unit/generators/install_spec.rb +0 -31
  511. data/spec/unit/helpers/collection_spec.rb +0 -68
  512. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  513. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  514. data/spec/unit/helpers/settings_spec.rb +0 -30
  515. data/spec/unit/i18n_spec.rb +0 -29
  516. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  517. data/spec/unit/menu_collection_spec.rb +0 -62
  518. data/spec/unit/menu_item_spec.rb +0 -141
  519. data/spec/unit/menu_spec.rb +0 -71
  520. data/spec/unit/namespace/authorization_spec.rb +0 -27
  521. data/spec/unit/namespace/register_page_spec.rb +0 -99
  522. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  523. data/spec/unit/namespace_spec.rb +0 -124
  524. data/spec/unit/order_clause_spec.rb +0 -81
  525. data/spec/unit/page_controller_spec.rb +0 -5
  526. data/spec/unit/page_spec.rb +0 -128
  527. data/spec/unit/pretty_format_spec.rb +0 -82
  528. data/spec/unit/pundit_adapter_spec.rb +0 -98
  529. data/spec/unit/resource/action_items_spec.rb +0 -69
  530. data/spec/unit/resource/attributes_spec.rb +0 -49
  531. data/spec/unit/resource/includes_spec.rb +0 -21
  532. data/spec/unit/resource/menu_spec.rb +0 -18
  533. data/spec/unit/resource/naming_spec.rb +0 -122
  534. data/spec/unit/resource/ordering_spec.rb +0 -35
  535. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  536. data/spec/unit/resource/pagination_spec.rb +0 -38
  537. data/spec/unit/resource/routes_spec.rb +0 -125
  538. data/spec/unit/resource/scopes_spec.rb +0 -50
  539. data/spec/unit/resource/sidebars_spec.rb +0 -43
  540. data/spec/unit/resource_collection_spec.rb +0 -175
  541. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  542. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  543. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  544. data/spec/unit/resource_controller_spec.rb +0 -273
  545. data/spec/unit/resource_registration_spec.rb +0 -61
  546. data/spec/unit/resource_spec.rb +0 -320
  547. data/spec/unit/routing_spec.rb +0 -211
  548. data/spec/unit/scope_spec.rb +0 -209
  549. data/spec/unit/settings_spec.rb +0 -117
  550. data/spec/unit/view_factory_spec.rb +0 -19
  551. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  552. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  553. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  554. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  555. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  556. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  557. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  558. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  559. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  560. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  561. data/spec/unit/views/components/columns_spec.rb +0 -187
  562. data/spec/unit/views/components/index_list_spec.rb +0 -49
  563. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  564. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  565. data/spec/unit/views/components/panel_spec.rb +0 -58
  566. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  567. data/spec/unit/views/components/site_title_spec.rb +0 -76
  568. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  569. data/spec/unit/views/components/table_for_spec.rb +0 -436
  570. data/spec/unit/views/components/tabs_spec.rb +0 -67
  571. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  572. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  573. data/spec/unit/views/pages/form_spec.rb +0 -54
  574. data/spec/unit/views/pages/index_spec.rb +0 -60
  575. data/spec/unit/views/pages/layout_spec.rb +0 -59
  576. data/spec/unit/views/pages/show_spec.rb +0 -32
  577. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  578. data/tasks/docs.rake +0 -64
  579. data/tasks/lint.rake +0 -21
  580. data/tasks/local.rake +0 -25
  581. data/tasks/parallel_tests.rake +0 -66
  582. data/tasks/test.rake +0 -29
@@ -0,0 +1,20 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+
4
+ class SettingsNode
5
+ class << self
6
+ # Never instantiated. Variables are stored in the singleton_class.
7
+ private_class_method :new
8
+
9
+ # @return anonymous class with same accessors as the superclass.
10
+ def build(superclass = self)
11
+ Class.new(superclass)
12
+ end
13
+
14
+ def register(name, value)
15
+ class_attribute name
16
+ send "#{name}=", value
17
+ end
18
+ end
19
+ end
20
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
 
3
4
  class SidebarSection
@@ -6,7 +7,9 @@ module ActiveAdmin
6
7
  attr_accessor :name, :options, :block
7
8
 
8
9
  def initialize(name, options = {}, &block)
9
- @name, @options, @block = name.to_s, options, block
10
+ @name = name.to_s
11
+ @options = options
12
+ @block = block
10
13
  normalize_display_options!
11
14
  end
12
15
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
- VERSION = '1.3.0'
3
+ VERSION = "2.13.1"
3
4
  end
@@ -1,27 +1,28 @@
1
- require 'active_admin/abstract_view_factory'
1
+ # frozen_string_literal: true
2
+ require "active_admin/abstract_view_factory"
2
3
 
3
4
  module ActiveAdmin
4
5
  class ViewFactory < AbstractViewFactory
5
6
 
6
7
  # Register Helper Renderers
7
- register global_navigation: ActiveAdmin::Views::TabbedNavigation,
8
- utility_navigation: ActiveAdmin::Views::TabbedNavigation,
9
- site_title: ActiveAdmin::Views::SiteTitle,
10
- unsupported_browser: ActiveAdmin::Views::UnsupportedBrowser,
11
- action_items: ActiveAdmin::Views::ActionItems,
12
- title_bar: ActiveAdmin::Views::TitleBar,
13
- header: ActiveAdmin::Views::Header,
14
- footer: ActiveAdmin::Views::Footer,
15
- index_scopes: ActiveAdmin::Views::Scopes,
16
- blank_slate: ActiveAdmin::Views::BlankSlate
8
+ register global_navigation: ActiveAdmin::Views::TabbedNavigation,
9
+ utility_navigation: ActiveAdmin::Views::TabbedNavigation,
10
+ site_title: ActiveAdmin::Views::SiteTitle,
11
+ unsupported_browser: ActiveAdmin::Views::UnsupportedBrowser,
12
+ action_items: ActiveAdmin::Views::ActionItems,
13
+ title_bar: ActiveAdmin::Views::TitleBar,
14
+ header: ActiveAdmin::Views::Header,
15
+ footer: ActiveAdmin::Views::Footer,
16
+ index_scopes: ActiveAdmin::Views::Scopes,
17
+ blank_slate: ActiveAdmin::Views::BlankSlate
17
18
 
18
19
  # Register All The Pages
19
- register index_page: ActiveAdmin::Views::Pages::Index,
20
- show_page: ActiveAdmin::Views::Pages::Show,
21
- new_page: ActiveAdmin::Views::Pages::Form,
22
- edit_page: ActiveAdmin::Views::Pages::Form,
23
- layout: ActiveAdmin::Views::Pages::Layout,
24
- page: ActiveAdmin::Views::Pages::Page
20
+ register index_page: ActiveAdmin::Views::Pages::Index,
21
+ show_page: ActiveAdmin::Views::Pages::Show,
22
+ new_page: ActiveAdmin::Views::Pages::Form,
23
+ edit_page: ActiveAdmin::Views::Pages::Form,
24
+ layout: ActiveAdmin::Views::Pages::Layout,
25
+ page: ActiveAdmin::Views::Pages::Page
25
26
 
26
27
  end
27
28
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module ActiveAdminApplicationHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module AutoLinkHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module BreadcrumbHelper
@@ -6,22 +7,22 @@ module ActiveAdmin
6
7
  def breadcrumb_links(path = request.path)
7
8
  # remove leading "/" and split up the URL
8
9
  # and remove last since it's used as the page title
9
- parts = path.split('/').select(&:present?)[0..-2]
10
+ parts = path.split("/").select(&:present?)[0..-2]
10
11
 
11
12
  parts.each_with_index.map do |part, index|
12
13
  # 1. try using `display_name` if we can locate a DB object
13
14
  # 2. try using the model name translation
14
15
  # 3. default to calling `titlecase` on the URL fragment
15
- if part =~ /\A(\d+|[a-f0-9]{24}|(?:[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}))\z/ && parts[index-1]
16
+ if part =~ /\A(\d+|[a-f0-9]{24}|(?:[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}))\z/ && parts[index - 1]
16
17
  parent = active_admin_config.belongs_to_config.try :target
17
- config = parent && parent.resource_name.route_key == parts[index-1] ? parent : active_admin_config
18
- name = display_name config.find_resource part
18
+ config = parent && parent.resource_name.route_key == parts[index - 1] ? parent : active_admin_config
19
+ name = display_name config.find_resource part
19
20
  end
20
21
  name ||= I18n.t "activerecord.models.#{part.singularize}", count: ::ActiveAdmin::Helpers::I18n::PLURAL_MANY_COUNT, default: part.titlecase
21
22
 
22
23
  # Don't create a link if the resource's show action is disabled
23
24
  if !config || config.defined_actions.include?(:show)
24
- link_to name, '/' + parts[0..index].join('/')
25
+ link_to name, "/" + parts[0..index].join("/")
25
26
  else
26
27
  name
27
28
  end
@@ -1,21 +1,30 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module DisplayHelper
4
5
 
5
- DISPLAY_NAME_FALLBACK = ->{
6
- name, klass = "", self.class
7
- name << klass.model_name.human if klass.respond_to? :model_name
8
- name << " ##{send(klass.primary_key)}" if klass.respond_to? :primary_key
6
+ DISPLAY_NAME_FALLBACK = -> {
7
+ klass = self.class
8
+ name = if klass.respond_to?(:model_name)
9
+ if klass.respond_to?(:primary_key)
10
+ "#{klass.model_name.human} ##{send(klass.primary_key)}"
11
+ else
12
+ klass.model_name.human
13
+ end
14
+ elsif klass.respond_to?(:primary_key)
15
+ " ##{send(klass.primary_key)}"
16
+ end
9
17
  name.present? ? name : to_s
10
18
  }
19
+
11
20
  def DISPLAY_NAME_FALLBACK.inspect
12
- 'DISPLAY_NAME_FALLBACK'
21
+ "DISPLAY_NAME_FALLBACK"
13
22
  end
14
23
 
15
24
  # Attempts to call any known display name methods on the resource.
16
25
  # See the setting in `application.rb` for the list of methods and their priority.
17
26
  def display_name(resource)
18
- sanitize(render_in_context(resource, display_name_method_for(resource)).to_s) unless resource.nil?
27
+ ERB::Util.html_escape(render_in_context(resource, display_name_method_for(resource))) unless resource.nil?
19
28
  end
20
29
 
21
30
  # Looks up and caches the first available display name method.
@@ -25,7 +34,7 @@ module ActiveAdmin
25
34
  @@display_name_methods_cache ||= {}
26
35
  @@display_name_methods_cache[resource.class] ||= begin
27
36
  methods = active_admin_application.display_name_methods - association_methods_for(resource)
28
- method = methods.detect{ |method| resource.respond_to? method }
37
+ method = methods.detect { |method| resource.respond_to? method }
29
38
 
30
39
  if method != :to_s || resource.method(method).source_location
31
40
  method
@@ -69,16 +78,24 @@ module ActiveAdmin
69
78
  object.to_s
70
79
  when Date, Time
71
80
  I18n.localize object, format: active_admin_application.localize_format
81
+ when Array
82
+ format_collection(object)
72
83
  else
73
84
  if defined?(::ActiveRecord) && object.is_a?(ActiveRecord::Base) ||
74
- defined?(::Mongoid) && object.class.include?(Mongoid::Document)
85
+ defined?(::Mongoid) && object.class.include?(Mongoid::Document)
75
86
  auto_link object
87
+ elsif defined?(::ActiveRecord) && object.is_a?(ActiveRecord::Relation)
88
+ format_collection(object)
76
89
  else
77
90
  display_name object
78
91
  end
79
92
  end
80
93
  end
81
94
 
95
+ def format_collection(collection)
96
+ safe_join(collection.map { |item| pretty_format(item) }, ", ")
97
+ end
98
+
82
99
  def boolean_attr?(resource, attr, value)
83
100
  case value
84
101
  when TrueClass, FalseClass
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module DownloadFormatLinksHelper
5
+ private
4
6
 
5
7
  def build_download_formats(download_links)
6
8
  download_links = instance_exec(&download_links) if download_links.is_a?(Proc)
@@ -17,7 +19,7 @@ module ActiveAdmin
17
19
  def build_download_format_links(formats = self.class.formats)
18
20
  params = request.query_parameters.except :format, :commit
19
21
  div class: "download_links" do
20
- span I18n.t('active_admin.download')
22
+ span I18n.t("active_admin.download")
21
23
  formats.each do |format|
22
24
  a format.upcase, href: url_for(params: params, format: format)
23
25
  end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module FormHelper
@@ -15,7 +16,7 @@ module ActiveAdmin
15
16
  #
16
17
  def fields_for_params(params, options = {})
17
18
  namespace = options[:namespace]
18
- except = Array.wrap(options[:except]).map &:to_s
19
+ except = Array.wrap(options[:except]).map &:to_s
19
20
 
20
21
  params.flat_map do |k, v|
21
22
  next if namespace.nil? && %w(controller action commit utf8).include?(k.to_s)
@@ -37,7 +38,7 @@ module ActiveAdmin
37
38
  { "#{k}[]" => v }
38
39
  end
39
40
  when nil
40
- { k => '' }
41
+ { k => "" }
41
42
  when TrueClass, FalseClass
42
43
  { k => v }
43
44
  else
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module FlashHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module FormHelper
@@ -1,4 +1,8 @@
1
+ # frozen_string_literal: true
2
+ # Utility methods for internal use.
3
+ # @private
1
4
  module MethodOrProcHelper
5
+ extend self
2
6
 
3
7
  # This method will either call the symbol on self or instance_exec the Proc
4
8
  # within self. Any args will be passed along to the method dispatch.
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module ScopeNameHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module SidebarHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module TitleHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
  module ViewFactoryHelper
@@ -1,8 +1,9 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module ViewHelpers
3
4
 
4
5
  # Require all ruby files in the view helpers dir
5
- Dir[File.expand_path('../view_helpers', __FILE__) + "/*.rb"].each{|f| require f }
6
+ Dir[File.expand_path("view_helpers", __dir__) + "/*.rb"].each { |f| require f }
6
7
 
7
8
  include ActiveAdminApplicationHelper
8
9
  include AutoLinkHelper
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  class FormtasticProxy < ::Arbre::Rails::Forms::FormBuilderProxy
@@ -16,7 +17,7 @@ module ActiveAdmin
16
17
  end
17
18
 
18
19
  def to_s
19
- opening_tag << children.to_s << closing_tag
20
+ opening_tag + children.to_s + closing_tag
20
21
  end
21
22
  end
22
23
 
@@ -57,6 +58,12 @@ module ActiveAdmin
57
58
  end
58
59
  insert_tag(SemanticInputsProxy, form_builder, *args, &wrapped_block)
59
60
  else
61
+ # Set except option to prevent sensitive fields from being shown in forms by default.
62
+ opts = args.extract_options!
63
+ opts[:except] ||= []
64
+ ActiveAdmin.application.filter_attributes.each { |e| opts[:except] << e }
65
+ args << opts
66
+
60
67
  proxy_call_to_form(:inputs, *args, &block)
61
68
  end
62
69
  end
@@ -105,15 +112,14 @@ module ActiveAdmin
105
112
  create_another = params[:create_another]
106
113
  label = @resource.class.model_name.human
107
114
  Arbre::Context.new do
108
- li do
115
+ li class: "create_another" do
109
116
  input(
110
117
  checked: create_another,
111
- id: 'create_another',
112
- class: 'create_another',
113
- name: 'create_another',
114
- type: 'checkbox',
118
+ id: "create_another",
119
+ name: "create_another",
120
+ type: "checkbox"
115
121
  )
116
- label(I18n.t('active_admin.create_another', model: label), for: 'create_another')
122
+ label(I18n.t("active_admin.create_another", model: label), for: "create_another")
117
123
  end
118
124
  end
119
125
  end
@@ -126,7 +132,7 @@ module ActiveAdmin
126
132
  legend = args.shift if args.first.is_a?(::String)
127
133
  legend = html_options.delete(:name) if html_options.key?(:name)
128
134
  legend_tag = legend ? "<legend><span>#{legend}</span></legend>" : ""
129
- fieldset_attrs = html_options.map {|k, v| %Q{#{k}="#{v}"} }.join(" ")
135
+ fieldset_attrs = html_options.map { |k, v| %Q{#{k}="#{v}"} }.join(" ")
130
136
  @opening_tag = "<fieldset #{fieldset_attrs}>#{legend_tag}<ol>"
131
137
  @closing_tag = "</ol></fieldset>"
132
138
  super(*(args << html_options), &block)
@@ -0,0 +1,59 @@
1
+ # frozen_string_literal: true
2
+ require "active_admin/filters/active"
3
+
4
+ module ActiveAdmin
5
+ module Views
6
+
7
+ class ActiveFiltersSidebarContent < ActiveAdmin::Component
8
+ builder_method :active_filters_sidebar_content
9
+
10
+ def build
11
+ active_filters = ActiveAdmin::Filters::Active.new(active_admin_config, assigns[:search])
12
+ active_scopes = assigns[:search].instance_variable_get("@scope_args")
13
+
14
+ scope_block(current_scope)
15
+ filters_list(active_filters, active_scopes)
16
+ end
17
+
18
+ def scope_block(current_scope)
19
+ return unless current_scope
20
+
21
+ h4 I18n.t("active_admin.search_status.current_scope"), style: "display: inline"
22
+ b scope_name(current_scope), class: "current_scope_name"
23
+ end
24
+
25
+ def filters_list(active_filters, active_scopes)
26
+ div style: "margin-top: 10px" do
27
+ h4 I18n.t("active_admin.search_status.current_filters"), style: "margin-bottom: 10px"
28
+ ul do
29
+ if active_filters.filters.blank? && active_scopes.blank?
30
+ li I18n.t("active_admin.search_status.no_current_filters")
31
+ else
32
+ active_filters.filters.each { |filter| filter_item(filter) }
33
+ active_scopes.each { |name, value| scope_item(name, value) }
34
+ end
35
+ end
36
+ end
37
+ end
38
+
39
+ def filter_item(filter)
40
+ li filter.html_options do
41
+ span filter.label
42
+ b to_sentence(filter.values.map { |v| pretty_format(v) })
43
+ end
44
+ end
45
+
46
+ def scope_item(name, value)
47
+ filter_name = name.gsub(/_eq$/, "")
48
+ filter = active_admin_config.filters[filter_name.to_sym]
49
+ label = filter.try(:[], :label) || filter_name.titleize
50
+
51
+ li class: "current_filter_#{name}" do
52
+ span "#{label} #{Ransack::Translate.predicate('eq')}"
53
+ b value
54
+ end
55
+ end
56
+ end
57
+
58
+ end
59
+ end
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -5,9 +6,9 @@ module ActiveAdmin
5
6
  builder_method :attributes_table_for
6
7
 
7
8
  def build(obj, *attrs)
8
- @collection = Array.wrap(obj)
9
+ @collection = Array.wrap(obj)
9
10
  @resource_class = @collection.first.class
10
- options = { }
11
+ options = {}
11
12
  options[:for] = @collection.first if single_record?
12
13
  super(options)
13
14
  @table = table
@@ -16,19 +17,19 @@ module ActiveAdmin
16
17
  end
17
18
 
18
19
  def rows(*attrs)
19
- attrs.each {|attr| row(attr) }
20
+ attrs.each { |attr| row(attr) }
20
21
  end
21
22
 
22
23
  def row(*args, &block)
23
- title = args[0]
24
+ title = args[0]
24
25
  options = args.extract_options!
25
26
  classes = [:row]
26
27
  if options[:class]
27
28
  classes << options[:class]
28
29
  elsif title.present?
29
- classes << "row-#{ActiveAdmin::Dependency.rails.parameterize(title.to_s)}"
30
+ classes << "row-#{title.to_s.parameterize(separator: "_")}"
30
31
  end
31
- options[:class] = classes.join(' ')
32
+ options[:class] = classes.join(" ")
32
33
 
33
34
  @table << tr(options) do
34
35
  th do
@@ -45,7 +46,7 @@ module ActiveAdmin
45
46
  protected
46
47
 
47
48
  def default_id_for_prefix
48
- 'attributes_table'
49
+ "attributes_table"
49
50
  end
50
51
 
51
52
  # Build Colgroups
@@ -75,7 +76,7 @@ module ActiveAdmin
75
76
  end
76
77
 
77
78
  def empty_value
78
- span I18n.t('active_admin.empty'), class: "empty"
79
+ span I18n.t("active_admin.empty"), class: "empty"
79
80
  end
80
81
 
81
82
  def content_for(record, attr)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
  # Build a Blank Slate
@@ -5,7 +6,7 @@ module ActiveAdmin
5
6
  builder_method :blank_slate
6
7
 
7
8
  def default_class_name
8
- 'blank_slate_container'
9
+ "blank_slate_container"
9
10
  end
10
11
 
11
12
  def build(content)
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -1,3 +1,4 @@
1
+ # frozen_string_literal: true
1
2
  module ActiveAdmin
2
3
  module Views
3
4
 
@@ -35,30 +36,27 @@ module ActiveAdmin
35
36
  super(options)
36
37
  end
37
38
 
38
- def item(*args)
39
+ def item(*args, **kwargs)
39
40
  within @menu do
40
- li link_to(*args)
41
+ li link_to(*args, **kwargs)
41
42
  end
42
43
  end
43
44
 
44
45
  private
45
46
 
46
47
  def build_button(name, button_options)
47
- button_options[:class] ||= ''
48
- button_options[:class] << ' dropdown_menu_button'
49
-
50
- button_options[:href] = '#'
48
+ button_options[:class] = "#{button_options[:class]} dropdown_menu_button"
49
+ button_options[:href] = "#"
51
50
 
52
51
  a name, button_options
53
52
  end
54
53
 
55
54
  def build_menu(options)
56
- options[:class] ||= ''
57
- options[:class] << ' dropdown_menu_list'
55
+ options[:class] = "#{options[:class]} dropdown_menu_list"
58
56
 
59
57
  menu_list = nil
60
58
 
61
- div class: 'dropdown_menu_list_wrapper' do
59
+ div class: "dropdown_menu_list_wrapper" do
62
60
  menu_list = ul(options)
63
61
  end
64
62
 
@@ -1,4 +1,5 @@
1
- require 'active_admin/helpers/collection'
1
+ # frozen_string_literal: true
2
+ require "active_admin/helpers/collection"
2
3
 
3
4
  module ActiveAdmin
4
5
  module Views
@@ -15,7 +16,7 @@ module ActiveAdmin
15
16
  end
16
17
 
17
18
  def tag_name
18
- 'ul'
19
+ "ul"
19
20
  end
20
21
 
21
22
  # Builds the links for presenting different index views to the user
@@ -37,7 +38,7 @@ module ActiveAdmin
37
38
  def build_index_list(index_class)
38
39
  li class: classes_for_index(index_class) do
39
40
  params = request.query_parameters.except :page, :commit, :format
40
- url_with_params = url_for(params.merge(as: index_class.index_name.to_sym))
41
+ url_with_params = url_for(**params.merge(as: index_class.index_name.to_sym).symbolize_keys)
41
42
 
42
43
  a href: url_with_params, class: "table_tools_button" do
43
44
  name = index_class.index_name
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+ module ActiveAdmin
3
+ module Views
4
+
5
+ # Renders an ActiveAdmin::Menu as a set of unordered list items.
6
+ #
7
+ # This component takes cares of deciding which items should be
8
+ # displayed given the current context and renders them appropriately.
9
+ #
10
+ # The entire component is rendered within one ul element.
11
+ class Menu < Component
12
+ attr_reader :menu
13
+ builder_method :menu
14
+
15
+ # @param [ActiveAdmin::Menu] menu the Menu to render
16
+ # @param [Hash] options the options as passed to the underlying ul element.
17
+ #
18
+ def build(menu, options = {})
19
+ @menu = menu
20
+ super(options)
21
+
22
+ menu.items.each do |item|
23
+ menu_item(item) if helpers.render_in_context self, item.should_display
24
+ end
25
+ children.sort!
26
+ end
27
+
28
+ def tag_name
29
+ "ul"
30
+ end
31
+ end
32
+ end
33
+ end