yousty-activeadmin 1.0.4.pre → 1.0.5.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +261 -211
  3. data/CONTRIBUTING.md +73 -39
  4. data/Gemfile +38 -20
  5. data/Guardfile +1 -0
  6. data/LICENSE +1 -1
  7. data/README.md +48 -24
  8. data/Rakefile +12 -4
  9. data/activeadmin.gemspec +21 -26
  10. data/app/assets/javascripts/active_admin/application.js.coffee +34 -5
  11. data/app/assets/javascripts/active_admin/base.js.coffee +11 -2
  12. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
  13. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
  14. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
  15. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +3 -4
  16. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +51 -55
  17. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
  18. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
  19. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
  20. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
  21. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +29 -58
  22. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +2 -3
  23. data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
  24. data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +51 -15
  25. data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
  26. data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
  27. data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
  28. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
  29. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
  31. data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -12
  32. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +3 -1
  33. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  34. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  35. data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
  36. data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +0 -0
  37. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
  38. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  39. data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +1 -0
  40. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  41. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  42. data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
  43. data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -0
  44. data/app/assets/stylesheets/active_admin/mixins/{_gradients.css.scss → _gradients.scss} +1 -1
  45. data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
  46. data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
  47. data/app/assets/stylesheets/active_admin/mixins/{_rounded.css.scss → _rounded.scss} +0 -0
  48. data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +7 -1
  49. data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -0
  50. data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
  51. data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
  52. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +10 -7
  53. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  54. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  55. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
  56. data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
  57. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  58. data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  59. data/app/views/active_admin/devise/sessions/new.html.erb +8 -8
  60. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  61. data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
  62. data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
  63. data/config/locales/ar.yml +120 -0
  64. data/config/locales/bg.yml +26 -6
  65. data/config/locales/bs.yml +122 -0
  66. data/config/locales/ca.yml +10 -1
  67. data/config/locales/cs.yml +7 -2
  68. data/config/locales/da.yml +7 -3
  69. data/config/locales/de-CH.yml +14 -31
  70. data/config/locales/de.yml +33 -33
  71. data/config/locales/el.yml +127 -0
  72. data/config/locales/en-GB.yml +11 -4
  73. data/config/locales/en.yml +21 -4
  74. data/config/locales/{es_MX.yml → es-MX.yml} +14 -24
  75. data/config/locales/es.yml +32 -25
  76. data/config/locales/fa.yml +120 -0
  77. data/config/locales/fi.yml +9 -5
  78. data/config/locales/fr.yml +28 -12
  79. data/config/locales/he.yml +7 -3
  80. data/config/locales/hr.yml +42 -11
  81. data/config/locales/hu.yml +10 -3
  82. data/config/locales/it.yml +31 -3
  83. data/config/locales/ja.yml +17 -4
  84. data/config/locales/ko.yml +7 -1
  85. data/config/locales/lt.yml +42 -11
  86. data/config/locales/lv.yml +7 -3
  87. data/config/locales/{no-NB.yml → nb.yml} +46 -15
  88. data/config/locales/nl.yml +36 -5
  89. data/config/locales/pl.yml +13 -8
  90. data/config/locales/pt-BR.yml +36 -5
  91. data/config/locales/pt-PT.yml +8 -4
  92. data/config/locales/ro.yml +7 -3
  93. data/config/locales/ru.yml +26 -5
  94. data/config/locales/sv-SE.yml +9 -5
  95. data/config/locales/tr.yml +10 -3
  96. data/config/locales/uk.yml +36 -12
  97. data/config/locales/vi.yml +7 -3
  98. data/config/locales/zh-CN.yml +26 -10
  99. data/config/locales/zh-TW.yml +19 -13
  100. data/docs/0-installation.md +14 -6
  101. data/docs/1-general-configuration.md +8 -5
  102. data/docs/10-custom-pages.md +68 -70
  103. data/docs/11-decorators.md +48 -59
  104. data/docs/12-arbre-components.md +79 -73
  105. data/docs/13-authorization-adapter.md +128 -107
  106. data/docs/14-gotchas.md +90 -0
  107. data/docs/2-resource-customization.md +82 -15
  108. data/docs/3-index-pages.md +71 -12
  109. data/docs/3-index-pages/custom-index.md +31 -0
  110. data/docs/3-index-pages/index-as-table.md +45 -2
  111. data/docs/4-csv-format.md +1 -1
  112. data/docs/5-forms.md +78 -29
  113. data/docs/6-show-pages.md +31 -3
  114. data/docs/7-sidebars.md +46 -25
  115. data/docs/8-custom-actions.md +98 -77
  116. data/docs/9-batch-actions.md +211 -133
  117. data/docs/README.md +24 -0
  118. data/features/action_item.feature +3 -3
  119. data/features/authorization_pundit.feature +37 -0
  120. data/features/belongs_to.feature +3 -0
  121. data/features/breadcrumb.feature +48 -0
  122. data/features/comments/commenting.feature +44 -13
  123. data/features/development_reloading.feature +3 -4
  124. data/features/edit_page.feature +9 -19
  125. data/features/favicon.feature +3 -3
  126. data/features/i18n.feature +5 -0
  127. data/features/index/batch_actions.feature +41 -0
  128. data/features/index/filters.feature +23 -0
  129. data/features/index/format_as_csv.feature +90 -4
  130. data/features/index/index_as_blog.feature +4 -4
  131. data/features/index/index_as_table.feature +102 -6
  132. data/features/index/index_blank_slate.feature +22 -0
  133. data/features/index/index_scope_to.feature +16 -16
  134. data/features/index/page_title.feature +11 -0
  135. data/features/index/pagination.feature +1 -1
  136. data/features/index/switch_index_view.feature +14 -14
  137. data/features/new_page.feature +10 -20
  138. data/features/registering_pages.feature +1 -1
  139. data/features/renamed_resource.feature +32 -0
  140. data/features/show/page_title.feature +11 -0
  141. data/features/show/tabs.feature +27 -0
  142. data/features/sidebar_sections.feature +12 -0
  143. data/features/specifying_actions.feature +3 -3
  144. data/features/step_definitions/action_item_steps.rb +2 -2
  145. data/features/step_definitions/action_link_steps.rb +14 -1
  146. data/features/step_definitions/additional_web_steps.rb +17 -18
  147. data/features/step_definitions/asset_steps.rb +3 -3
  148. data/features/step_definitions/attribute_steps.rb +8 -3
  149. data/features/step_definitions/batch_action_steps.rb +26 -9
  150. data/features/step_definitions/blog_steps.rb +3 -0
  151. data/features/step_definitions/breadcrumb_steps.rb +1 -1
  152. data/features/step_definitions/comment_steps.rb +1 -1
  153. data/features/step_definitions/configuration_steps.rb +1 -1
  154. data/features/step_definitions/dashboard_steps.rb +2 -2
  155. data/features/step_definitions/factory_steps.rb +6 -6
  156. data/features/step_definitions/filter_steps.rb +25 -3
  157. data/features/step_definitions/flash_steps.rb +3 -3
  158. data/features/step_definitions/format_steps.rb +17 -10
  159. data/features/step_definitions/index_scope_steps.rb +5 -5
  160. data/features/step_definitions/layout_steps.rb +1 -1
  161. data/features/step_definitions/member_link_steps.rb +2 -2
  162. data/features/step_definitions/menu_steps.rb +3 -3
  163. data/features/step_definitions/pagination_steps.rb +2 -3
  164. data/features/step_definitions/sidebar_steps.rb +8 -3
  165. data/features/step_definitions/site_title_steps.rb +6 -4
  166. data/features/step_definitions/symbol_leak_steps.rb +1 -1
  167. data/features/step_definitions/tab_steps.rb +5 -0
  168. data/features/step_definitions/table_steps.rb +4 -4
  169. data/features/step_definitions/user_steps.rb +15 -9
  170. data/features/step_definitions/web_steps.rb +10 -11
  171. data/features/sti_resource.feature +2 -10
  172. data/features/strong_parameters.feature +73 -0
  173. data/features/support/env.rb +35 -2
  174. data/features/support/paths.rb +2 -2
  175. data/features/support/selectors.rb +1 -1
  176. data/features/users/resetting_password.feature +7 -7
  177. data/lib/active_admin.rb +18 -13
  178. data/lib/active_admin/abstract_view_factory.rb +7 -17
  179. data/lib/active_admin/application.rb +50 -25
  180. data/lib/active_admin/asset_registration.rb +2 -2
  181. data/lib/active_admin/authorization_adapter.rb +2 -2
  182. data/lib/active_admin/base_controller.rb +2 -3
  183. data/lib/active_admin/base_controller/authorization.rb +13 -31
  184. data/lib/active_admin/batch_actions.rb +1 -1
  185. data/lib/active_admin/batch_actions/controller.rb +13 -7
  186. data/lib/active_admin/batch_actions/resource_extension.rb +43 -17
  187. data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
  188. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
  189. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
  190. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
  191. data/lib/active_admin/callbacks.rb +25 -24
  192. data/lib/active_admin/cancan_adapter.rb +7 -11
  193. data/lib/active_admin/csv_builder.rb +92 -15
  194. data/lib/active_admin/dependency.rb +93 -0
  195. data/lib/active_admin/deprecation.rb +6 -7
  196. data/lib/active_admin/devise.rb +26 -14
  197. data/lib/active_admin/dsl.rb +18 -11
  198. data/lib/active_admin/engine.rb +7 -2
  199. data/lib/active_admin/error.rb +59 -0
  200. data/lib/active_admin/filters/dsl.rb +2 -2
  201. data/lib/active_admin/filters/forms.rb +19 -30
  202. data/lib/active_admin/filters/formtastic_addons.rb +20 -11
  203. data/lib/active_admin/filters/resource_extension.rb +16 -9
  204. data/lib/active_admin/form_builder.rb +94 -105
  205. data/lib/active_admin/helpers/collection.rb +7 -13
  206. data/lib/active_admin/helpers/i18n.rb +7 -0
  207. data/lib/active_admin/helpers/optional_display.rb +5 -5
  208. data/lib/active_admin/helpers/scope_chain.rb +1 -1
  209. data/lib/active_admin/helpers/settings.rb +16 -9
  210. data/lib/active_admin/iconic.rb +17 -15
  211. data/lib/active_admin/iconic/icons.rb +136 -136
  212. data/lib/active_admin/inputs.rb +11 -7
  213. data/lib/active_admin/inputs/datepicker_input.rb +1 -1
  214. data/lib/active_admin/inputs/filters/base.rb +42 -0
  215. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  216. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  217. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  218. data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
  219. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  220. data/lib/active_admin/inputs/filters/select_input.rb +54 -0
  221. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  222. data/lib/active_admin/menu.rb +3 -3
  223. data/lib/active_admin/menu_collection.rb +1 -4
  224. data/lib/active_admin/namespace.rb +52 -29
  225. data/lib/active_admin/order_clause.rb +26 -0
  226. data/lib/active_admin/orm/active_record.rb +2 -0
  227. data/lib/active_admin/orm/active_record/comments.rb +48 -51
  228. data/lib/active_admin/orm/active_record/comments/comment.rb +16 -10
  229. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -1
  230. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -1
  231. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +15 -13
  232. data/lib/active_admin/page.rb +5 -1
  233. data/lib/active_admin/page_dsl.rb +1 -1
  234. data/lib/active_admin/page_presenter.rb +2 -2
  235. data/lib/active_admin/pundit_adapter.rb +68 -0
  236. data/lib/active_admin/resource.rb +12 -3
  237. data/lib/active_admin/resource/action_items.rb +15 -8
  238. data/lib/active_admin/resource/belongs_to.rb +7 -3
  239. data/lib/active_admin/resource/controllers.rb +1 -0
  240. data/lib/active_admin/resource/includes.rb +12 -0
  241. data/lib/active_admin/resource/menu.rb +5 -5
  242. data/lib/active_admin/resource/naming.rb +25 -47
  243. data/lib/active_admin/resource/page_presenters.rb +1 -1
  244. data/lib/active_admin/resource/routes.rb +26 -10
  245. data/lib/active_admin/resource/scope_to.rb +7 -7
  246. data/lib/active_admin/resource/sidebars.rb +1 -0
  247. data/lib/active_admin/resource_collection.rb +44 -16
  248. data/lib/active_admin/resource_controller.rb +6 -5
  249. data/lib/active_admin/resource_controller/data_access.rb +87 -82
  250. data/lib/active_admin/resource_controller/decorators.rb +91 -9
  251. data/lib/active_admin/resource_controller/streaming.rb +37 -0
  252. data/lib/active_admin/resource_dsl.rb +54 -10
  253. data/lib/active_admin/router.rb +7 -7
  254. data/lib/active_admin/scope.rb +6 -6
  255. data/lib/active_admin/sidebar_section.rb +10 -2
  256. data/lib/active_admin/version.rb +1 -1
  257. data/lib/active_admin/view_factory.rb +17 -16
  258. data/lib/active_admin/view_helpers.rb +0 -1
  259. data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
  260. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +13 -6
  261. data/lib/active_admin/view_helpers/display_helper.rb +30 -17
  262. data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -24
  263. data/lib/active_admin/view_helpers/fields_for.rb +2 -2
  264. data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
  265. data/lib/active_admin/view_helpers/form_helper.rb +5 -9
  266. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
  267. data/lib/active_admin/views/action_items.rb +2 -2
  268. data/lib/active_admin/views/components/action_list_popover.rb +1 -1
  269. data/lib/active_admin/views/components/active_admin_form.rb +123 -0
  270. data/lib/active_admin/views/components/attributes_table.rb +22 -13
  271. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  272. data/lib/active_admin/views/components/columns.rb +13 -7
  273. data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
  274. data/lib/active_admin/views/components/index_list.rb +7 -7
  275. data/lib/active_admin/views/components/paginated_collection.rb +33 -17
  276. data/lib/active_admin/views/components/panel.rb +8 -2
  277. data/lib/active_admin/views/components/popover.rb +1 -1
  278. data/lib/active_admin/views/components/scopes.rb +1 -1
  279. data/lib/active_admin/views/components/sidebar_section.rb +3 -2
  280. data/lib/active_admin/views/components/site_title.rb +2 -2
  281. data/lib/active_admin/views/components/status_tag.rb +34 -11
  282. data/lib/active_admin/views/components/table_for.rb +67 -22
  283. data/lib/active_admin/views/components/tabs.rb +28 -0
  284. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  285. data/lib/active_admin/views/footer.rb +3 -3
  286. data/lib/active_admin/views/header.rb +3 -3
  287. data/lib/active_admin/views/index_as_blog.rb +6 -6
  288. data/lib/active_admin/views/index_as_grid.rb +2 -2
  289. data/lib/active_admin/views/index_as_table.rb +127 -40
  290. data/lib/active_admin/views/pages/base.rb +22 -18
  291. data/lib/active_admin/views/pages/form.rb +16 -6
  292. data/lib/active_admin/views/pages/index.rb +36 -20
  293. data/lib/active_admin/views/pages/layout.rb +1 -1
  294. data/lib/active_admin/views/pages/show.rb +4 -4
  295. data/lib/active_admin/views/tabbed_navigation.rb +7 -3
  296. data/lib/active_admin/views/title_bar.rb +10 -8
  297. data/lib/generators/active_admin/assets/assets_generator.rb +1 -3
  298. data/lib/generators/active_admin/devise/devise_generator.rb +20 -28
  299. data/lib/generators/active_admin/install/install_generator.rb +8 -9
  300. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -22
  301. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -9
  302. data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
  303. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
  304. data/lib/generators/active_admin/page/USAGE +8 -0
  305. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  306. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  307. data/lib/generators/active_admin/resource/resource_generator.rb +2 -4
  308. data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
  309. data/lib/ransack_ext.rb +4 -4
  310. data/script/local +2 -2
  311. data/script/travis_cache +107 -0
  312. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
  313. data/spec/javascripts/fixtures/flashes.html +2 -0
  314. data/spec/rails_helper.rb +154 -0
  315. data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
  316. data/spec/{integration → requests}/javascript_spec.rb +5 -5
  317. data/spec/requests/memory_spec.rb +23 -0
  318. data/spec/requests/stylesheets_spec.rb +18 -0
  319. data/spec/spec_helper.rb +12 -170
  320. data/spec/support/detect_rails_version.rb +31 -39
  321. data/spec/support/rails_template.rb +61 -34
  322. data/spec/support/rails_template_with_data.rb +14 -14
  323. data/spec/support/templates/admin/stores.rb +3 -5
  324. data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  325. data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  326. data/spec/support/templates/policies/admin_user_policy.rb +11 -0
  327. data/spec/support/templates/policies/application_policy.rb +45 -0
  328. data/spec/support/templates/policies/category_policy.rb +7 -0
  329. data/spec/support/templates/policies/post_policy.rb +15 -0
  330. data/spec/support/templates/policies/store_policy.rb +11 -0
  331. data/spec/support/templates/policies/user_policy.rb +11 -0
  332. data/spec/support/templates/post_decorator.rb +4 -46
  333. data/spec/unit/abstract_view_factory_spec.rb +11 -11
  334. data/spec/unit/action_builder_spec.rb +24 -18
  335. data/spec/unit/active_admin_spec.rb +2 -2
  336. data/spec/unit/application_spec.rb +30 -31
  337. data/spec/unit/asset_registration_spec.rb +11 -11
  338. data/spec/unit/authorization/authorization_adapter_spec.rb +7 -7
  339. data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
  340. data/spec/unit/authorization/index_overriding_spec.rb +22 -0
  341. data/spec/unit/auto_link_spec.rb +42 -5
  342. data/spec/unit/batch_actions/resource_spec.rb +15 -14
  343. data/spec/unit/batch_actions/settings_spec.rb +18 -18
  344. data/spec/unit/belongs_to_spec.rb +26 -17
  345. data/spec/unit/cancan_adapter_spec.rb +4 -4
  346. data/spec/unit/comments_spec.rb +99 -39
  347. data/spec/unit/component_spec.rb +3 -3
  348. data/spec/unit/config_shared_examples.rb +8 -8
  349. data/spec/unit/controller_filters_spec.rb +26 -14
  350. data/spec/unit/csv_builder_spec.rb +152 -24
  351. data/spec/unit/dependency_spec.rb +135 -0
  352. data/spec/unit/devise_spec.rb +17 -37
  353. data/spec/unit/dsl_spec.rb +70 -9
  354. data/spec/unit/event_spec.rb +9 -9
  355. data/spec/unit/filters/filter_form_builder_spec.rb +167 -157
  356. data/spec/unit/filters/resource_spec.rb +35 -33
  357. data/spec/unit/form_builder_spec.rb +383 -145
  358. data/spec/unit/generators/install_spec.rb +5 -5
  359. data/spec/unit/helpers/collection_spec.rb +18 -18
  360. data/spec/unit/helpers/scope_chain_spec.rb +5 -5
  361. data/spec/unit/helpers/settings_spec.rb +4 -4
  362. data/spec/unit/i18n_spec.rb +12 -0
  363. data/spec/unit/menu_collection_spec.rb +14 -14
  364. data/spec/unit/menu_item_spec.rb +42 -42
  365. data/spec/unit/menu_spec.rb +20 -20
  366. data/spec/unit/namespace/authorization_spec.rb +5 -5
  367. data/spec/unit/namespace/register_page_spec.rb +9 -9
  368. data/spec/unit/namespace/register_resource_spec.rb +26 -28
  369. data/spec/unit/namespace_spec.rb +20 -20
  370. data/spec/unit/order_clause_spec.rb +81 -0
  371. data/spec/unit/page_controller_spec.rb +1 -1
  372. data/spec/unit/page_spec.rb +18 -12
  373. data/spec/unit/pretty_format_spec.rb +42 -14
  374. data/spec/unit/pundit_adapter_spec.rb +98 -0
  375. data/spec/unit/resource/action_items_spec.rb +13 -10
  376. data/spec/unit/resource/includes_spec.rb +21 -0
  377. data/spec/unit/resource/menu_spec.rb +1 -1
  378. data/spec/unit/resource/naming_spec.rb +23 -23
  379. data/spec/unit/resource/page_presenters_spec.rb +8 -8
  380. data/spec/unit/resource/pagination_spec.rb +6 -6
  381. data/spec/unit/resource/routes_spec.rb +10 -10
  382. data/spec/unit/resource/scopes_spec.rb +14 -7
  383. data/spec/unit/resource/sidebars_spec.rb +6 -6
  384. data/spec/unit/resource_collection_spec.rb +66 -68
  385. data/spec/unit/resource_controller/data_access_spec.rb +39 -21
  386. data/spec/unit/resource_controller/decorators_spec.rb +83 -0
  387. data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
  388. data/spec/unit/resource_controller_spec.rb +66 -62
  389. data/spec/unit/resource_registration_spec.rb +12 -12
  390. data/spec/unit/resource_spec.rb +75 -40
  391. data/spec/unit/routing_spec.rb +39 -31
  392. data/spec/unit/scope_spec.rb +112 -30
  393. data/spec/unit/settings_spec.rb +51 -21
  394. data/spec/unit/view_factory_spec.rb +2 -2
  395. data/spec/unit/view_helpers/breadcrumbs_spec.rb +137 -69
  396. data/spec/unit/view_helpers/display_name_spec.rb +49 -21
  397. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
  398. data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
  399. data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
  400. data/spec/unit/view_helpers/form_helper_spec.rb +9 -22
  401. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +59 -21
  402. data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
  403. data/spec/unit/views/components/attributes_table_spec.rb +94 -52
  404. data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
  405. data/spec/unit/views/components/blank_slate_spec.rb +14 -4
  406. data/spec/unit/views/components/columns_spec.rb +52 -22
  407. data/spec/unit/views/components/index_list_spec.rb +11 -8
  408. data/spec/unit/views/components/index_table_for_spec.rb +46 -0
  409. data/spec/unit/views/components/paginated_collection_spec.rb +68 -59
  410. data/spec/unit/views/components/panel_spec.rb +32 -21
  411. data/spec/unit/views/components/popover_spec.rb +7 -7
  412. data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
  413. data/spec/unit/views/components/site_title_spec.rb +8 -8
  414. data/spec/unit/views/components/status_tag_spec.rb +178 -38
  415. data/spec/unit/views/components/table_for_spec.rb +227 -44
  416. data/spec/unit/views/components/tabs_spec.rb +39 -0
  417. data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
  418. data/spec/unit/views/pages/form_spec.rb +17 -10
  419. data/spec/unit/views/pages/index_spec.rb +60 -0
  420. data/spec/unit/views/pages/layout_spec.rb +17 -21
  421. data/spec/unit/views/pages/show_spec.rb +16 -3
  422. data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
  423. data/tasks/docs.rake +1 -1
  424. data/tasks/parallel_tests.rake +8 -2
  425. data/tasks/test.rake +8 -4
  426. data/tasks/yard.rake +7 -5
  427. metadata +180 -101
  428. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  429. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  430. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  431. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  432. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  433. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
  434. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
  435. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
  436. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
  437. data/app/assets/images/active_admin/loading.gif +0 -0
  438. data/app/assets/javascripts/active_admin/components/application.js.coffee +0 -23
  439. data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +0 -26
  440. data/app/assets/javascripts/active_admin/components/has_many.js.coffee +0 -41
  441. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
  442. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -39
  443. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
  444. data/app/views/active_admin/dashboard/index.html.arb +0 -1
  445. data/app/views/active_admin/resource/index.csv.erb +0 -17
  446. data/docs/3-index-pages/create-an-index.md +0 -29
  447. data/lib/active_admin/inputs/filter_base.rb +0 -33
  448. data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
  449. data/lib/active_admin/inputs/filter_boolean_input.rb +0 -32
  450. data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -51
  451. data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
  452. data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
  453. data/lib/active_admin/inputs/filter_select_input.rb +0 -61
  454. data/lib/active_admin/inputs/filter_string_input.rb +0 -24
  455. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
  456. data/spec/integration/memory_spec.rb +0 -29
  457. data/spec/integration/stylesheets_spec.rb +0 -41
  458. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
  459. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
  460. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
  461. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
  462. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
  463. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
  464. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
  465. data/spec/javascripts/support/jquery.min.js +0 -4
  466. data/spec/spec_helper_without_rails.rb +0 -16
  467. data/tasks/js.rake +0 -32
