activeadmin 1.3.0 → 2.0.0.rc1

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 (423) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +307 -123
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +90 -46
  5. data/README.md +66 -19
  6. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  8. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  9. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  10. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  11. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  12. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  13. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +55 -0
  14. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  15. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  16. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  17. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  18. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  19. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  20. data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
  21. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  22. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  23. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  25. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  26. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  27. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  28. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  29. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  30. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  31. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  32. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  33. data/config/locales/bg.yml +0 -1
  34. data/config/locales/de.yml +10 -0
  35. data/config/locales/en.yml +19 -1
  36. data/config/locales/es.yml +20 -1
  37. data/config/locales/fi.yml +1 -1
  38. data/config/locales/he.yml +0 -1
  39. data/config/locales/hu.yml +4 -0
  40. data/config/locales/it.yml +4 -0
  41. data/config/locales/lt.yml +2 -2
  42. data/config/locales/nb.yml +15 -5
  43. data/config/locales/nl.yml +11 -0
  44. data/config/locales/pl.yml +71 -3
  45. data/config/locales/ru.yml +2 -0
  46. data/config/locales/tr.yml +9 -0
  47. data/config/locales/uk.yml +2 -0
  48. data/config/locales/zh-CN.yml +33 -5
  49. data/docs/.gitignore +1 -0
  50. data/docs/0-installation.md +2 -2
  51. data/docs/1-general-configuration.md +16 -1
  52. data/docs/10-custom-pages.md +14 -0
  53. data/docs/12-arbre-components.md +28 -1
  54. data/docs/13-authorization-adapter.md +40 -21
  55. data/docs/2-resource-customization.md +8 -3
  56. data/docs/3-index-pages/custom-index.md +1 -1
  57. data/docs/3-index-pages/index-as-blog.md +1 -1
  58. data/docs/3-index-pages/index-as-table.md +5 -5
  59. data/docs/3-index-pages.md +17 -0
  60. data/docs/5-forms.md +16 -2
  61. data/docs/8-custom-actions.md +11 -0
  62. data/docs/CNAME +1 -1
  63. data/docs/Gemfile +2 -0
  64. data/docs/Gemfile.lock +249 -0
  65. data/docs/_config.yml +1 -1
  66. data/docs/_includes/toc.html +1 -1
  67. data/docs/_includes/top-menu.html +9 -1
  68. data/docs/documentation.md +1 -1
  69. data/docs/images/tidelift.svg +14 -0
  70. data/docs/index.html +2 -2
  71. data/docs/stylesheets/main.css +26 -2
  72. data/lib/active_admin/abstract_view_factory.rb +13 -51
  73. data/lib/active_admin/application.rb +49 -155
  74. data/lib/active_admin/application_settings.rb +42 -0
  75. data/lib/active_admin/asset_registration.rb +0 -8
  76. data/lib/active_admin/base_controller/authorization.rb +3 -6
  77. data/lib/active_admin/base_controller.rb +6 -6
  78. data/lib/active_admin/batch_actions/controller.rb +2 -2
  79. data/lib/active_admin/batch_actions/resource_extension.rb +4 -4
  80. data/lib/active_admin/callbacks.rb +1 -1
  81. data/lib/active_admin/csv_builder.rb +1 -1
  82. data/lib/active_admin/dependency.rb +1 -69
  83. data/lib/active_admin/deprecation.rb +0 -25
  84. data/lib/active_admin/dsl.rb +1 -8
  85. data/lib/active_admin/dynamic_setting.rb +38 -0
  86. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  87. data/lib/active_admin/engine.rb +5 -0
  88. data/lib/active_admin/error.rb +1 -1
  89. data/lib/active_admin/filters/active_filter.rb +4 -2
  90. data/lib/active_admin/filters/active_sidebar.rb +5 -1
  91. data/lib/active_admin/filters/forms.rb +7 -4
  92. data/lib/active_admin/filters/formtastic_addons.rb +1 -1
  93. data/lib/active_admin/filters/resource_extension.rb +4 -4
  94. data/lib/active_admin/form_builder.rb +97 -62
  95. data/lib/active_admin/generators/boilerplate.rb +1 -1
  96. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  97. data/lib/active_admin/inputs/datepicker_input.rb +8 -1
  98. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  99. data/lib/active_admin/menu.rb +2 -8
  100. data/lib/active_admin/menu_item.rb +4 -32
  101. data/lib/active_admin/namespace.rb +20 -8
  102. data/lib/active_admin/namespace_settings.rb +110 -0
  103. data/lib/active_admin/orm/active_record/comments/comment.rb +2 -2
  104. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +10 -5
  105. data/lib/active_admin/orm/active_record/comments.rb +15 -4
  106. data/lib/active_admin/page_dsl.rb +1 -1
  107. data/lib/active_admin/pundit_adapter.rb +13 -4
  108. data/lib/active_admin/resource/action_items.rb +7 -2
  109. data/lib/active_admin/resource/attributes.rb +7 -4
  110. data/lib/active_admin/resource/menu.rb +3 -3
  111. data/lib/active_admin/resource/naming.rb +3 -3
  112. data/lib/active_admin/resource/routes.rb +9 -4
  113. data/lib/active_admin/resource/scopes.rb +3 -3
  114. data/lib/active_admin/resource/sidebars.rb +1 -1
  115. data/lib/active_admin/resource.rb +2 -2
  116. data/lib/active_admin/resource_collection.rb +2 -2
  117. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  118. data/lib/active_admin/resource_controller/decorators.rb +3 -3
  119. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  120. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  121. data/lib/active_admin/resource_dsl.rb +5 -3
  122. data/lib/active_admin/router.rb +89 -84
  123. data/lib/active_admin/scope.rb +9 -5
  124. data/lib/active_admin/settings_node.rb +19 -0
  125. data/lib/active_admin/version.rb +1 -1
  126. data/lib/active_admin/view_helpers/display_helper.rb +10 -2
  127. data/lib/active_admin/view_helpers/download_format_links_helper.rb +1 -0
  128. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  129. data/lib/active_admin/view_helpers.rb +1 -1
  130. data/lib/active_admin/views/components/active_admin_form.rb +9 -4
  131. data/lib/active_admin/views/components/attributes_table.rb +3 -3
  132. data/lib/active_admin/views/components/menu.rb +32 -0
  133. data/lib/active_admin/views/components/menu_item.rb +58 -0
  134. data/lib/active_admin/views/components/paginated_collection.rb +1 -1
  135. data/lib/active_admin/views/components/scopes.rb +11 -4
  136. data/lib/active_admin/views/components/sidebar.rb +13 -0
  137. data/lib/active_admin/views/components/sidebar_section.rb +0 -3
  138. data/lib/active_admin/views/components/site_title.rb +5 -6
  139. data/lib/active_admin/views/components/status_tag.rb +1 -18
  140. data/lib/active_admin/views/components/table_for.rb +3 -12
  141. data/lib/active_admin/views/components/tabs.rb +15 -3
  142. data/lib/active_admin/views/footer.rb +3 -7
  143. data/lib/active_admin/views/header.rb +3 -15
  144. data/lib/active_admin/views/index_as_blog.rb +1 -1
  145. data/lib/active_admin/views/index_as_grid.rb +25 -25
  146. data/lib/active_admin/views/index_as_table.rb +11 -10
  147. data/lib/active_admin/views/pages/base.rb +30 -53
  148. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  149. data/lib/active_admin/views.rb +1 -1
  150. data/lib/active_admin.rb +9 -4
  151. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  152. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  153. data/lib/generators/active_admin/install/install_generator.rb +6 -2
  154. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -1
  155. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  156. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  157. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  158. data/lib/generators/active_admin/resource/resource_generator.rb +1 -1
  159. data/lib/ransack_ext.rb +3 -3
  160. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  161. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  162. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  163. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  164. metadata +120 -523
  165. data/.github/ISSUE_TEMPLATE.md +0 -20
  166. data/.gitignore +0 -49
  167. data/.mdlrc +0 -1
  168. data/.rubocop.yml +0 -76
  169. data/.simplecov +0 -13
  170. data/.travis.yml +0 -51
  171. data/.yardopts +0 -7
  172. data/Gemfile +0 -58
  173. data/Rakefile +0 -54
  174. data/activeadmin.gemspec +0 -32
  175. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  176. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  177. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  178. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  179. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  180. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  181. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  182. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  183. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  184. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  185. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  186. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  187. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  188. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  189. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  190. data/codecov.yml +0 -25
  191. data/config/i18n-tasks.yml +0 -26
  192. data/config/mdl_style.rb +0 -9
  193. data/cucumber.yml +0 -3
  194. data/features/action_item.feature +0 -73
  195. data/features/authorization.feature +0 -64
  196. data/features/authorization_cancan.feature +0 -52
  197. data/features/authorization_pundit.feature +0 -37
  198. data/features/belongs_to.feature +0 -124
  199. data/features/breadcrumb.feature +0 -75
  200. data/features/comments/commenting.feature +0 -178
  201. data/features/comments/viewing_index.feature +0 -19
  202. data/features/create_another.feature +0 -55
  203. data/features/dashboard.feature +0 -16
  204. data/features/decorators.feature +0 -43
  205. data/features/development_reloading.feature +0 -28
  206. data/features/edit_page.feature +0 -116
  207. data/features/favicon.feature +0 -20
  208. data/features/first_boot.feature +0 -16
  209. data/features/footer.feature +0 -28
  210. data/features/global_navigation.feature +0 -29
  211. data/features/i18n.feature +0 -55
  212. data/features/index/batch_actions.feature +0 -218
  213. data/features/index/filters.feature +0 -250
  214. data/features/index/format_as_csv.feature +0 -220
  215. data/features/index/formats.feature +0 -88
  216. data/features/index/index_as_block.feature +0 -15
  217. data/features/index/index_as_blog.feature +0 -69
  218. data/features/index/index_as_grid.feature +0 -45
  219. data/features/index/index_as_table.feature +0 -291
  220. data/features/index/index_blank_slate.feature +0 -83
  221. data/features/index/index_parameters.feature +0 -75
  222. data/features/index/index_scope_to.feature +0 -56
  223. data/features/index/index_scopes.feature +0 -285
  224. data/features/index/page_title.feature +0 -41
  225. data/features/index/pagination.feature +0 -63
  226. data/features/index/switch_index_view.feature +0 -73
  227. data/features/menu.feature +0 -72
  228. data/features/meta_tags.feature +0 -21
  229. data/features/new_page.feature +0 -136
  230. data/features/registering_assets.feature +0 -38
  231. data/features/registering_pages.feature +0 -237
  232. data/features/registering_resources.feature +0 -33
  233. data/features/renamed_resource.feature +0 -30
  234. data/features/root_to.feature +0 -17
  235. data/features/show/attributes_table_title.feature +0 -54
  236. data/features/show/columns.feature +0 -40
  237. data/features/show/default_content.feature +0 -44
  238. data/features/show/page_title.feature +0 -58
  239. data/features/show/tabs.feature +0 -33
  240. data/features/sidebar_sections.feature +0 -210
  241. data/features/site_title.feature +0 -47
  242. data/features/specifying_actions.feature +0 -118
  243. data/features/step_definitions/action_item_steps.rb +0 -7
  244. data/features/step_definitions/action_link_steps.rb +0 -19
  245. data/features/step_definitions/additional_web_steps.rb +0 -81
  246. data/features/step_definitions/asset_steps.rb +0 -15
  247. data/features/step_definitions/attribute_steps.rb +0 -18
  248. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  249. data/features/step_definitions/batch_action_steps.rb +0 -81
  250. data/features/step_definitions/blog_steps.rb +0 -3
  251. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  252. data/features/step_definitions/column_steps.rb +0 -8
  253. data/features/step_definitions/comment_steps.rb +0 -32
  254. data/features/step_definitions/configuration_steps.rb +0 -100
  255. data/features/step_definitions/dashboard_steps.rb +0 -15
  256. data/features/step_definitions/factory_steps.rb +0 -35
  257. data/features/step_definitions/filter_steps.rb +0 -47
  258. data/features/step_definitions/flash_steps.rb +0 -11
  259. data/features/step_definitions/footer_steps.rb +0 -11
  260. data/features/step_definitions/format_steps.rb +0 -56
  261. data/features/step_definitions/i18n_steps.rb +0 -11
  262. data/features/step_definitions/index_scope_steps.rb +0 -29
  263. data/features/step_definitions/index_views_steps.rb +0 -3
  264. data/features/step_definitions/layout_steps.rb +0 -3
  265. data/features/step_definitions/member_link_steps.rb +0 -7
  266. data/features/step_definitions/menu_steps.rb +0 -11
  267. data/features/step_definitions/meta_tag_steps.rb +0 -3
  268. data/features/step_definitions/pagination_steps.rb +0 -15
  269. data/features/step_definitions/sidebar_steps.rb +0 -11
  270. data/features/step_definitions/site_title_steps.rb +0 -17
  271. data/features/step_definitions/tab_steps.rb +0 -8
  272. data/features/step_definitions/table_steps.rb +0 -116
  273. data/features/step_definitions/user_steps.rb +0 -52
  274. data/features/step_definitions/web_steps.rb +0 -86
  275. data/features/sti_resource.feature +0 -65
  276. data/features/strong_parameters.feature +0 -69
  277. data/features/support/env.rb +0 -122
  278. data/features/support/paths.rb +0 -73
  279. data/features/support/regular_env.rb +0 -7
  280. data/features/support/reload_env.rb +0 -7
  281. data/features/support/selectors.rb +0 -45
  282. data/features/users/logging_in.feature +0 -36
  283. data/features/users/logging_out.feature +0 -13
  284. data/features/users/resetting_password.feature +0 -34
  285. data/gemfiles/rails_42.gemfile +0 -10
  286. data/gemfiles/rails_50.gemfile +0 -10
  287. data/gemfiles/rails_51.gemfile +0 -10
  288. data/gemfiles/rails_52.gemfile +0 -11
  289. data/lib/active_admin/event.rb +0 -24
  290. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  291. data/lib/active_admin/helpers/settings.rb +0 -114
  292. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  293. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  294. data/spec/bug_report_templates_spec.rb +0 -26
  295. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  296. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  297. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  298. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  299. data/spec/javascripts/fixtures/flashes.html +0 -2
  300. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  301. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  302. data/spec/javascripts/support/jasmine.yml +0 -74
  303. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  304. data/spec/rails_helper.rb +0 -59
  305. data/spec/requests/default_namespace_spec.rb +0 -81
  306. data/spec/requests/memory_spec.rb +0 -25
  307. data/spec/requests/stylesheets_spec.rb +0 -18
  308. data/spec/spec_helper.rb +0 -1
  309. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  310. data/spec/support/active_admin_request_helpers.rb +0 -39
  311. data/spec/support/rails_template.rb +0 -153
  312. data/spec/support/rails_template_with_data.rb +0 -327
  313. data/spec/support/templates/admin/stores.rb +0 -7
  314. data/spec/support/templates/en.yml +0 -8
  315. data/spec/support/templates/manifest.js +0 -3
  316. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  317. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  318. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  319. data/spec/support/templates/policies/application_policy.rb +0 -44
  320. data/spec/support/templates/policies/category_policy.rb +0 -7
  321. data/spec/support/templates/policies/post_policy.rb +0 -15
  322. data/spec/support/templates/policies/store_policy.rb +0 -11
  323. data/spec/support/templates/policies/user_policy.rb +0 -11
  324. data/spec/support/templates/post_decorator.rb +0 -24
  325. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  326. data/spec/unit/action_builder_spec.rb +0 -158
  327. data/spec/unit/active_admin_spec.rb +0 -11
  328. data/spec/unit/application_spec.rb +0 -184
  329. data/spec/unit/asset_registration_spec.rb +0 -81
  330. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  331. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  332. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  333. data/spec/unit/auto_link_spec.rb +0 -93
  334. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  335. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  336. data/spec/unit/belongs_to_spec.rb +0 -76
  337. data/spec/unit/cancan_adapter_spec.rb +0 -43
  338. data/spec/unit/comments_spec.rb +0 -176
  339. data/spec/unit/component_spec.rb +0 -18
  340. data/spec/unit/config_shared_examples.rb +0 -59
  341. data/spec/unit/controller_filters_spec.rb +0 -41
  342. data/spec/unit/csv_builder_spec.rb +0 -313
  343. data/spec/unit/dependency_spec.rb +0 -135
  344. data/spec/unit/devise_spec.rb +0 -110
  345. data/spec/unit/dsl_spec.rb +0 -120
  346. data/spec/unit/filters/active_filter_spec.rb +0 -189
  347. data/spec/unit/filters/active_spec.rb +0 -24
  348. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  349. data/spec/unit/filters/resource_spec.rb +0 -128
  350. data/spec/unit/form_builder_spec.rb +0 -990
  351. data/spec/unit/generators/install_spec.rb +0 -31
  352. data/spec/unit/helpers/collection_spec.rb +0 -68
  353. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  354. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  355. data/spec/unit/helpers/settings_spec.rb +0 -30
  356. data/spec/unit/i18n_spec.rb +0 -29
  357. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  358. data/spec/unit/menu_collection_spec.rb +0 -62
  359. data/spec/unit/menu_item_spec.rb +0 -141
  360. data/spec/unit/menu_spec.rb +0 -71
  361. data/spec/unit/namespace/authorization_spec.rb +0 -27
  362. data/spec/unit/namespace/register_page_spec.rb +0 -99
  363. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  364. data/spec/unit/namespace_spec.rb +0 -124
  365. data/spec/unit/order_clause_spec.rb +0 -81
  366. data/spec/unit/page_controller_spec.rb +0 -5
  367. data/spec/unit/page_spec.rb +0 -128
  368. data/spec/unit/pretty_format_spec.rb +0 -82
  369. data/spec/unit/pundit_adapter_spec.rb +0 -98
  370. data/spec/unit/resource/action_items_spec.rb +0 -69
  371. data/spec/unit/resource/attributes_spec.rb +0 -49
  372. data/spec/unit/resource/includes_spec.rb +0 -21
  373. data/spec/unit/resource/menu_spec.rb +0 -18
  374. data/spec/unit/resource/naming_spec.rb +0 -122
  375. data/spec/unit/resource/ordering_spec.rb +0 -35
  376. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  377. data/spec/unit/resource/pagination_spec.rb +0 -38
  378. data/spec/unit/resource/routes_spec.rb +0 -125
  379. data/spec/unit/resource/scopes_spec.rb +0 -50
  380. data/spec/unit/resource/sidebars_spec.rb +0 -43
  381. data/spec/unit/resource_collection_spec.rb +0 -175
  382. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  383. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  384. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  385. data/spec/unit/resource_controller_spec.rb +0 -273
  386. data/spec/unit/resource_registration_spec.rb +0 -61
  387. data/spec/unit/resource_spec.rb +0 -320
  388. data/spec/unit/routing_spec.rb +0 -211
  389. data/spec/unit/scope_spec.rb +0 -209
  390. data/spec/unit/settings_spec.rb +0 -117
  391. data/spec/unit/view_factory_spec.rb +0 -19
  392. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  393. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  394. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  395. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  396. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  397. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  398. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  399. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  400. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  401. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  402. data/spec/unit/views/components/columns_spec.rb +0 -187
  403. data/spec/unit/views/components/index_list_spec.rb +0 -49
  404. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  405. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  406. data/spec/unit/views/components/panel_spec.rb +0 -58
  407. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  408. data/spec/unit/views/components/site_title_spec.rb +0 -76
  409. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  410. data/spec/unit/views/components/table_for_spec.rb +0 -436
  411. data/spec/unit/views/components/tabs_spec.rb +0 -67
  412. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  413. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  414. data/spec/unit/views/pages/form_spec.rb +0 -54
  415. data/spec/unit/views/pages/index_spec.rb +0 -60
  416. data/spec/unit/views/pages/layout_spec.rb +0 -59
  417. data/spec/unit/views/pages/show_spec.rb +0 -32
  418. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  419. data/tasks/docs.rake +0 -64
  420. data/tasks/lint.rake +0 -21
  421. data/tasks/local.rake +0 -25
  422. data/tasks/parallel_tests.rake +0 -66
  423. data/tasks/test.rake +0 -29
