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
@@ -1,253 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe "Breadcrumbs" do
4
-
5
- include ActiveAdmin::ViewHelpers
6
- include ActionView::Helpers::SanitizeHelper
7
-
8
- describe "generating a trail from paths" do
9
-
10
- def params; {}; end
11
- def link_to(name, url); {name: name, path: url}; end
12
-
13
- actions = ActiveAdmin::BaseController::ACTIVE_ADMIN_ACTIONS
14
-
15
- let(:user) { double display_name: 'Jane Doe' }
16
- let(:user_config) { double find_resource: user, resource_name: double(route_key: 'users'),
17
- defined_actions: actions }
18
- let(:post) { double display_name: 'Hello World' }
19
- let(:post_config) { double find_resource: post, resource_name: double(route_key: 'posts'),
20
- defined_actions: actions, belongs_to_config: double(target: user_config) }
21
-
22
- let :active_admin_config do
23
- post_config
24
- end
25
-
26
- let(:trail) { breadcrumb_links(path) }
27
-
28
- context "when request '/admin'" do
29
- let(:path) { "/admin" }
30
-
31
- it "should not have any items" do
32
- expect(trail.size).to eq 0
33
- end
34
- end
35
-
36
- context "when path 'admin/users'" do
37
- let(:path) { 'admin/users' }
38
-
39
- it 'should have one item' do
40
- expect(trail.size).to eq 1
41
- end
42
- it 'should have a link to /admin' do
43
- expect(trail[0][:name]).to eq 'Admin'
44
- expect(trail[0][:path]).to eq '/admin'
45
- end
46
- end
47
-
48
- context "when path '/admin/users'" do
49
- let(:path) { "/admin/users" }
50
-
51
- it "should have one item" do
52
- expect(trail.size).to eq 1
53
- end
54
- it "should have a link to /admin" do
55
- expect(trail[0][:name]).to eq "Admin"
56
- expect(trail[0][:path]).to eq "/admin"
57
- end
58
- end
59
-
60
- context "when path '/admin/users/1'" do
61
- let(:path) { "/admin/users/1" }
62
-
63
- it "should have 2 items" do
64
- expect(trail.size).to eq 2
65
- end
66
- it "should have a link to /admin" do
67
- expect(trail[0][:name]).to eq "Admin"
68
- expect(trail[0][:path]).to eq "/admin"
69
- end
70
- it "should have a link to /admin/users" do
71
- expect(trail[1][:name]).to eq "Users"
72
- expect(trail[1][:path]).to eq "/admin/users"
73
- end
74
- end
75
-
76
- context "when path '/admin/users/1/posts'" do
77
- let(:path) { "/admin/users/1/posts" }
78
-
79
- it "should have 3 items" do
80
- expect(trail.size).to eq 3
81
- end
82
- it "should have a link to /admin" do
83
- expect(trail[0][:name]).to eq "Admin"
84
- expect(trail[0][:path]).to eq "/admin"
85
- end
86
- it "should have a link to /admin/users" do
87
- expect(trail[1][:name]).to eq "Users"
88
- expect(trail[1][:path]).to eq "/admin/users"
89
- end
90
-
91
- context "when User.find(1) doesn't exist" do
92
- before { allow(user_config).to receive(:find_resource) }
93
- it "should have a link to /admin/users/1" do
94
- expect(trail[2][:name]).to eq "1"
95
- expect(trail[2][:path]).to eq "/admin/users/1"
96
- end
97
- end
98
-
99
- context "when User.find(1) does exist" do
100
- it "should have a link to /admin/users/1 using display name" do
101
- expect(trail[2][:name]).to eq "Jane Doe"
102
- expect(trail[2][:path]).to eq "/admin/users/1"
103
- end
104
- end
105
- end
106
-
107
- context "when path '/admin/users/4e24d6249ccf967313000000/posts'" do
108
- let(:path) { "/admin/users/4e24d6249ccf967313000000/posts" }
109
-
110
- it "should have 3 items" do
111
- expect(trail.size).to eq 3
112
- end
113
- it "should have a link to /admin" do
114
- expect(trail[0][:name]).to eq "Admin"
115
- expect(trail[0][:path]).to eq "/admin"
116
- end
117
- it "should have a link to /admin/users" do
118
- expect(trail[1][:name]).to eq "Users"
119
- expect(trail[1][:path]).to eq "/admin/users"
120
- end
121
-
122
- context "when User.find(4e24d6249ccf967313000000) doesn't exist" do
123
- before { allow(user_config).to receive(:find_resource) }
124
- it "should have a link to /admin/users/4e24d6249ccf967313000000" do
125
- expect(trail[2][:name]).to eq "4e24d6249ccf967313000000"
126
- expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
127
- end
128
- end
129
-
130
- context "when User.find(4e24d6249ccf967313000000) does exist" do
131
- before do
132
- display_name = double(display_name: 'Hello :)')
133
- allow(user_config).to receive(:find_resource).and_return(display_name)
134
- end
135
- it "should have a link to /admin/users/4e24d6249ccf967313000000 using display name" do
136
- expect(trail[2][:name]).to eq "Hello :)"
137
- expect(trail[2][:path]).to eq "/admin/users/4e24d6249ccf967313000000"
138
- end
139
- end
140
- end
141
-
142
- context "when path '/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4/posts'" do
143
- let(:path) { "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4/posts" }
144
-
145
- it "should have 3 items" do
146
- expect(trail.size).to eq 3
147
- end
148
- it "should have a link to /admin" do
149
- expect(trail[0][:name]).to eq "Admin"
150
- expect(trail[0][:path]).to eq "/admin"
151
- end
152
- it "should have a link to /admin/users" do
153
- expect(trail[1][:name]).to eq "Users"
154
- expect(trail[1][:path]).to eq "/admin/users"
155
- end
156
-
157
- context "when User.find(2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4) doesn't exist" do
158
- before { allow(user_config).to receive(:find_resource) }
159
- it "should have a link to /admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4" do
160
- expect(trail[2][:name]).to eq "2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4".titlecase
161
- expect(trail[2][:path]).to eq "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4"
162
- end
163
- end
164
-
165
- context "when User.find(2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4) does exist" do
166
- before do
167
- display_name = double(display_name: 'Hello :)')
168
- allow(user_config).to receive(:find_resource).and_return(display_name)
169
- end
170
- it "should have a link to /admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4 using display name" do
171
- expect(trail[2][:name]).to eq "Hello :)"
172
- expect(trail[2][:path]).to eq "/admin/users/2b2f0fc2-9a0d-41b8-b39d-aa21963aaee4"
173
- end
174
- end
175
- end
176
-
177
- context "when path '/admin/users/1/coments/1'" do
178
- let(:path) { "/admin/users/1/posts/1" }
179
-
180
- it "should have 4 items" do
181
- expect(trail.size).to eq 4
182
- end
183
- it "should have a link to /admin" do
184
- expect(trail[0][:name]).to eq "Admin"
185
- expect(trail[0][:path]).to eq "/admin"
186
- end
187
- it "should have a link to /admin/users" do
188
- expect(trail[1][:name]).to eq "Users"
189
- expect(trail[1][:path]).to eq "/admin/users"
190
- end
191
- it "should have a link to /admin/users/1" do
192
- expect(trail[2][:name]).to eq "Jane Doe"
193
- expect(trail[2][:path]).to eq "/admin/users/1"
194
- end
195
- it "should have a link to /admin/users/1/posts" do
196
- expect(trail[3][:name]).to eq "Posts"
197
- expect(trail[3][:path]).to eq "/admin/users/1/posts"
198
- end
199
- end
200
-
201
- context "when path '/admin/users/1/coments/1/edit'" do
202
- let(:path) { "/admin/users/1/posts/1/edit" }
203
-
204
- it "should have 5 items" do
205
- expect(trail.size).to eq 5
206
- end
207
- it "should have a link to /admin" do
208
- expect(trail[0][:name]).to eq "Admin"
209
- expect(trail[0][:path]).to eq "/admin"
210
- end
211
- it "should have a link to /admin/users" do
212
- expect(trail[1][:name]).to eq "Users"
213
- expect(trail[1][:path]).to eq "/admin/users"
214
- end
215
- it "should have a link to /admin/users/1" do
216
- expect(trail[2][:name]).to eq "Jane Doe"
217
- expect(trail[2][:path]).to eq "/admin/users/1"
218
- end
219
- it "should have a link to /admin/users/1/posts" do
220
- expect(trail[3][:name]).to eq "Posts"
221
- expect(trail[3][:path]).to eq "/admin/users/1/posts"
222
- end
223
- it "should have a link to /admin/users/1/posts/1" do
224
- expect(trail[4][:name]).to eq "Hello World"
225
- expect(trail[4][:path]).to eq "/admin/users/1/posts/1"
226
- end
227
- end
228
-
229
- context "when the 'show' action is disabled" do
230
- let(:post_config) { double find_resource: post, resource_name: double(route_key: 'posts'),
231
- defined_actions: actions - [:show], # this is the change
232
- belongs_to_config: double(target: user_config) }
233
-
234
- let(:path) { "/admin/posts/1/edit" }
235
-
236
- it "should have 3 items" do
237
- expect(trail.size).to eq 3
238
- end
239
- it "should have a link to /admin" do
240
- expect(trail[0][:name]).to eq "Admin"
241
- expect(trail[0][:path]).to eq "/admin"
242
- end
243
- it "should have a link to /admin/posts" do
244
- expect(trail[1][:name]).to eq "Posts"
245
- expect(trail[1][:path]).to eq "/admin/posts"
246
- end
247
- it "should not link to the show view for the post" do
248
- expect(trail[2]).to eq "Hello World"
249
- end
250
- end
251
-
252
- end
253
- end
@@ -1,203 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/view_helpers/active_admin_application_helper'
3
- require 'active_admin/view_helpers/auto_link_helper'
4
- require 'active_admin/view_helpers/display_helper'
5
- require 'active_admin/view_helpers/method_or_proc_helper'
6
-
7
- RSpec.describe ActiveAdmin::ViewHelpers::DisplayHelper do
8
- include ActiveAdmin::ViewHelpers::ActiveAdminApplicationHelper
9
- include ActiveAdmin::ViewHelpers::AutoLinkHelper
10
- include ActiveAdmin::ViewHelpers::DisplayHelper
11
- include MethodOrProcHelper
12
- include ActionView::Helpers::UrlHelper
13
- include ActionView::Helpers::TranslationHelper
14
- include ActionView::Helpers::SanitizeHelper
15
-
16
- def active_admin_namespace
17
- active_admin_application.namespaces[:admin]
18
- end
19
-
20
- def authorized?(*)
21
- true
22
- end
23
-
24
- def url_options
25
- { locale: nil }
26
- end
27
-
28
- before do
29
- load_resources do
30
- ActiveAdmin.register(User)
31
- ActiveAdmin.register(Post){ belongs_to :user, optional: true }
32
- end
33
- end
34
-
35
- describe '#display_name' do
36
- ActiveAdmin::Application.new.display_name_methods.map(&:to_s).each do |m|
37
- it "should return #{m} when defined" do
38
- klass = Class.new do
39
- define_method(m) { m }
40
- end
41
- expect(display_name klass.new).to eq m
42
- end
43
-
44
- it "should sanitize the result of #{m} when defined" do
45
- klass = Class.new do
46
- define_method(m) { '<script>alert(1)</script>' }
47
- end
48
- expect(display_name klass.new).to eq 'alert(1)'
49
- end
50
- end
51
-
52
- it "should memoize the result for the class" do
53
- subject = Class.new.new
54
- expect(subject).to receive(:name).twice.and_return "My Name"
55
-
56
- expect(display_name subject).to eq "My Name"
57
-
58
- expect(ActiveAdmin.application).to_not receive(:display_name_methods)
59
- expect(display_name subject).to eq "My Name"
60
- end
61
-
62
- it "should not call a method if it's an association" do
63
- klass = Class.new
64
- subject = klass.new
65
- allow(klass).to receive(:reflect_on_all_associations).and_return [ double(name: :login) ]
66
- allow(subject).to receive :login
67
- expect(subject).to_not receive :login
68
- allow(subject).to receive(:email).and_return 'foo@bar.baz'
69
-
70
- expect(display_name subject).to eq 'foo@bar.baz'
71
- end
72
-
73
- it "should return `nil` when the passed object is `nil`" do
74
- expect(display_name nil).to eq nil
75
- end
76
-
77
- it "should return 'false' when the passed object is `false`" do
78
- expect(display_name false).to eq "false"
79
- end
80
-
81
- it "should default to `to_s`" do
82
- subject = Class.new.new
83
- expect(display_name subject).to eq sanitize(subject.to_s)
84
- end
85
-
86
- context "when no display name method is defined" do
87
- context "on a Rails model" do
88
- it "should show the model name" do
89
- class ThisModel
90
- extend ActiveModel::Naming
91
- end
92
- subject = ThisModel.new
93
- expect(display_name subject).to eq "This model"
94
- end
95
-
96
- it "should show the model name, plus the ID if in use" do
97
- subject = Tagging.create!
98
- expect(display_name subject).to eq "Tagging #1"
99
- end
100
-
101
- it "should translate the model name" do
102
- with_translation activerecord: {models: {tagging: {one: "Different"}}} do
103
- subject = Tagging.create!
104
- expect(display_name subject).to eq "Different #1"
105
- end
106
- end
107
- end
108
- end
109
- end
110
-
111
- describe '#format_attribute' do
112
- it 'calls the provided block to format the value' do
113
- value = format_attribute double(foo: 2), ->r { r.foo + 1 }
114
-
115
- expect(value).to eq '3'
116
- end
117
-
118
- it 'finds values as methods' do
119
- value = format_attribute double(name: 'Joe'), :name
120
-
121
- expect(value).to eq 'Joe'
122
- end
123
-
124
- it 'finds values from hashes' do
125
- value = format_attribute({id: 100}, :id)
126
-
127
- expect(value).to eq '100'
128
- end
129
-
130
- [1, 1.2, :a_symbol].each do |val|
131
- it "calls to_s to format the value of type #{val.class}" do
132
- value = format_attribute double(foo: val), :foo
133
-
134
- expect(value).to eq val.to_s
135
- end
136
- end
137
-
138
- it 'localizes dates' do
139
- date = Date.parse '2016/02/28'
140
-
141
- value = format_attribute double(date: date), :date
142
-
143
- expect(value).to eq 'February 28, 2016'
144
- end
145
-
146
- it 'localizes times' do
147
- time = Time.parse '2016/02/28 9:34 PM'
148
-
149
- value = format_attribute double(time: time), :time
150
-
151
- expect(value).to eq 'February 28, 2016 21:34'
152
- end
153
-
154
- it 'uses a display_name method for arbitrary objects' do
155
- object = double to_s: :wrong, display_name: :right
156
-
157
- value = format_attribute double(object: object), :object
158
-
159
- expect(value).to eq 'right'
160
- end
161
-
162
- it 'auto-links ActiveRecord records by association' do
163
- post = Post.create! author: User.new
164
-
165
- value = format_attribute post, :author
166
-
167
- expect(value).to match /<a href="\/admin\/users\/\d+"> <\/a>/
168
- end
169
-
170
- it 'auto-links ActiveRecord records & uses a display_name method' do
171
- post = Post.create! author: User.new(first_name: 'A', last_name: 'B')
172
-
173
- value = format_attribute post, :author
174
-
175
- expect(value).to match /<a href="\/admin\/users\/\d+">A B<\/a>/
176
- end
177
-
178
- pending 'auto-links Mongoid records'
179
-
180
- it 'calls status_tag for boolean values' do
181
- post = Post.new starred: true
182
-
183
- value = format_attribute post, :starred
184
-
185
- expect(value.to_s).to eq "<span class=\"status_tag yes\">Yes</span>\n"
186
- end
187
-
188
- it 'calls status_tag for boolean non-database values' do
189
- post = Post.new
190
- post.define_singleton_method(:true_method) do
191
- true
192
- end
193
- post.define_singleton_method(:false_method) do
194
- false
195
- end
196
- true_value = format_attribute post, :true_method
197
- expect(true_value.to_s).to eq "<span class=\"status_tag yes\">Yes</span>\n"
198
- false_value = format_attribute post, :false_method
199
- expect(false_value.to_s).to eq "<span class=\"status_tag no\">No</span>\n"
200
- end
201
-
202
- end
203
- end
@@ -1,39 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper do
4
- describe "class methods" do
5
- before :all do
6
- begin
7
- # The mime type to be used in respond_to |format| style web-services in rails
8
- Mime::Type.register "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", :xlsx
9
- rescue NameError
10
- puts "Mime module not defined. Skipping registration of xlsx"
11
- end
12
- end
13
-
14
- subject do
15
- Class.new do
16
- include ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
17
- end
18
- end
19
-
20
- it "extends the class to add a formats class method that returns the default formats." do
21
- expect(subject.formats).to eq [:csv, :xml, :json]
22
- end
23
-
24
- it "does not let you alter the formats array directly" do
25
- subject.formats << :xlsx
26
- expect(subject.formats).to eq [:csv, :xml, :json]
27
- end
28
-
29
- it "allows us to add new formats" do
30
- subject.add_format :xlsx
31
- expect(subject.formats).to eq [:csv, :xml, :json, :xlsx]
32
- end
33
-
34
- it "raises an exception if you provide an unregisterd mime type extension" do
35
- expect{ subject.add_format :hoge }.to raise_error 'Please register the hoge mime type with `Mime::Type.register`'
36
- end
37
-
38
- end
39
- end
@@ -1,50 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::FormHelper, ".fields_for" do
4
- include ActiveAdmin::ViewHelpers::FormHelper
5
-
6
- it "should skip :action, :controller and :commit" do
7
- expect(fields_for_params(
8
- scope: "All", action: "index", controller: "PostController", commit: "Filter", utf8: "Yes!")).
9
- to eq [ { scope: "All" } ]
10
- end
11
-
12
- it "should skip the except" do
13
- expect(fields_for_params({scope: "All", name: "Greg"}, except: :name)).
14
- to eq [ { scope: "All" } ]
15
- end
16
-
17
- it "should allow an array for the except" do
18
- expect(fields_for_params({scope: "All", name: "Greg", age: "12"}, except: [:name, :age])).
19
- to eq [ { scope: "All" } ]
20
- end
21
-
22
- it "should work with hashes" do
23
- params = fields_for_params(filters: { name: "John", age: "12" })
24
-
25
- expect(params.size).to eq 2
26
- expect(params).to include({"filters[name]" => "John" })
27
- expect(params).to include({ "filters[age]" => "12" })
28
- end
29
-
30
- it "should work with nested hashes" do
31
- expect(fields_for_params(filters: { user: { name: "John" }})).
32
- to eq [ { "filters[user][name]" => "John" } ]
33
- end
34
-
35
- it "should work with arrays" do
36
- expect(fields_for_params(people: ["greg", "emily", "philippe"])).
37
- to eq [ { "people[]" => "greg" },
38
- { "people[]" => "emily" },
39
- { "people[]" => "philippe" } ]
40
- end
41
-
42
- it "should work with symbols" do
43
- expect(fields_for_params(filter: :id)).
44
- to eq [ { filter: "id" } ]
45
- end
46
-
47
- it "should work with booleans" do
48
- expect(fields_for_params(booleantest: false)).to eq [ { booleantest: false } ]
49
- end
50
- end
@@ -1,24 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::FlashHelper do
4
-
5
- describe '.flash_messages' do
6
- let(:view) { action_view }
7
-
8
- it "should not include 'timedout' flash messages by default" do
9
- view.request.flash[:alert] = "Alert"
10
- view.request.flash[:timedout] = true
11
- expect(view.flash_messages).to include 'alert'
12
- expect(view.flash_messages).to_not include 'timedout'
13
- end
14
-
15
- it "should not return flash messages included in flash_keys_to_except" do
16
- expect(view.active_admin_application).to receive(:flash_keys_to_except).and_return ["hideme"]
17
- view.request.flash[:alert] = "Alert"
18
- view.request.flash[:hideme] = "Do not show"
19
- expect(view.flash_messages).to include 'alert'
20
- expect(view.flash_messages).to_not include 'hideme'
21
- end
22
-
23
- end
24
- end
@@ -1,42 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ViewHelpers::FormHelper do
4
-
5
- describe '.active_admin_form_for' do
6
- let(:view) { action_view }
7
- let(:resource) { double 'resource' }
8
- let(:default_options) { { builder: ActiveAdmin::FormBuilder } }
9
-
10
- it 'calls semantic_form_for with the ActiveAdmin form builder' do
11
- expect(view).to receive(:semantic_form_for).with(resource, builder: ActiveAdmin::FormBuilder)
12
- view.active_admin_form_for(resource)
13
- end
14
-
15
- it 'allows the form builder to be customized' do
16
- # We can't use a stub here because options gets marshalled, and a new
17
- # instance built. Any constant will work.
18
- custom_builder = Object
19
- expect(view).to receive(:semantic_form_for).with(resource, builder: custom_builder)
20
- view.active_admin_form_for(resource, builder: custom_builder)
21
- end
22
- end
23
-
24
- describe ".hidden_field_tags_for" do
25
- let(:view) { action_view }
26
-
27
- it "should render hidden field tags for params" do
28
- html = Capybara.string view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All", filter: "None"))
29
- expect(html).to have_selector("input#hidden_active_admin_scope[name=scope][type=hidden][value=All]", visible: false)
30
- expect(html).to have_selector("input#hidden_active_admin_filter[name=filter][type=hidden][value=None]", visible: false)
31
- end
32
-
33
- it "should generate not default id for hidden input" do
34
- expect(view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All"))[/id="([^"]+)"/, 1]).to_not eq "scope"
35
- end
36
-
37
- it "should filter out the field passed via the option :except" do
38
- html = Capybara.string view.hidden_field_tags_for(ActionController::Parameters.new(scope: "All", filter: "None"), except: :filter)
39
- expect(html).to have_selector("input#hidden_active_admin_scope[name=scope][type=hidden][value=All]", visible: false)
40
- end
41
- end
42
- end