@@ -10,9 +10,9 @@ Feature: Index as Blog
10
10
  index :as => :blog
11
11
  end
12
12
  """
13
- And I am logged in
13
+ And I am logged in
14
14
  When I am on the index page for posts
15
- Then I should see "Hello World" within "h3"
15
+ Then I should see a blog header "Hello World"
16
16
  And I should see a link to "Hello World"
17
17
 
18
18
  Scenario: Viewing the blog with a resource as a simple configuration
@@ -26,7 +26,7 @@ Feature: Index as Blog
26
26
  end
27
27
  end
28
28
  """
29
- Then I should see "Hello World" within "h3"
29
+ Then I should see a blog header "Hello World"
30
30
  And I should see a link to "Hello World"
31
31
  And I should see "My great post body" within ".post"
32
32
 
@@ -45,7 +45,7 @@ Feature: Index as Blog
45
45
  end
46
46
  end
47
47
  """
48
- Then I should see "Hello World From Block" within "h3"
48
+ Then I should see a blog header "Hello World From Block"
49
49
  And I should see a link to "Hello World From Block"
50
50
  And I should see "My great post body From Block" within ".post"
51
51
 
@@ -93,6 +93,19 @@ Feature: Index as Table
93
93
  And I should see a member link to "Edit"
94
94
  And I should not see a member link to "Delete"
95
95
 
96
+ Scenario: Actions with custom column options
97
+ Given a post with the title "Hello World" and body "From the body" exists
98
+ And an index configuration of:
99
+ """
100
+ ActiveAdmin.register Post do
101
+ index do
102
+ column :category
103
+ actions class: 'custom-column-class', name: 'That text'
104
+ end
105
+ end
106
+ """
107
+ Then I should see the actions column with the class "custom-column-class" and the title "That text"
108
+
96
109
  Scenario: Actions with defaults and custom actions
97
110
  Given a post with the title "Hello World" and body "From the body" exists
98
111
  And an index configuration of:
@@ -133,6 +146,59 @@ Feature: Index as Table
133
146
  And I should not see a member link to "Delete"
134
147
  And I should see a member link to "Custom Action"
135
148
 
149
+ Scenario: Actions with defaults and custom actions within a dropdown
150
+ Given a post with the title "Hello World" and body "From the body" exists
151
+ And an index configuration of:
152
+ """
153
+ ActiveAdmin.register Post do
154
+ actions :index, :show, :edit, :update
155
+
156
+ index do
157
+ column :category
158
+ actions dropdown: true do |resource|
159
+ item 'Custom Action', edit_admin_post_path(resource)
160
+ end
161
+ end
162
+ end
163
+ """
164
+ Then I should see a dropdown menu item to "View"
165
+ And I should see a dropdown menu item to "Edit"
166
+ And I should not see a dropdown menu item to "Delete"
167
+ And I should see a dropdown menu item to "Custom Action"
168
+
169
+ Scenario: Actions without default actions within a dropdown
170
+ Given a post with the title "Hello World" and body "From the body" exists
171
+ And an index configuration of:
172
+ """
173
+ ActiveAdmin.register Post do
174
+ actions :index, :show, :edit, :update
175
+
176
+ index do
177
+ column :category
178
+ actions :defaults => false, dropdown: true do |resource|
179
+ item 'Custom Action', edit_admin_post_path(resource)
180
+ end
181
+ end
182
+ end
183
+ """
184
+ Then I should not see a dropdown menu item to "View"
185
+ And I should not see a dropdown menu item to "Edit"
186
+ And I should not see a dropdown menu item to "Delete"
187
+ And I should see a dropdown menu item to "Custom Action"
188
+
189
+ Scenario: Index page without show action
190
+ Given a post with the title "Hello World" and body "From the body" exists
191
+ And an index configuration of:
192
+ """
193
+ ActiveAdmin.register Post do
194
+ actions :index
195
+ end
196
+ """
197
+ Then I should not see a member link to "View"
198
+ And I should not see a member link to "Edit"
199
+ And I should not see a member link to "Delete"
200
+ And I should see "Hello World"
201
+
136
202
  Scenario: Associations are not sortable
137
203
  Given 1 post exists
138
204
  And an index configuration of:
@@ -145,6 +211,36 @@ Feature: Index as Table
145
211
  """