@@ -1,56 +0,0 @@
1
- Feature: Index Scope To
2
-
3
- Viewing resource configs scoped to another object
4
-
5
- Background:
6
- Given 10 posts exist
7
- And a post with the title "Hello World" written by "John Doe" exists
8
- And a published post with the title "Hello World" written by "John Doe" exists
9
- Given an index configuration of:
10
- """
11
- ActiveAdmin.register Post do
12
- # Scope section to a specific author
13
- scope_to do
14
- User.find_by_first_name_and_last_name "John", "Doe"
15
- end
16
-
17
- # Set up some scopes
18
- scope :all, default: true
19
- scope :published do |posts|
20
- posts.where "published_date IS NOT NULL"
21
- end
22
- end
23
- """
24
-
25
- Scenario: Viewing the default scope counts
26
- When I am on the index page for posts
27
- Then I should see the scope "All" selected
28
- And I should see the scope "All" with the count 2
29
- And I should see 2 posts in the table
30
-
31
- When I follow "Published"
32
- Then I should see 1 posts in the table
33
-
34
- Scenario: Viewing the index with conditional scope :if
35
- Given an index configuration of:
36
- """
37
- ActiveAdmin.register Post do
38
- scope_to if: proc{ false } do
39
- User.find_by_first_name_and_last_name("John", "Doe")
40
- end
41
- end
42
- """
43
- When I am on the index page for posts
44
- Then I should see 12 posts in the table
45
-
46
- Scenario: Viewing the index with conditional scope :unless
47
- Given an index configuration of:
48
- """
49
- ActiveAdmin.register Post do
50
- scope_to unless: proc{ true } do
51
- User.find_by_first_name_and_last_name("John", "Doe")
52
- end
53
- end
54
- """
55
- When I am on the index page for posts
56
- Then I should see 12 posts in the table
@@ -1,285 +0,0 @@
1
- Feature: Index Scoping
2
-
3
- Viewing resources and scoping them
4
-
5
- Scenario: Viewing resources with one scope and no default
6
- Given 3 posts exist
7
- And an index configuration of:
8
- """
9
- ActiveAdmin.register Post do
10
- scope :all
11
- end
12
- """
13
- Then I should see the scope "All" not selected
14
- And I should see the scope "All" with the count 3
15
- And I should see 3 posts in the table
16
-
17
- Scenario: Viewing resources with one scope with dynamic name
18
- Given 3 posts exist
19
- And an index configuration of:
20
- """
21
- ActiveAdmin.register Post do
22
- scope -> { scope_title }, :all
23
-
24
- controller do
25
- def scope_title
26
- 'Neat scope'
27
- end
28
-
29
- helper_method :scope_title
30
- end
31
- end
32
- """
33
- Then I should see the scope with label "Neat scope"
34
- And I should see 3 posts in the table
35
- When I follow "Neat scope"
36
- And I should see 3 posts in the table
37
- And I should see the current scope with label "Neat scope"
38
-
39
- Scenario: Viewing resources with one scope as the default
40
- Given 3 posts exist
41
- And an index configuration of:
42
- """
43
- ActiveAdmin.register Post do
44
- scope :all, default: true
45
- end
46
- """
47
- Then I should see the scope "All" selected
48
- And I should see the scope "All" with the count 3
49
- And I should see 3 posts in the table
50
-
51
- Scenario: Viewing resources with one scope that is set as not default
52
- Given 3 posts exist
53
- And an index configuration of:
54
- """
55
- ActiveAdmin.register Post do
56
- scope :all, default: proc{ false }
57
- end
58
- """
59
- Then I should see the scope "All" not selected
60
- And I should see the scope "All" with the count 3
61
- And I should see 3 posts in the table
62
-
63
- Scenario: Viewing resources with a scope and no results
64
- Given 3 posts exist
65
- And an index configuration of:
66
- """
67
- ActiveAdmin.register Post do
68
- scope :all, default: true
69
- filter :title
70
- end
71
- """
72
- When I fill in "Title" with "Non Existing Post"
73
- And I press "Filter"
74
- Then I should see the scope "All" selected
75
-
76
-
77
- Scenario: Viewing resources with a scope but scope_count turned off
78
- Given 3 posts exist
79
- And an index configuration of:
80
- """
81
- ActiveAdmin.register Post do
82
- scope :all, default: true
83
- index as: :table, scope_count: false
84
- end
85
- """
86
- Then I should see the scope "All" selected
87
- And I should see the scope "All" with no count
88
- And I should see 3 posts in the table
89
-
90
- @scope
91
- Scenario: Viewing resources with a scope and scope count turned off for a single scope
92
- Given 3 posts exist
93
- And an index configuration of:
94
- """
95
- ActiveAdmin.register Post do
96
- scope :all, default: true, show_count: false
97
- end
98
- """
99
- Then I should see the scope "All" selected
100
- And I should see the scope "All" with no count
101
- And I should see 3 posts in the table
102
-
103
- Scenario: Viewing resources when scoping
104
- Given 2 posts exist
105
- And 3 published posts exist
106
- And an index configuration of:
107
- """
108
- ActiveAdmin.register Post do
109
- scope :all, default: true
110
- scope :published do |posts|
111
- posts.where("published_date IS NOT NULL")
112
- end
113
- end
114
- """
115
- Then I should see the scope "All" with the count 5
116
- And I should see 5 posts in the table
117
- And I should see the scope "Published" with the count 3
118
- When I follow "Published"
119
- Then I should see the scope "Published" selected
120
- Then I should see the current scope with label "Published"
121
- And I should see 3 posts in the table
122
-
123
- Scenario: Viewing resources when scoping and filtering
124
- Given 2 posts written by "Daft Punk" exist
125
- Given 1 published posts written by "Daft Punk" exist
126
-
127
- Given 1 posts written by "Alfred" exist
128
- Given 2 published posts written by "Alfred" exist
129
-
130
- And an index configuration of:
131
- """
132
- ActiveAdmin.register Post do
133
- scope :all, default: true
134
- scope :published do |posts|
135
- posts.where("published_date IS NOT NULL")
136
- end
137
- end
138
- """
139
- Then I should see the scope "All" with the count 6
140
- And I should see the scope "Published" with the count 3
141
- And I should see 6 posts in the table
142
-
143
- When I follow "Published"
144
- Then I should see the scope "Published" selected
145
- And I should see the current scope with label "Published"
146
- And I should see the scope "All" with the count 6
147
- And I should see the scope "Published" with the count 3
148
- And I should see 3 posts in the table
149
-
150
- When I select "Daft Punk" from "Author"
151
- And I press "Filter"
152
-
153
- Then I should see the scope "Published" selected
154
- And I should see the scope "All" with the count 3
155
- And I should see the scope "Published" with the count 1
156
- And I should see 1 posts in the table
157
-
158
- Scenario: Viewing resources with optional scopes
159
- Given 3 posts exist
160
- And an index configuration of:
161
- """
162
- ActiveAdmin.register Post do
163
- scope :all, if: proc { false }
164
- scope "Shown", if: proc { true } do |posts|
165
- posts
166
- end
167
- scope "Default", default: true do |posts|
168
- posts
169
- end
170
- scope 'Today', if: proc { false } do |posts|
171
- posts.where(["created_at > ? AND created_at < ?", ::Time.zone.now.beginning_of_day, ::Time.zone.now.end_of_day])
172
- end
173
- end
174
- """
175
- Then I should see the scope "Default" selected
176
- And I should not see the scope "All"
177
- And I should not see the scope "Today"
178
- And I should see the scope "Shown"
179
- And I should see the scope "Default" with the count 3
180
-
181
- Scenario: Viewing resources with multiple scopes as blocks
182
- Given 3 posts exist
183
- And an index configuration of:
184
- """
185
- ActiveAdmin.register Post do
186
- scope 'Today', default: true do |posts|
187
- posts.where(["created_at > ? AND created_at < ?", ::Time.zone.now.beginning_of_day, ::Time.zone.now.end_of_day])
188
- end
189
- scope 'Tomorrow' do |posts|
190
- posts.where(["created_at > ? AND created_at < ?", ::Time.zone.now.beginning_of_day + 1.day, ::Time.zone.now.end_of_day + 1.day])
191
- end
192
- end
193
- """
194
- Then I should see the scope "Today" selected
195
- And I should see the scope "Tomorrow" not selected
196
- And I should see the scope "Today" with the count 3
197
- And I should see the scope "Tomorrow" with the count 0
198
- And I should see 3 posts in the table
199
- And I should see a link to "Tomorrow"
200
-
201
- When I follow "Tomorrow"
202
- Then I should see the scope "Tomorrow" selected
203
- And I should see the scope "Today" not selected
204
- And I should see a link to "Today"
205
- And I should see the current scope with label "Tomorrow"
206
-
207
- Scenario: Viewing resources with scopes when scoping to user
208
- Given 2 posts written by "Daft Punk" exist
209
- And a post with the title "Monkey Wrench" written by "Foo Fighters" exists
210
- And a post with the title "Everlong" written by "Foo Fighters" exists
211
- And an index configuration of:
212
- """
213
- ActiveAdmin.register Post do
214
- scope_to :current_user
215
- scope :all, default: true
216
-
217
- filter :title
218
-
219
- controller do
220
- def current_user
221
- User.find_by_username('foo_fighters')
222
- end
223
- end
224
- end
225
- """
226
- Then I should see the scope "All" selected
227
- And I should see the scope "All" with the count 2
228
- When I fill in "Title" with "Monkey"
229
- And I press "Filter"
230
- Then I should see the scope "All" selected
231
- And I should see the scope "All" with the count 1
232
-
233
- Scenario: Viewing resources when scoping and filtering and group bys and stuff
234
- Given 2 posts written by "Daft Punk" exist
235
- Given 1 published posts written by "Daft Punk" exist
236
-
237
- Given 1 posts written by "Alfred" exist
238
-
239
- And an index configuration of:
240
- """
241
- ActiveAdmin.register Post do
242
- scope :all, default: true
243
- scope :published do |posts|
244
- posts.where("published_date IS NOT NULL")
245
- end
246
- scope :single do |posts|
247
- posts.page(1).per(1)
248
- end
249
-
250
- index do
251
- column :author_id
252
- column :count
253
- end
254
-
255
- config.sort_order = "author_id_asc"
256
-
257
- controller do
258
- def scoped_collection
259
- Post.select("author_id, count(*) as count").group("author_id")
260
- end
261
- end
262
- end
263
- """
264
- Then I should see the scope "All" with the count 2
265
- And I should see the scope "Published" with the count 1
266
- And I should see the scope "Single" with the count 1
267
- And I should see 2 posts in the table
268
-
269
- When I follow "Single"
270
- Then I should see 1 posts in the table
271
-
272
- When I follow "Published"
273
- Then I should see the scope "Published" selected
274
- And I should see the scope "All" with the count 2
275
- And I should see the scope "Published" with the count 1
276
- And I should see 1 posts in the table
277
-
278
- When I select "Daft Punk" from "Author"
279
- And I press "Filter"
280
-
281
- Then I should see the scope "Published" selected
282
- And I should see the scope "All" with the count 1
283
- And I should see the scope "Published" with the count 1
284
- And I should see 1 posts in the table
285
- And I should see the current scope with label "Published"
@@ -1,41 +0,0 @@
1
- Feature: Index - Page Title
2
-
3
- Modifying the page title on the index screen
4
-
5
- Scenario: Set a string as the title
6
- Given an index configuration of:
7
- """
8
- ActiveAdmin.register Post do
9
- index title: "Awesome Title"
10
- end
11
- """
12
- Then I should see the page title "Awesome Title"
13
-
14
- Scenario: Set the title using a proc
15
- Given an index configuration of:
16
- """
17
- ActiveAdmin.register Post do
18
- index title: proc{ 'Custom title from proc' }
19
- end
20
- """
21
- Then I should see the page title "Custom title from proc"
22
-
23
- Scenario: Set the title using a proc that uses the available resource class
24
- Given an index configuration of:
25
- """
26
- ActiveAdmin.register Post do
27
- index title: proc{ "List of #{resource_class.model_name.plural}" }
28
- end
29
- """
30
- Then I should see the page title "List of posts"
31
-
32
- Scenario: Set the title in controller
33
- Given an index configuration of:
34
- """
35
- ActiveAdmin.register Post do
36
- controller do
37
- before_action { @page_title = "List of #{resource_class.model_name.plural}" }
38
- end
39
- end
40
- """
41
- Then I should see the page title "List of posts"
@@ -1,63 +0,0 @@
1
- Feature: Index Pagination
2
-
3
- Background:
4
- Scenario: Viewing index when one page of resources exist
5
- Given an index configuration of:
6
- """
7
- ActiveAdmin.register Post
8
- """
9
- Given 20 posts exist
10
- When I am on the index page for posts
11
- Then I should see "Displaying all 20 Posts"
12
- And I should not see pagination
13
-
14
- Scenario: Viewing index when multiple pages of resources exist
15
- Given an index configuration of:
16
- """
17
- ActiveAdmin.register Post
18
- """
19
- Given 31 posts exist
20
- When I am on the index page for posts
21
- Then I should see pagination with 2 pages
22
-
23
- Scenario: Viewing index with a custom per page set
24
- Given an index configuration of:
25
- """
26
- ActiveAdmin.register Post do
27
- config.per_page = 2
28
- end
29
- """
30
- Given 3 posts exist
31
- When I am on the index page for posts
32
- Then I should see pagination with 2 pages
33
- And I should see "Displaying Posts 1 - 2 of 3 in total"
34
-
35
- Scenario: Viewing index with pagination disabled
36
- Given an index configuration of:
37
- """
38
- ActiveAdmin.register Post do
39
- config.paginate = false
40
- end
41
- """
42
- Given 31 posts exist
43
- When I am on the index page for posts
44
- Then I should not see pagination
45
-
46
- Scenario: Viewing index with pagination_total set to false
47
- Given an index configuration of:
48
- """
49
- ActiveAdmin.register Post do
50
- config.per_page = 10
51
- index pagination_total: false do
52
- end
53
- end
54
- """
55
- Given 11 posts exist
56
- When I am on the index page for posts
57
- Then I should see "Displaying Posts 1 - 10"
58
- And I should not see "11 in total"
59
- And I should see the pagination "Next" link
60
-
61
- When I follow "Next"
62
- Then I should see "Displaying Posts 11 - 11"
63
- And I should not see the pagination "Next" link
@@ -1,73 +0,0 @@
1
- Feature: Switch Index View
2
-
3
- In order to switch index views
4
- As a user
5
- I want to view links to views
6
-
7
- Scenario: Show default Page Presenter
8
- Given a post with the title "Hello World from Table" exists
9
- And an index configuration of:
10
- """
11
- ActiveAdmin.register Post do
12
- index as: :table do
13
- column :title
14
- end
15
- index as: :block do |post|
16
- span(link_to(post.title, admin_post_path(post)))
17
- end
18
- end
19
- """
20
- Then I should see "Hello World from Table" within ".index_as_table"
21
-
22
- Scenario: Show default Page Presenter when default is specified
23
- Given a post with the title "Hello World from Table" exists
24
- And an index configuration of:
25
- """
26
- ActiveAdmin.register Post do
27
- index as: :block do |post|
28
- span(link_to(post.title, admin_post_path(post)))
29
- end
30
- index as: :table, default: true do
31
- column :title
32
- end
33
- end
34
- """
35
- Then I should see "Hello World from Table" within ".index_as_table"
36
-
37
- Scenario: Show links to different page views
38
- Given a post with the title "Hello World from Table" exists
39
- And an index configuration of:
40
- """
41
- ActiveAdmin.register Post do
42
- index as: :block do |post|
43
- span(link_to(post.title, admin_post_path(post)))
44
- end
45
- index as: :table, default: true do
46
- column :title
47
- end
48
- end
49
- """
50
- Then I should see "Hello World from Table" within ".index_as_table"
51
- And I should see a link to "Table"
52
- And I should see a link to "List"
53
-
54
- Scenario: Show change between page views
55
- Given a post with the title "Hey from Table" and body "My body is awesome" exists
56
- And an index configuration of:
57
- """
58
- ActiveAdmin.register Post do
59
- index as: :block do |post|
60
- span(link_to(post.title, admin_post_path(post)))
61
- end
62
- index as: :table, default: true do
63
- column :title
64
- column :body
65
- end
66
- end
67
- """
68
- Then I should see "My body is awesome" within ".index_as_table"
69
- When I click "List"
70
- Then I should not see "My body is awesome" within ".index_as_block"
71
-
72
-
73
-
@@ -1,72 +0,0 @@
1
- Feature: Menu
2
-
3
- Background:
4
- Given I am logged in
5
-
6
- Scenario: Hide the menu item
7
- Given a configuration of:
8
- """
9
- ActiveAdmin.register Post do
10
- menu false
11
- end
12
- """
13
- When I am on the dashboard
14
- Then I should not see a menu item for "Posts"
15
-
16
- Scenario: Set the menu item label
17
- Given a configuration of:
18
- """
19
- ActiveAdmin.register Post do
20
- menu label: "Articles"
21
- end
22
- """
23
- When I am on the dashboard
24
- Then I should see a menu item for "Articles"
25
- And I should not see a menu item for "Posts"
26
-
27
- Scenario: Add a non-resource menu item
28
- Given a configuration of:
29
- """
30
- ActiveAdmin.application.namespace :admin do |admin|
31
- admin.build_menu do |menu|
32
- menu.add label: "Custom Menu", url: :admin_dashboard_path
33
- end
34
- end
35
- """
36
- When I am on the dashboard
37
- Then I should see a menu item for "Custom Menu"
38
- When I follow "Custom Menu"
39
- Then I should be on the admin dashboard page
40
-
41
- Scenario: Adding a resource as a sub menu item
42
- Given a configuration of:
43
- """
44
- ActiveAdmin.register User
45
- ActiveAdmin.register Post do
46
- menu parent: 'Users'
47
- end
48
- """
49
- When I am on the dashboard
50
- Then I should see a menu item for "Users"
51
- And I should not see a menu item for "Posts"
52
- When I follow "Users"
53
- Then the "Users" tab should be selected
54
- And I should see a nested menu item for "Posts"
55
-
56
- Scenario: Adding a resources as a sub menu items
57
- Given a configuration of:
58
- """
59
- ActiveAdmin.register Category do
60
- menu parent: 'Anything'
61
- end
62
- ActiveAdmin.register Post do
63
- menu parent: 'Anything'
64
- end
65
- """
66
- When I am on the dashboard
67
- Then I should see a menu item for "Anything"
68
- And I should not see a menu item for "Categories"
69
- And I should not see a menu item for "Posts"
70
- And I should see a nested menu item for "Categories"
71
- And I should see a nested menu item for "Posts"
72
-
@@ -1,21 +0,0 @@
1
- Feature: Meta Tag
2
-
3
- Add custom meta tags to head of pages.
4
-
5
- Background:
6
- Given a configuration of:
7
- """
8
- ActiveAdmin.register Post
9
- ActiveAdmin.application.meta_tags = { author: 'My Company' }
10
- ActiveAdmin.application.meta_tags_for_logged_out_pages = { robots: 'noindex' }
11
- """
12
-
13
- Scenario: Logged out views include custom meta tags
14
- Given I am logged out
15
- When I am on the login page
16
- Then the site should contain a meta tag with name "robots" and content "noindex"
17
-
18
- Scenario: Logged in views include custom meta tags
19
- Given I am logged in
20
- When I am on the dashboard
21
- Then the site should contain a meta tag with name "author" and content "My Company"