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,98 +0,0 @@
1
- require 'rails_helper'
2
-
3
- class DefaultPolicy < ApplicationPolicy
4
- def respond_to_missing?(method, include_private = false)
5
- method.to_s[0...3] == "foo" || super
6
- end
7
-
8
- def method_missing(method, *args, &block)
9
- if method.to_s[0...3] == "foo"
10
- method.to_s[4...7] == "yes"
11
- else
12
- super
13
- end
14
- end
15
-
16
- class Scope
17
-
18
- attr_reader :user, :scope
19
-
20
- def initialize(user, scope)
21
- @user = user
22
- @scope = scope
23
- end
24
-
25
- def resolve
26
- scope
27
- end
28
- end
29
- end
30
-
31
- RSpec.describe ActiveAdmin::PunditAdapter do
32
-
33
- describe "full integration" do
34
-
35
- let(:application) { ActiveAdmin::Application.new }
36
- let(:namespace) { ActiveAdmin::Namespace.new(application, "Admin") }
37
- let(:resource) { namespace.register(Post) }
38
- let(:auth) { namespace.authorization_adapter.new(resource, double) }
39
- let(:default_policy_klass) { DefaultPolicy }
40
- let(:default_policy_klass_name) { "DefaultPolicy" }
41
-
42
- before do
43
- namespace.authorization_adapter = ActiveAdmin::PunditAdapter
44
- end
45
-
46
- it "should initialize the ability stored in the namespace configuration" do
47
- expect(auth.authorized?(:read, Post)).to eq true
48
- expect(auth.authorized?(:update, Post)).to eq false
49
- end
50
-
51
- it "should scope the collection" do
52
- class RSpec::Mocks::DoublePolicy < ApplicationPolicy
53
- class Scope < Struct.new(:user, :scope)
54
- def resolve
55
- scope
56
- end
57
- end
58
- end
59
-
60
- collection = double
61
- auth.scope_collection(collection, :read)
62
- expect(collection).to eq collection
63
- end
64
-
65
- it "works well with method_missing" do
66
- allow(auth).to receive(:retrieve_policy).and_return(DefaultPolicy.new(double, double))
67
- expect(auth.authorized?(:foo_no)).to eq false
68
- expect(auth.authorized?(:foo_yes)).to eq true
69
- expect(auth.authorized?(:bar_yes)).to eq false
70
- end
71
-
72
- context 'when Pundit is unable to find policy scope' do
73
- let(:collection) { double("collection", to_sym: :collection) }
74
- subject(:scope) { auth.scope_collection(collection, :read) }
75
-
76
- before do
77
- allow(ActiveAdmin.application).to receive(:pundit_default_policy).and_return default_policy_klass_name
78
- allow(Pundit).to receive(:policy_scope!) { raise Pundit::NotDefinedError.new }
79
- end
80
-
81
- it("should return default policy's scope if defined") { is_expected.to eq(collection) }
82
- end
83
-
84
- context "when Pundit is unable to find policy" do
85
- let(:record) { double }
86
-
87
- subject(:policy) { auth.retrieve_policy(record) }
88
-
89
- before do
90
- allow(ActiveAdmin.application).to receive(:pundit_default_policy).and_return default_policy_klass_name
91
- allow(Pundit).to receive(:policy!) { raise Pundit::NotDefinedError.new }
92
- end
93
-
94
- it("should return default policy instance") { is_expected.to be_instance_of(default_policy_klass) }
95
- end
96
- end
97
-
98
- end
@@ -1,69 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Resource::ActionItems do
4
-
5
- let(:resource) do
6
- namespace = ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin)
7
- namespace.register(Post)
8
- end
9
-
10
- describe "adding a new action item" do
11
-
12
- before do
13
- resource.clear_action_items!
14
- resource.add_action_item :empty, class: :test do
15
- # Empty ...
16
- end
17
- end
18
-
19
- it "should add an action item" do
20
- expect(resource.action_items.size).to eq 1
21
- end
22
-
23
- it "should store an instance of ActionItem" do
24
- expect(resource.action_items.first).to be_an_instance_of(ActiveAdmin::ActionItem)
25
- end
26
-
27
- it "should store the block in the action item" do
28
- expect(resource.action_items.first.block).to_not eq nil
29
- end
30
-
31
- it "should include class from options" do
32
- expect(resource.action_items.first.html_class).to eq("action_item test")
33
- end
34
-
35
- end
36
-
37
- describe "setting an action item to only display on specific controller actions" do
38
-
39
- before do
40
- resource.clear_action_items!
41
- resource.add_action_item :new, only: :index do
42
- raise StandardError
43
- end
44
- resource.add_action_item :edit, only: :show do
45
- # Empty ...
46
- end
47
- end
48
-
49
- it "should return only relevant action items" do
50
- expect(resource.action_items_for(:index).size).to eq 1
51
- expect {
52
- resource.action_items_for(:index).first.call
53
- }.to raise_exception(StandardError)
54
- end
55
-
56
- end
57
-
58
- describe "default action items" do
59
- it "should have 3 action items" do
60
- expect(resource.action_items.size).to eq 3
61
- end
62
-
63
- it 'can be removed by name' do
64
- resource.remove_action_item :new
65
- expect(resource.action_items.size).to eq 2
66
- end
67
- end
68
-
69
- end
@@ -1,49 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module ActiveAdmin
4
- RSpec.describe Resource, "Attributes" do
5
- let(:application) { ActiveAdmin::Application.new }
6
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
7
- let(:resource_config) { ActiveAdmin::Resource.new namespace, Post }
8
-
9
- describe "#resource_attributes" do
10
- subject do
11
- resource_config.resource_attributes
12
- end
13
-
14
- it 'should return attributes hash' do
15
- expect(subject).to eq(author_id: :author,
16
- body: :body,
17
- created_at: :created_at,
18
- custom_category_id: :category,
19
- foo_id: :foo_id,
20
- position: :position,
21
- published_date: :published_date,
22
- starred: :starred,
23
- title: :title,
24
- updated_at: :updated_at)
25
- end
26
- end
27
-
28
- describe "#association_columns" do
29
- subject do
30
- resource_config.association_columns
31
- end
32
-
33
- it 'should return associations' do
34
- expect(subject).to eq([:author, :category])
35
- end
36
- end
37
-
38
- describe "#content_columns" do
39
- subject do
40
- resource_config.content_columns
41
- end
42
-
43
- it 'should return columns without associations' do
44
- expect(subject).to eq([:title, :body, :published_date, :position, :starred, :foo_id, :created_at, :updated_at])
45
- end
46
- end
47
-
48
- end
49
- end
@@ -1,21 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module ActiveAdmin
4
- RSpec.describe Resource, "Includes" do
5
- describe "#includes" do
6
-
7
- let(:application) { ActiveAdmin::Application.new }
8
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
9
- let(:resource_config) { ActiveAdmin::Resource.new namespace, Post }
10
- let(:dsl){ ActiveAdmin::ResourceDSL.new(resource_config) }
11
-
12
- it "should register the includes in the config" do
13
- dsl.run_registration_block do
14
- includes :taggings, :author
15
- end
16
- expect(resource_config.includes.size).to eq(2)
17
- end
18
-
19
- end
20
- end
21
- end
@@ -1,18 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module ActiveAdmin
4
- RSpec.describe Resource, "Menu" do
5
-
6
- before { load_defaults! }
7
-
8
- let(:application){ ActiveAdmin::Application.new }
9
- let(:namespace){ Namespace.new(application, :admin) }
10
-
11
- def config(options = {})
12
- @config ||= Resource.new(namespace, Category, options)
13
- end
14
-
15
- # TODO...
16
-
17
- end
18
- end
@@ -1,122 +0,0 @@
1
- # -*- coding: UTF-8 -*-
2
-
3
- require 'rails_helper'
4
-
5
- module ActiveAdmin
6
- RSpec.describe Resource, "Naming" do
7
-
8
- before { load_defaults! }
9
-
10
- let(:application){ ActiveAdmin::Application.new }
11
- let(:namespace){ Namespace.new(application, :admin) }
12
-
13
- def config(options = {})
14
- @config ||= Resource.new(namespace, Category, options)
15
- end
16
-
17
- module ::Mock class Resource < ActiveRecord::Base; end; end
18
- module NoActiveModel class Resource; end; end
19
-
20
- describe "singular resource name" do
21
- context "when class" do
22
- it "should be the underscored singular resource name" do
23
- expect(config.resource_name.singular).to eq "category"
24
- end
25
- end
26
- context "when a class in a module" do
27
- it "should underscore the module and the class" do
28
- expect(Resource.new(namespace, Mock::Resource).resource_name.singular).to eq "mock_resource"
29
- end
30
- end
31
- context "when you pass the 'as' option" do
32
- it "should underscore the passed through string" do
33
- expect(config(as: "Blog Category").resource_name.singular).to eq "blog_category"
34
- end
35
- end
36
- end
37
-
38
- describe "resource label" do
39
- it "should return a pretty name" do
40
- expect(config.resource_label).to eq "Category"
41
- end
42
-
43
- it "should return the plural version" do
44
- expect(config.plural_resource_label).to eq "Categories"
45
- end
46
-
47
- context "when the :as option is given" do
48
- it "should return the custom name" do
49
- expect(config(as: "My Category").resource_label).to eq "My Category"
50
- end
51
- end
52
-
53
- context "when a class in a module" do
54
- it "should include the module and the class" do
55
- expect(Resource.new(namespace, Mock::Resource).resource_label).to eq "Mock Resource"
56
- end
57
-
58
- it "should include the module and the pluralized class" do
59
- expect(Resource.new(namespace, Mock::Resource).plural_resource_label).to eq "Mock Resources"
60
- end
61
- end
62
-
63
- describe "I18n integration" do
64
- describe "singular label" do
65
- it "should return the titleized model_name.human" do
66
- expect(config.resource_name).to receive(:translate).and_return "Da category"
67
-
68
- expect(config.resource_label).to eq "Da category"
69
- end
70
- end
71
-
72
- describe "plural label" do
73
- it "should return the titleized plural version defined by i18n if available" do
74
- expect(config.resource_name).to receive(:translate).at_least(:once).and_return "Da categories"
75
- expect(config.plural_resource_label).to eq "Da categories"
76
- end
77
- end
78
-
79
- describe "plural label with not default locale" do
80
- it "should return the titleized plural version defined by i18n with custom :count if available" do
81
- expect(config.resource_name).to receive(:translate).at_least(:once).and_return "Категории"
82
- expect(config.plural_resource_label(count: 3)).to eq "Категории"
83
- end
84
- end
85
-
86
- context "when the :as option is given" do
87
- describe "singular label" do
88
- it "should translate the custom name" do
89
- config = config(as: 'My Category')
90
- expect(config.resource_name).to receive(:translate).and_return "Translated category"
91
- expect(config.resource_label).to eq "Translated category"
92
- end
93
- end
94
-
95
- describe "plural label" do
96
- it "should translate the custom name" do
97
- config = config(as: 'My Category')
98
- expect(config.resource_name).to receive(:translate).at_least(:once).and_return "Translated categories"
99
- expect(config.plural_resource_label).to eq "Translated categories"
100
- end
101
- end
102
- end
103
-
104
- end
105
- end
106
-
107
- describe "duplicate resource names" do
108
- let(:resource_name) { config.resource_name }
109
- let(:duplicate_resource_name) { Resource.new(namespace, Category).resource_name }
110
-
111
- [:==, :===, :eql?].each do |method|
112
- it "are equivalent when compared with #{method}" do
113
- expect(resource_name.public_send(method, duplicate_resource_name)).to eq true
114
- end
115
- end
116
-
117
- it "have identical hash values" do
118
- expect(resource_name.hash).to eq duplicate_resource_name.hash
119
- end
120
- end
121
- end
122
- end
@@ -1,35 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module ActiveAdmin
4
- RSpec.describe Resource, "Ordering" do
5
- describe "#order_by" do
6
-
7
- let(:application) { ActiveAdmin::Application.new }
8
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
9
- let(:resource_config) { ActiveAdmin::Resource.new namespace, Post }
10
- let(:dsl){ ActiveAdmin::ResourceDSL.new(resource_config) }
11
-
12
- it "should register the ordering in the config" do
13
- dsl.run_registration_block do
14
- order_by(:age) do |order_clause|
15
- if order_clause.order == 'desc'
16
- [order_clause.to_sql, 'NULLS LAST'].join(' ')
17
- end
18
- end
19
- end
20
- expect(resource_config.ordering.size).to eq(1)
21
- end
22
-
23
- it "should allow to setup custom ordering class" do
24
- MyOrderClause = Class.new(ActiveAdmin::OrderClause)
25
- dsl.run_registration_block do
26
- config.order_clause = MyOrderClause
27
- end
28
- expect(resource_config.order_clause).to eq(MyOrderClause)
29
- expect(application.order_clause).to eq(ActiveAdmin::OrderClause)
30
-
31
- end
32
-
33
- end
34
- end
35
- end
@@ -1,44 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Resource::PagePresenters do
4
-
5
- let(:namespace){ ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin) }
6
- let(:resource){ namespace.register(Post) }
7
-
8
- it "should have an empty set of configs on initialize" do
9
- expect(resource.page_presenters).to eq ({})
10
- end
11
-
12
- it "should add a show page presenter" do
13
- page_presenter = ActiveAdmin::PagePresenter.new
14
- resource.set_page_presenter(:show, page_presenter)
15
- expect(resource.page_presenters[:show]).to eq page_presenter
16
- end
17
-
18
- it "should add an index page presenter" do
19
- page_presenter = ActiveAdmin::PagePresenter.new({as: :table})
20
- resource.set_page_presenter(:index, page_presenter)
21
- expect(resource.page_presenters[:index].default).to eq page_presenter
22
- end
23
-
24
- describe "#get_page_presenter" do
25
-
26
- it "should return a page config when set" do
27
- page_presenter = ActiveAdmin::PagePresenter.new
28
- resource.set_page_presenter(:index, page_presenter)
29
- expect(resource.get_page_presenter(:index)).to eq page_presenter
30
- end
31
-
32
- it "should return a specific index page config when set" do
33
- page_presenter = ActiveAdmin::PagePresenter.new
34
- resource.set_page_presenter(:index, page_presenter)
35
- expect(resource.get_page_presenter(:index, "table")).to eq page_presenter
36
- end
37
-
38
- it "should return nil when no page config set" do
39
- expect(resource.get_page_presenter(:index)).to eq nil
40
- end
41
-
42
- end
43
-
44
- end
@@ -1,38 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module ActiveAdmin
4
- RSpec.describe Resource, "Pagination" do
5
-
6
- before { load_defaults! }
7
-
8
- let(:application){ ActiveAdmin::Application.new }
9
- let(:namespace){ Namespace.new(application, :admin) }
10
-
11
- def config(options = {})
12
- @config ||= Resource.new(namespace, Category, options)
13
- end
14
-
15
- describe "#paginate" do
16
- it "should default to true" do
17
- expect(config.paginate).to eq true
18
- end
19
-
20
- it "should be settable to false" do
21
- config.paginate = false
22
- expect(config.paginate).to eq false
23
- end
24
- end
25
-
26
- describe "#per_page" do
27
- it "should default to namespace.default_per_page" do
28
- expect(namespace).to receive(:default_per_page).and_return(5)
29
- expect(config.per_page).to eq 5
30
- end
31
-
32
- it "should be settable" do
33
- config.per_page = 5
34
- expect(config.per_page).to eq 5
35
- end
36
- end
37
- end
38
- end
@@ -1,125 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Resource::Routes do
4
-
5
- after do
6
- load_defaults!
7
- reload_routes!
8
- end
9
-
10
- let(:application) { ActiveAdmin.application }
11
- let(:namespace) { application.namespace(:admin) }
12
-
13
- context "when in the admin namespace" do
14
- let(:config) { namespace.resource_for('Category') }
15
-
16
- before do
17
- load_resources { ActiveAdmin.register Category }
18
- end
19
-
20
- let(:category) { Category.new { |c| c.id = 123 } }
21
-
22
- it "should return the route prefix" do
23
- expect(config.route_prefix).to eq 'admin'
24
- end
25
-
26
- it "should return the route collection path" do
27
- expect(config.route_collection_path).to eq '/admin/categories'
28
- end
29
-
30
- it "should return the route instance path" do
31
- expect(config.route_instance_path(category)).to eq '/admin/categories/123'
32
- end
33
- end
34
-
35
- context "when in the root namespace" do
36
- let!(:config) { ActiveAdmin.register Category, namespace: false }
37
-
38
- after(:each) do
39
- application.namespace(:root).unload!
40
- application.namespaces.instance_variable_get(:@namespaces).delete(:root)
41
- end
42
-
43
- it "should have a nil route_prefix" do
44
- expect(config.route_prefix).to eq nil
45
- end
46
-
47
- it "should generate a correct route" do
48
- reload_routes!
49
- expect(config.route_collection_path).to eq "/categories"
50
- end
51
- end
52
-
53
- context "when registering a plural resource" do
54
- class ::News; def self.has_many(*); end end
55
- let!(:config) { ActiveAdmin.register News }
56
- before{ reload_routes! }
57
-
58
- it "should return the plural route with _index" do
59
- expect(config.route_collection_path).to eq "/admin/news"
60
- end
61
- end
62
-
63
- context "when the resource belongs to another resource" do
64
- let(:config) { namespace.resource_for('Post') }
65
-
66
- let :post do
67
- Post.new do |p|
68
- p.id = 3
69
- p.category = Category.new{ |c| c.id = 1 }
70
- end
71
- end
72
-
73
- before do
74
- load_resources do
75
- ActiveAdmin.register Category
76
- ActiveAdmin.register(Post) { belongs_to :category }
77
- end
78
- end
79
-
80
- it "should nest the collection path" do
81
- expect(config.route_collection_path(category_id: 1)).to eq "/admin/categories/1/posts"
82
- end
83
-
84
- it "should nest the instance path" do
85
- expect(config.route_instance_path(post)).to eq "/admin/categories/1/posts/3"
86
- end
87
- end
88
-
89
- context "for batch_action handler" do
90
- before do
91
- load_resources { config.batch_actions = true }
92
- end
93
-
94
- context "when register a singular resource" do
95
-
96
- let :config do
97
- ActiveAdmin.register Category
98
- ActiveAdmin.register Post do
99
- belongs_to :category
100
- end
101
- end
102
-
103
- it "should include :scope and :q params" do
104
- params = ActionController::Parameters.new(category_id: 1, q: { name_equals: "Any" }, scope: :all)
105
- additional_params = { locale: 'en' }
106
- batch_action_path = "/admin/categories/1/posts/batch_action?locale=en&q%5Bname_equals%5D=Any&scope=all"
107
-
108
- expect(config.route_batch_action_path(params, additional_params)).to eq batch_action_path
109
- end
110
- end
111
-
112
- context "when registering a plural resource" do
113
-
114
- class ::News; def self.has_many(*); end end
115
- let(:config) { ActiveAdmin.register News }
116
-
117
- it "should return the plural batch action route with _index and given params" do
118
- params = ActionController::Parameters.new(q: { name_equals: "Any" }, scope: :all)
119
- additional_params = { locale: 'en' }
120
- batch_action_path = "/admin/news/batch_action?locale=en&q%5Bname_equals%5D=Any&scope=all"
121
- expect(config.route_batch_action_path(params, additional_params)).to eq batch_action_path
122
- end
123
- end
124
- end
125
- end
@@ -1,50 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module ActiveAdmin
4
- RSpec.describe Resource, "Scopes" do
5
-
6
- before { load_defaults! }
7
-
8
- let(:application){ ActiveAdmin::Application.new }
9
- let(:namespace){ Namespace.new(application, :admin) }
10
-
11
- def config(options = {})
12
- @config ||= Resource.new(namespace, Category, options)
13
- end
14
-
15
- describe "adding a scope" do
16
-
17
- it "should add a scope" do
18
- config.scope :published
19
- expect(config.scopes.first).to be_a(ActiveAdmin::Scope)
20
- expect(config.scopes.first.name).to eq "Published"
21
- end
22
-
23
- it "should retrive a scope by its id" do
24
- config.scope :published
25
- expect(config.get_scope_by_id(:published).name).to eq "Published"
26
- end
27
-
28
- it "should retrieve a string scope with spaces by its id without conflicts" do
29
- aspace_1 = config.scope "a space"
30
- aspace_2 = config.scope "as pace"
31
- expect(config.get_scope_by_id(aspace_1.id).name).to eq "a space"
32
- expect(config.get_scope_by_id(aspace_2.id).name).to eq "as pace"
33
- end
34
-
35
- it "should not add a scope with the same name twice" do
36
- config.scope :published
37
- config.scope :published
38
- expect(config.scopes.size).to eq 1
39
- end
40
-
41
- it "should update a scope with the same id" do
42
- config.scope :published
43
- expect(config.scopes.first.scope_block).to eq nil
44
- config.scope(:published){ }
45
- expect(config.scopes.first.scope_block).to_not eq nil
46
- end
47
-
48
- end
49
- end
50
- end