146
212
  Then I should not see a sortable table header with "Category"
147
213
 
214
+ Scenario: Columns with block are sortable by default
215
+ Given 1 post exists
216
+ And an index configuration of:
217
+ """
218
+ ActiveAdmin.register Post do
219
+ index do
220
+ column :author_id do end
221
+ column 'published_at' do end
222
+ column :category do end
223
+ end
224
+ end
225
+ """
226
+ Then I should see a sortable table header with "Author"
227
+ Then I should see a sortable table header with "published_at"
228
+ Then I should not see a sortable table header with "Category"
229
+
230
+ Scenario: Columns with block are not sortable by when sortable option equals to false
231
+ Given 1 post exists
232
+ And an index configuration of:
233
+ """
234
+ ActiveAdmin.register Post do
235
+ index do
236
+ column :author_id, sortable: false do end
237
+ column 'published_at', sortable: false do end
238
+ end
239
+ end
240
+ """
241
+ Then I should not see a sortable table header with "Author"
242
+ Then I should not see a sortable table header with "published_at"
243
+
148
244
  Scenario: Sorting
149
245
  Given a post with the title "Hello World" and body "From the body" exists
150
246
  And a post with the title "Bye bye world" and body "Move your..." exists
@@ -154,14 +250,14 @@ Feature: Index as Table
154
250
  """
155
251
  When I am on the index page for posts
156
252
  Then I should see the "index_table_posts" table:
157
- | [ ] | Id | Title | Body | Published At | Starred | Created At | Updated At | |
158
- | [ ] | 2 | Bye bye world | Move your... | | | /.*/ | /.*/ | ViewEditDelete |
159
- | [ ] | 1 | Hello World | From the body | | | /.*/ | /.*/ | ViewEditDelete |
253
+ | [ ] | Id | Title | Body | Published At | Position | Starred | Created At | Updated At | |
254
+ | [ ] | 2 | Bye bye world | Move your... | | | No | /.*/ | /.*/ | ViewEditDelete |
255
+ | [ ] | 1 | Hello World | From the body | | | No | /.*/ | /.*/ | ViewEditDelete |
160
256
  When I follow "Id"
161
257
  Then I should see the "index_table_posts" table:
162
- | [ ] | Id | Title | Body | Published At | Starred | Created At | Updated At | |
163
- | [ ] | 1 | Hello World | From the body | | | /.*/ | /.*/ | ViewEditDelete |
164
- | [ ] | 2 | Bye bye world | Move your... | | | /.*/ | /.*/ | ViewEditDelete |
258
+ | [ ] | Id | Title | Body | Published At | Position | Starred | Created At | Updated At | |
259
+ | [ ] | 1 | Hello World | From the body | | | No | /.*/ | /.*/ | ViewEditDelete |
260
+ | [ ] | 2 | Bye bye world | Move your... | | | No | /.*/ | /.*/ | ViewEditDelete |
165
261
 
166
262
  Scenario: Sorting by a virtual column
167
263
  Given a post with the title "Hello World" exists
@@ -59,3 +59,25 @@ Feature: Index Blank Slate
59
59
  end
60
60
  """
61
61
  And I should see "There are no Posts yet. Create one"
62
+
63
+ Scenario: Customizing the default table with no resources
64
+ Given an index configuration of:
65
+ """
66
+ ActiveAdmin.register Post do
67
+ index blank_slate_link: ->{link_to("Go to dashboard", admin_root_path)} do |post|
68
+ end
69
+ end
70
+ """
71
+ When I follow "Go to dashboard"
72
+ Then I should see "Dashboard"
73
+
74
+ Scenario: Customizing the default table with no blank slate link
75
+ Given an index configuration of:
76
+ """
77
+ ActiveAdmin.register Post do
78
+ index blank_slate_link: false do |post|
79
+ end
80
+ end
81
+ """
82
+ Then I should see "There are no Posts yet."
83
+ And I should not see "Create one"
@@ -3,27 +3,27 @@ Feature: Index Scope To
3
3
  Viewing resource configs scoped to another object
4
4
 
5
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
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
16
 
17
- # Setup some scopes
18
- scope :all, :default => true
17
+ # Set up some scopes
18
+ scope :all, default: true
19
19
  scope :published do |posts|
20
- posts.where("published_at IS NOT NULL")
20
+ posts.where "published_at IS NOT NULL"
21
21
  end
22
- end
23
- """
22
+ end
23
+ """
24
24
 
25
25
  Scenario: Viewing the default scope counts
26
- When I am on the index page for posts
26
+ When I am on the index page for posts
27
27
  Then I should see the scope "All" selected
28
28
  And I should see the scope "All" with the count 2
29
29
  And I should see 2 posts in the table
@@ -28,3 +28,14 @@ Feature: Index - Page Title
28
28
  end
29
29
  """
30
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_filter { @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"
@@ -53,7 +53,7 @@ Feature: Index Pagination
53
53
  """
54
54
  Given 100 posts exist
55
55
  When I am on the index page for posts
56
- Then I should see pagination with 2 pages
56
+ Then I should see pagination with 4 pages
57
57
  Then I should see "Displaying Posts 1 - 30"
58
58
  And I should not see "Displaying Posts 1 - 30 of 100 in total"
59
59
 
@@ -1,8 +1,8 @@
1
1
  Feature: Switch Index View
2
2
 
3
- In order to switch index views
4
- As a user
5
- I want to view links to views
3
+ In order to switch index views
4
+ As a user
5
+ I want to view links to views
6
6
 
7
7
  Scenario: Show default Page Presenter
8
8
  Given a post with the title "Hello World from Table" exists
@@ -19,10 +19,10 @@ Feature: Switch Index View
19
19
  """
20
20
  Then I should see "Hello World from Table" within ".index_as_table"
21
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
- """
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
26
  ActiveAdmin.register Post do
27
27
  index :as => :block do |post|
28
28
  span(link_to(post.title, admin_post_path(post)))
@@ -35,9 +35,9 @@ Feature: Switch Index View
35
35
  Then I should see "Hello World from Table" within ".index_as_table"
36
36
 
37
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
- """
38
+ Given a post with the title "Hello World from Table" exists
39
+ And an index configuration of:
40
+ """
41
41
  ActiveAdmin.register Post do
42
42
  index :as => :block do |post|
43
43
  span(link_to(post.title, admin_post_path(post)))
@@ -51,10 +51,10 @@ Feature: Switch Index View
51
51
  And I should see a link to "Table"
52
52
  And I should see a link to "List"
53
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
- """
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
58
  ActiveAdmin.register Post do
59
59
  index :as => :block do |post|
60
60
  span(link_to(post.title, admin_post_path(post)))
@@ -9,10 +9,9 @@ Feature: New Page
9
9
  Given a configuration of:
10
10
  """
11
11
  ActiveAdmin.register Post do
12
- controller do
13
- def permitted_params
14
- params.permit post: [:category_id, :author_id, :title, :body, :published_at, :starred]
15
- end if Rails::VERSION::MAJOR == 4
12
+ if Rails::VERSION::MAJOR == 4
13
+ permit_params :custom_category_id, :author_id, :title,
14
+ :body, :position, :published_at, :starred
16
15
  end
17
16
  end
18
17
  """
@@ -28,18 +27,15 @@ Feature: New Page
28
27
  Then I should see "Post was successfully created."
29
28
  And I should see the attribute "Title" with "Hello World"
30
29
  And I should see the attribute "Body" with "This is the body"
31
- And I should see the attribute "Category" with "Music"
30
+ #And I should see the attribute "Category" with "Music"
32
31
  And I should see the attribute "Author" with "John Doe"
33
32
 
34
33
  Scenario: Generating a custom form
35
34
  Given a configuration of:
36
35
  """
37
36
  ActiveAdmin.register Post do
38
- controller do
39
- def permitted_params
40
- params.permit post: [:category_id, :author_id, :title, :body, :published_at, :starred]
41
- end if Rails::VERSION::MAJOR == 4
42
- end
37
+ permit_params :custom_category_id, :author_id, :title, :body, :published_at, :starred if Rails::VERSION::MAJOR == 4
38
+
43
39
  form do |f|
44
40
  f.inputs "Your Post" do
45
41
  f.input :title
@@ -74,11 +70,8 @@ Feature: New Page
74
70
  Given a configuration of:
75
71
  """
76
72
  ActiveAdmin.register Post do
77
- controller do
78
- def permitted_params
79
- params.permit post: [:category_id, :author_id, :title, :body, :published_at, :starred]
80
- end if Rails::VERSION::MAJOR == 4
81
- end
73
+ permit_params :custom_category_id, :author_id, :title, :body, :published_at, :starred if Rails::VERSION::MAJOR == 4
74
+
82
75
  form :partial => "form"
83
76
  end
84
77
  """
@@ -94,11 +87,8 @@ Feature: New Page
94
87
  Given a configuration of:
95
88
  """
96
89
  ActiveAdmin.register Post do
97
- controller do
98
- def permitted_params
99
- params.permit post: [:category_id, :author_id, :title, :body, :published_at, :starred]
100
- end if Rails::VERSION::MAJOR == 4
101
- end
90
+ permit_params :custom_category_id, :author_id, :title, :body, :published_at, :starred if Rails::VERSION::MAJOR == 4
91
+
102
92
  form do |f|
103
93
  f.inputs "Your Post" do
104
94
  if current_admin_user && false
@@ -93,7 +93,7 @@ Feature: Registering Pages
93
93
  Given a configuration of:
94
94
  """
95
95
  ActiveAdmin.register_page "Status" do
96
- action_item do
96
+ action_item :visit do
97
97
  link_to "Visit", "/"
98
98
  end
99
99
 
@@ -0,0 +1,32 @@
1
+ Feature: Renamed Resource
2
+
3
+ Strong attributes for resources renamed with as: 'NewName'
4
+
5
+ Background:
6
+ Given a category named "Music" exists
7
+ Given a user named "John Doe" exists
8
+ And I am logged in
9
+ Given a configuration of:
10
+ """
11
+ ActiveAdmin.register Blog::Post, as: 'Post' do
12
+ if Rails::VERSION::MAJOR == 4
13
+ permit_params :custom_category_id, :author_id, :title,
14
+ :body, :position, :published_at, :starred
15
+ end
16
+ end
17
+ """
18
+ When I am on the index page for posts
19
+
20
+ Scenario: Default form with no config
21
+ Given I follow "New Post"
22
+ When I fill in "Title" with "Hello World"
23
+ And I fill in "Body" with "This is the body"
24
+ And I select "Music" from "Category"
25
+ And I select "John Doe" from "Author"
26
+ And I press "Create Post"
27
+ Then I should see "Post was successfully created."
28
+ And I should see the attribute "Title" with "Hello World"
29
+ And I should see the attribute "Body" with "This is the body"
30
+ #And I should see the attribute "Category" with "Music"
31
+ And I should see the attribute "Author" with "John Doe"
32
+
@@ -45,3 +45,14 @@ Feature: Show - Page Title
45
45
  ActiveAdmin.register Tag
46
46
  """
47
47
  Then I should see the page title "Tag #"
48
+
49
+ Scenario: Set the title in controller
50
+ Given a show configuration of:
51
+ """
52
+ ActiveAdmin.register Post do
53
+ controller do
54
+ before_filter { @page_title = "List of #{resource_class.model_name.plural}" }
55
+ end
56
+ end
57
+ """
58
+ Then I should see the page title "List of posts"
@@ -0,0 +1,27 @@
1
+ Feature: Show - Tabs
2
+
3
+ Add tabs with different content to the page
4
+
5
+ Background:
6
+ Given a post with the title "Hello World" written by "Jane Doe" exists
7
+
8
+ Scenario: Set a method to be called on the resource as the title
9
+ Given a show configuration of:
10
+ """
11
+ ActiveAdmin.register Post do
12
+ show do
13
+ tabs do
14
+ tab :overview do
15
+ span "tab 1"
16
+ end
17
+
18
+ tab :details do
19
+ span "tab 2"
20
+ end
21
+ end
22
+ end
23
+ end
24
+ """
25
+ Then I should see two tabs "Overview" and "Details"
26
+ And I should see "tab 1"
27
+ And I should see "tab 2"