activeadmin 0.6.6 → 1.0.0.pre1

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 (512) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -8
  3. data/.hound.yml +11 -0
  4. data/.travis.yml +36 -10
  5. data/.yardopts +2 -1
  6. data/CHANGELOG.md +118 -67
  7. data/CONTRIBUTING.md +96 -73
  8. data/Gemfile +35 -35
  9. data/Guardfile +1 -0
  10. data/LICENSE +1 -1
  11. data/README.md +98 -0
  12. data/Rakefile +12 -4
  13. data/activeadmin.gemspec +21 -24
  14. data/app/assets/javascripts/active_admin/application.js.coffee +32 -0
  15. data/app/assets/javascripts/active_admin/base.js.coffee +14 -0
  16. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
  17. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
  18. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
  19. data/app/assets/javascripts/active_admin/{components/jquery.aa.checkbox-toggler.js.coffee → lib/checkbox-toggler.js.coffee} +3 -4
  20. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +101 -0
  21. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
  22. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
  23. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
  24. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
  25. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +68 -0
  26. data/app/assets/javascripts/active_admin/{components/jquery.aa.table-checkbox-toggler.js.coffee → lib/table-checkbox-toggler.js.coffee} +2 -3
  27. data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
  28. data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +61 -17
  29. data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
  30. data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
  31. data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
  32. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
  33. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -1
  34. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
  35. data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
  36. data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -14
  37. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +5 -4
  38. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  39. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  40. data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
  41. data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +2 -3
  42. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
  43. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  44. data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +4 -2
  45. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  46. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  47. data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
  48. data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -1
  49. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
  50. data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
  51. data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
  52. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
  53. data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +8 -2
  54. data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -7
  55. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -9
  56. data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
  57. data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
  58. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +5 -2
  59. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +11 -9
  60. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  61. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  62. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
  63. data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
  64. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  65. data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  66. data/app/views/active_admin/devise/sessions/new.html.erb +9 -7
  67. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  68. data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
  69. data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
  70. data/config/locales/ar.yml +120 -0
  71. data/config/locales/bg.yml +26 -6
  72. data/config/locales/bs.yml +122 -0
  73. data/config/locales/ca.yml +10 -1
  74. data/config/locales/cs.yml +7 -2
  75. data/config/locales/da.yml +7 -3
  76. data/config/locales/de-CH.yml +14 -31
  77. data/config/locales/de.yml +33 -33
  78. data/config/locales/el.yml +28 -2
  79. data/config/locales/en-GB.yml +12 -4
  80. data/config/locales/en.yml +29 -3
  81. data/config/locales/{es_MX.yml → es-MX.yml} +9 -24
  82. data/config/locales/es.yml +32 -25
  83. data/config/locales/fa.yml +120 -0
  84. data/config/locales/fi.yml +113 -0
  85. data/config/locales/fr.yml +21 -11
  86. data/config/locales/he.yml +7 -3
  87. data/config/locales/hr.yml +42 -11
  88. data/config/locales/hu.yml +10 -3
  89. data/config/locales/it.yml +31 -3
  90. data/config/locales/ja.yml +8 -3
  91. data/config/locales/ko.yml +7 -1
  92. data/config/locales/lt.yml +42 -11
  93. data/config/locales/lv.yml +7 -3
  94. data/config/locales/{no-NB.yml → nb.yml} +46 -15
  95. data/config/locales/nl.yml +36 -5
  96. data/config/locales/pl.yml +13 -8
  97. data/config/locales/pt-BR.yml +37 -5
  98. data/config/locales/pt-PT.yml +8 -4
  99. data/config/locales/ro.yml +7 -3
  100. data/config/locales/ru.yml +26 -5
  101. data/config/locales/sv-SE.yml +9 -5
  102. data/config/locales/tr.yml +10 -3
  103. data/config/locales/uk.yml +36 -12
  104. data/config/locales/vi.yml +7 -3
  105. data/config/locales/zh-CN.yml +26 -10
  106. data/config/locales/zh-TW.yml +19 -13
  107. data/docs/0-installation.md +65 -29
  108. data/docs/1-general-configuration.md +92 -81
  109. data/docs/10-custom-pages.md +68 -68
  110. data/docs/11-decorators.md +48 -59
  111. data/docs/12-arbre-components.md +80 -74
  112. data/docs/13-authorization-adapter.md +128 -107
  113. data/docs/14-gotchas.md +92 -0
  114. data/docs/2-resource-customization.md +293 -178
  115. data/docs/3-index-pages.md +160 -86
  116. data/docs/3-index-pages/custom-index.md +31 -0
  117. data/docs/3-index-pages/index-as-block.md +14 -9
  118. data/docs/3-index-pages/index-as-blog.md +41 -31
  119. data/docs/3-index-pages/index-as-grid.md +16 -8
  120. data/docs/3-index-pages/index-as-table.md +129 -52
  121. data/docs/4-csv-format.md +31 -24
  122. data/docs/5-forms.md +133 -56
  123. data/docs/6-show-pages.md +89 -27
  124. data/docs/7-sidebars.md +48 -27
  125. data/docs/8-custom-actions.md +98 -77
  126. data/docs/9-batch-actions.md +210 -146
  127. data/docs/README.md +24 -0
  128. data/features/action_item.feature +3 -3
  129. data/features/authorization_pundit.feature +37 -0
  130. data/features/breadcrumb.feature +48 -0
  131. data/features/comments/commenting.feature +56 -13
  132. data/features/development_reloading.feature +17 -30
  133. data/features/edit_page.feature +12 -1
  134. data/features/favicon.feature +3 -3
  135. data/features/i18n.feature +5 -4
  136. data/features/index/batch_actions.feature +41 -0
  137. data/features/index/filters.feature +67 -0
  138. data/features/index/format_as_csv.feature +90 -4
  139. data/features/index/formats.feature +27 -0
  140. data/features/index/index_as_blog.feature +4 -4
  141. data/features/index/index_as_table.feature +102 -6
  142. data/features/index/index_blank_slate.feature +22 -0
  143. data/features/index/index_scope_to.feature +16 -16
  144. data/features/index/page_title.feature +11 -0
  145. data/features/index/pagination.feature +1 -1
  146. data/features/index/switch_index_view.feature +14 -14
  147. data/features/new_page.feature +13 -2
  148. data/features/registering_pages.feature +1 -1
  149. data/features/renamed_resource.feature +32 -0
  150. data/features/show/page_title.feature +11 -0
  151. data/features/show/tabs.feature +27 -0
  152. data/features/sidebar_sections.feature +12 -0
  153. data/features/site_title.feature +2 -2
  154. data/features/specifying_actions.feature +3 -3
  155. data/features/step_definitions/action_item_steps.rb +2 -2
  156. data/features/step_definitions/action_link_steps.rb +14 -1
  157. data/features/step_definitions/additional_web_steps.rb +19 -20
  158. data/features/step_definitions/asset_steps.rb +3 -3
  159. data/features/step_definitions/attribute_steps.rb +8 -3
  160. data/features/step_definitions/batch_action_steps.rb +26 -9
  161. data/features/step_definitions/blog_steps.rb +3 -0
  162. data/features/step_definitions/breadcrumb_steps.rb +1 -1
  163. data/features/step_definitions/comment_steps.rb +1 -1
  164. data/features/step_definitions/configuration_steps.rb +9 -2
  165. data/features/step_definitions/dashboard_steps.rb +2 -2
  166. data/features/step_definitions/factory_steps.rb +9 -8
  167. data/features/step_definitions/filter_steps.rb +25 -3
  168. data/features/step_definitions/flash_steps.rb +3 -3
  169. data/features/step_definitions/format_steps.rb +18 -18
  170. data/features/step_definitions/index_scope_steps.rb +5 -5
  171. data/features/step_definitions/layout_steps.rb +1 -1
  172. data/features/step_definitions/member_link_steps.rb +2 -2
  173. data/features/step_definitions/menu_steps.rb +3 -3
  174. data/features/step_definitions/pagination_steps.rb +2 -3
  175. data/features/step_definitions/sidebar_steps.rb +8 -3
  176. data/features/step_definitions/site_title_steps.rb +6 -4
  177. data/features/step_definitions/symbol_leak_steps.rb +3 -0
  178. data/features/step_definitions/tab_steps.rb +5 -0
  179. data/features/step_definitions/table_steps.rb +4 -4
  180. data/features/step_definitions/user_steps.rb +10 -7
  181. data/features/step_definitions/web_steps.rb +14 -11
  182. data/features/sti_resource.feature +6 -2
  183. data/features/strong_parameters.feature +73 -0
  184. data/features/support/env.rb +34 -9
  185. data/features/support/paths.rb +14 -6
  186. data/features/support/selectors.rb +1 -1
  187. data/features/symbol_leak.feature +35 -0
  188. data/features/users/resetting_password.feature +5 -6
  189. data/lib/active_admin.rb +26 -25
  190. data/lib/active_admin/abstract_view_factory.rb +7 -17
  191. data/lib/active_admin/application.rb +72 -59
  192. data/lib/active_admin/asset_registration.rb +2 -2
  193. data/lib/active_admin/authorization_adapter.rb +2 -2
  194. data/lib/active_admin/base_controller.rb +2 -3
  195. data/lib/active_admin/base_controller/authorization.rb +13 -31
  196. data/lib/active_admin/batch_actions.rb +1 -1
  197. data/lib/active_admin/batch_actions/controller.rb +24 -8
  198. data/lib/active_admin/batch_actions/resource_extension.rb +47 -18
  199. data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
  200. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
  201. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
  202. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
  203. data/lib/active_admin/callbacks.rb +25 -24
  204. data/lib/active_admin/cancan_adapter.rb +7 -11
  205. data/lib/active_admin/csv_builder.rb +92 -15
  206. data/lib/active_admin/dependency.rb +93 -0
  207. data/lib/active_admin/deprecation.rb +6 -7
  208. data/lib/active_admin/devise.rb +28 -18
  209. data/lib/active_admin/dsl.rb +18 -11
  210. data/lib/active_admin/engine.rb +10 -8
  211. data/lib/active_admin/error.rb +62 -0
  212. data/lib/active_admin/filters/dsl.rb +2 -2
  213. data/lib/active_admin/filters/forms.rb +17 -27
  214. data/lib/active_admin/filters/formtastic_addons.rb +49 -15
  215. data/lib/active_admin/filters/resource_extension.rb +43 -34
  216. data/lib/active_admin/form_builder.rb +93 -154
  217. data/lib/active_admin/helpers/collection.rb +7 -13
  218. data/lib/active_admin/helpers/i18n.rb +7 -0
  219. data/lib/active_admin/helpers/optional_display.rb +5 -5
  220. data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
  221. data/lib/active_admin/helpers/scope_chain.rb +1 -1
  222. data/lib/active_admin/helpers/settings.rb +16 -9
  223. data/lib/active_admin/iconic.rb +17 -15
  224. data/lib/active_admin/iconic/icons.rb +136 -136
  225. data/lib/active_admin/inputs.rb +11 -7
  226. data/lib/active_admin/inputs/datepicker_input.rb +12 -3
  227. data/lib/active_admin/inputs/filters/base.rb +42 -0
  228. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  229. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  230. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  231. data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
  232. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  233. data/lib/active_admin/inputs/filters/select_input.rb +54 -0
  234. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  235. data/lib/active_admin/menu.rb +6 -4
  236. data/lib/active_admin/menu_collection.rb +1 -4
  237. data/lib/active_admin/namespace.rb +55 -29
  238. data/lib/active_admin/order_clause.rb +26 -0
  239. data/lib/active_admin/orm/active_record.rb +5 -0
  240. data/lib/active_admin/orm/active_record/comments.rb +81 -0
  241. data/lib/active_admin/orm/active_record/comments/comment.rb +45 -0
  242. data/lib/active_admin/{comments → orm/active_record/comments}/namespace_helper.rb +2 -2
  243. data/lib/active_admin/{comments → orm/active_record/comments}/resource_helper.rb +1 -1
  244. data/lib/active_admin/{comments → orm/active_record/comments}/show_page_helper.rb +0 -0
  245. data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  246. data/lib/active_admin/{comments → orm/active_record/comments}/views/active_admin_comments.rb +16 -14
  247. data/lib/active_admin/orm/mongoid.rb +1 -0
  248. data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
  249. data/lib/active_admin/page.rb +7 -3
  250. data/lib/active_admin/page_dsl.rb +1 -1
  251. data/lib/active_admin/page_presenter.rb +2 -2
  252. data/lib/active_admin/pundit_adapter.rb +68 -0
  253. data/lib/active_admin/resource.rb +16 -17
  254. data/lib/active_admin/resource/action_items.rb +23 -18
  255. data/lib/active_admin/resource/belongs_to.rb +7 -3
  256. data/lib/active_admin/resource/controllers.rb +1 -0
  257. data/lib/active_admin/resource/includes.rb +12 -0
  258. data/lib/active_admin/resource/menu.rb +5 -5
  259. data/lib/active_admin/resource/naming.rb +27 -43
  260. data/lib/active_admin/resource/page_presenters.rb +1 -1
  261. data/lib/active_admin/resource/routes.rb +27 -11
  262. data/lib/active_admin/resource/scope_to.rb +7 -7
  263. data/lib/active_admin/resource/sidebars.rb +1 -0
  264. data/lib/active_admin/resource_controller.rb +6 -7
  265. data/lib/active_admin/resource_controller/data_access.rb +101 -93
  266. data/lib/active_admin/resource_controller/decorators.rb +91 -9
  267. data/lib/active_admin/resource_controller/streaming.rb +37 -0
  268. data/lib/active_admin/resource_dsl.rb +53 -10
  269. data/lib/active_admin/router.rb +7 -7
  270. data/lib/active_admin/scope.rb +6 -6
  271. data/lib/active_admin/sidebar_section.rb +10 -2
  272. data/lib/active_admin/version.rb +1 -1
  273. data/lib/active_admin/view_factory.rb +17 -17
  274. data/lib/active_admin/view_helpers.rb +0 -1
  275. data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
  276. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
  277. data/lib/active_admin/view_helpers/display_helper.rb +30 -15
  278. data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -25
  279. data/lib/active_admin/view_helpers/fields_for.rb +4 -4
  280. data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
  281. data/lib/active_admin/view_helpers/form_helper.rb +5 -9
  282. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
  283. data/lib/active_admin/views/action_items.rb +2 -2
  284. data/lib/active_admin/views/components/action_list_popover.rb +1 -1
  285. data/lib/active_admin/views/components/active_admin_form.rb +123 -0
  286. data/lib/active_admin/views/components/attributes_table.rb +63 -21
  287. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  288. data/lib/active_admin/views/components/columns.rb +13 -7
  289. data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
  290. data/lib/active_admin/views/components/index_list.rb +7 -7
  291. data/lib/active_admin/views/components/paginated_collection.rb +38 -20
  292. data/lib/active_admin/views/components/panel.rb +8 -2
  293. data/lib/active_admin/views/components/popover.rb +1 -1
  294. data/lib/active_admin/views/components/scopes.rb +5 -4
  295. data/lib/active_admin/views/components/sidebar_section.rb +3 -2
  296. data/lib/active_admin/views/components/site_title.rb +2 -2
  297. data/lib/active_admin/views/components/status_tag.rb +34 -11
  298. data/lib/active_admin/views/components/table_for.rb +90 -45
  299. data/lib/active_admin/views/components/tabs.rb +28 -0
  300. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  301. data/lib/active_admin/views/footer.rb +3 -3
  302. data/lib/active_admin/views/header.rb +3 -3
  303. data/lib/active_admin/views/index_as_block.rb +10 -10
  304. data/lib/active_admin/views/index_as_blog.rb +45 -39
  305. data/lib/active_admin/views/index_as_grid.rb +14 -10
  306. data/lib/active_admin/views/index_as_table.rb +242 -129
  307. data/lib/active_admin/views/pages/base.rb +22 -18
  308. data/lib/active_admin/views/pages/form.rb +21 -11
  309. data/lib/active_admin/views/pages/index.rb +40 -35
  310. data/lib/active_admin/views/pages/layout.rb +1 -1
  311. data/lib/active_admin/views/pages/show.rb +4 -4
  312. data/lib/active_admin/views/tabbed_navigation.rb +7 -3
  313. data/lib/active_admin/views/title_bar.rb +10 -8
  314. data/lib/generators/active_admin/assets/assets_generator.rb +3 -28
  315. data/lib/generators/active_admin/assets/templates/{3.1/active_admin.css.scss → active_admin.css.scss} +0 -0
  316. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
  317. data/lib/generators/active_admin/devise/devise_generator.rb +24 -26
  318. data/lib/generators/active_admin/install/install_generator.rb +8 -9
  319. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +28 -26
  320. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -2
  321. data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
  322. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
  323. data/lib/generators/active_admin/page/USAGE +8 -0
  324. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  325. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  326. data/lib/generators/active_admin/resource/resource_generator.rb +3 -5
  327. data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
  328. data/lib/ransack_ext.rb +12 -0
  329. data/script/local +2 -2
  330. data/script/travis_cache +107 -0
  331. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
  332. data/spec/javascripts/fixtures/flashes.html +2 -0
  333. data/spec/rails_helper.rb +154 -0
  334. data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
  335. data/spec/{integration → requests}/javascript_spec.rb +5 -5
  336. data/spec/requests/memory_spec.rb +23 -0
  337. data/spec/requests/stylesheets_spec.rb +18 -0
  338. data/spec/spec_helper.rb +12 -173
  339. data/spec/support/detect_rails_version.rb +9 -17
  340. data/spec/support/rails_template.rb +64 -35
  341. data/spec/support/rails_template_with_data.rb +14 -14
  342. data/spec/support/templates/admin/stores.rb +5 -1
  343. data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  344. data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  345. data/spec/support/templates/policies/admin_user_policy.rb +11 -0
  346. data/spec/support/templates/policies/application_policy.rb +45 -0
  347. data/spec/support/templates/policies/category_policy.rb +7 -0
  348. data/spec/support/templates/policies/post_policy.rb +15 -0
  349. data/spec/support/templates/policies/store_policy.rb +11 -0
  350. data/spec/support/templates/policies/user_policy.rb +11 -0
  351. data/spec/support/templates/post_decorator.rb +4 -46
  352. data/spec/unit/abstract_view_factory_spec.rb +16 -16
  353. data/spec/unit/action_builder_spec.rb +24 -18
  354. data/spec/unit/active_admin_spec.rb +2 -2
  355. data/spec/unit/application_spec.rb +33 -34
  356. data/spec/unit/asset_registration_spec.rb +25 -29
  357. data/spec/unit/authorization/authorization_adapter_spec.rb +10 -10
  358. data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
  359. data/spec/unit/authorization/index_overriding_spec.rb +22 -0
  360. data/spec/unit/auto_link_spec.rb +43 -13
  361. data/spec/unit/batch_actions/resource_spec.rb +15 -14
  362. data/spec/unit/batch_actions/settings_spec.rb +18 -18
  363. data/spec/unit/belongs_to_spec.rb +28 -19
  364. data/spec/unit/cancan_adapter_spec.rb +8 -8
  365. data/spec/unit/comments_spec.rb +99 -39
  366. data/spec/unit/component_spec.rb +3 -3
  367. data/spec/unit/config_shared_examples.rb +10 -10
  368. data/spec/unit/controller_filters_spec.rb +23 -16
  369. data/spec/unit/csv_builder_spec.rb +165 -24
  370. data/spec/unit/dependency_spec.rb +135 -0
  371. data/spec/unit/devise_spec.rb +17 -37
  372. data/spec/unit/dsl_spec.rb +70 -9
  373. data/spec/unit/event_spec.rb +11 -11
  374. data/spec/unit/filters/filter_form_builder_spec.rb +207 -148
  375. data/spec/unit/filters/resource_spec.rb +60 -26
  376. data/spec/unit/form_builder_spec.rb +419 -145
  377. data/spec/unit/generators/install_spec.rb +23 -0
  378. data/spec/unit/helpers/collection_spec.rb +18 -18
  379. data/spec/unit/helpers/scope_chain_spec.rb +6 -6
  380. data/spec/unit/helpers/settings_spec.rb +4 -4
  381. data/spec/unit/i18n_spec.rb +12 -0
  382. data/spec/unit/menu_collection_spec.rb +14 -14
  383. data/spec/unit/menu_item_spec.rb +42 -42
  384. data/spec/unit/menu_spec.rb +20 -20
  385. data/spec/unit/namespace/authorization_spec.rb +8 -8
  386. data/spec/unit/namespace/register_page_spec.rb +11 -11
  387. data/spec/unit/namespace/register_resource_spec.rb +28 -30
  388. data/spec/unit/namespace_spec.rb +20 -20
  389. data/spec/unit/order_clause_spec.rb +81 -0
  390. data/spec/unit/page_controller_spec.rb +1 -1
  391. data/spec/unit/page_spec.rb +18 -12
  392. data/spec/unit/pretty_format_spec.rb +42 -14
  393. data/spec/unit/pundit_adapter_spec.rb +98 -0
  394. data/spec/unit/resource/action_items_spec.rb +15 -12
  395. data/spec/unit/resource/includes_spec.rb +21 -0
  396. data/spec/unit/resource/menu_spec.rb +1 -1
  397. data/spec/unit/resource/naming_spec.rb +35 -21
  398. data/spec/unit/resource/page_presenters_spec.rb +8 -8
  399. data/spec/unit/resource/pagination_spec.rb +6 -6
  400. data/spec/unit/resource/routes_spec.rb +10 -10
  401. data/spec/unit/resource/scopes_spec.rb +14 -7
  402. data/spec/unit/resource/sidebars_spec.rb +6 -6
  403. data/spec/unit/resource_collection_spec.rb +31 -38
  404. data/spec/unit/resource_controller/data_access_spec.rb +96 -30
  405. data/spec/unit/resource_controller/decorators_spec.rb +83 -0
  406. data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
  407. data/spec/unit/resource_controller_spec.rb +73 -70
  408. data/spec/unit/resource_registration_spec.rb +12 -12
  409. data/spec/unit/resource_spec.rb +77 -42
  410. data/spec/unit/routing_spec.rb +39 -31
  411. data/spec/unit/scope_spec.rb +112 -30
  412. data/spec/unit/settings_spec.rb +51 -21
  413. data/spec/unit/view_factory_spec.rb +2 -3
  414. data/spec/unit/view_helpers/breadcrumbs_spec.rb +71 -60
  415. data/spec/unit/view_helpers/display_name_spec.rb +49 -21
  416. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
  417. data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
  418. data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
  419. data/spec/unit/view_helpers/form_helper_spec.rb +10 -23
  420. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +64 -22
  421. data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
  422. data/spec/unit/views/components/attributes_table_spec.rb +171 -30
  423. data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
  424. data/spec/unit/views/components/blank_slate_spec.rb +14 -4
  425. data/spec/unit/views/components/columns_spec.rb +52 -22
  426. data/spec/unit/views/components/index_list_spec.rb +11 -8
  427. data/spec/unit/views/components/index_table_for_spec.rb +46 -0
  428. data/spec/unit/views/components/paginated_collection_spec.rb +79 -90
  429. data/spec/unit/views/components/panel_spec.rb +32 -21
  430. data/spec/unit/views/components/popover_spec.rb +7 -7
  431. data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
  432. data/spec/unit/views/components/site_title_spec.rb +26 -26
  433. data/spec/unit/views/components/status_tag_spec.rb +178 -38
  434. data/spec/unit/views/components/table_for_spec.rb +237 -35
  435. data/spec/unit/views/components/tabs_spec.rb +39 -0
  436. data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
  437. data/spec/unit/views/pages/form_spec.rb +17 -10
  438. data/spec/unit/views/pages/index_spec.rb +60 -0
  439. data/spec/unit/views/pages/layout_spec.rb +17 -21
  440. data/spec/unit/views/pages/show_spec.rb +18 -6
  441. data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
  442. data/tasks/docs.rake +9 -11
  443. data/tasks/parallel_tests.rake +8 -2
  444. data/tasks/test.rake +13 -9
  445. data/tasks/yard.rake +7 -4
  446. metadata +219 -163
  447. data/.document +0 -5
  448. data/README.rdoc +0 -88
  449. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  450. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  451. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  452. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  453. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  454. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
  455. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
  456. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
  457. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
  458. data/app/assets/images/active_admin/loading.gif +0 -0
  459. data/app/assets/javascripts/active_admin/application.js +0 -3
  460. data/app/assets/javascripts/active_admin/base.js +0 -5
  461. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +0 -105
  462. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +0 -97
  463. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +0 -4
  464. data/app/assets/javascripts/active_admin/pages/application.js.coffee +0 -21
  465. data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +0 -26
  466. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
  467. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -41
  468. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
  469. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +0 -38
  470. data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +0 -43
  471. data/app/views/active_admin/dashboard/index.html.arb +0 -1
  472. data/app/views/active_admin/resource/index.csv.erb +0 -23
  473. data/docs/3-index-pages/create-an-index.md +0 -29
  474. data/lib/active_admin/comments.rb +0 -83
  475. data/lib/active_admin/comments/comment.rb +0 -42
  476. data/lib/active_admin/comments/views.rb +0 -2
  477. data/lib/active_admin/dependency_checker.rb +0 -46
  478. data/lib/active_admin/inputs/filter_base.rb +0 -33
  479. data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
  480. data/lib/active_admin/inputs/filter_boolean_input.rb +0 -36
  481. data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -40
  482. data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
  483. data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
  484. data/lib/active_admin/inputs/filter_select_input.rb +0 -49
  485. data/lib/active_admin/inputs/filter_string_input.rb +0 -24
  486. data/lib/active_admin/reloader.rb +0 -130
  487. data/lib/active_admin/resource_controller/actions.rb +0 -81
  488. data/lib/active_admin/sass/active_admin.scss +0 -3
  489. data/lib/active_admin/sass/css_loader.rb +0 -16
  490. data/lib/active_admin/sass/helpers.rb +0 -45
  491. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
  492. data/lib/active_admin/views/dashboard_section_renderer.rb +0 -19
  493. data/lib/active_admin/views/pages/dashboard.rb +0 -62
  494. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +0 -1
  495. data/lib/generators/active_admin/assets/templates/3.1/active_admin.js +0 -1
  496. data/lib/meta_search_ext.rb +0 -10
  497. data/spec/integration/memory_spec.rb +0 -29
  498. data/spec/integration/stylesheets_spec.rb +0 -41
  499. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
  500. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
  501. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
  502. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
  503. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
  504. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
  505. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
  506. data/spec/javascripts/support/jquery.min.js +0 -4
  507. data/spec/spec_helper_without_rails.rb +0 -11
  508. data/spec/unit/generators/install_rails_3_1_spec.rb +0 -16
  509. data/spec/unit/rails_spec.rb +0 -43
  510. data/spec/unit/reloader_spec.rb +0 -124
  511. data/spec/unit/sass/helpers_spec.rb +0 -47
  512. data/tasks/js.rake +0 -32
@@ -12,8 +12,8 @@ Feature: Format as CSV
12
12
  When I am on the index page for posts
13
13
  And I follow "CSV"
14
14
  And I should download a CSV file for "posts" containing:
15
- | Id | Title | Body | Published At | Starred | Created At | Updated At |
16
- | \d+ | Hello World | | | | (.*) | (.*) |
15
+ | Id | Title | Body | Published at | Position | Starred | Created at | Updated at |
16
+ | \d+ | Hello World | | | | | (.*) | (.*) |
17
17
 
18
18
  Scenario: Default with alias
19
19
  Given a configuration of:
@@ -24,7 +24,7 @@ Feature: Format as CSV
24
24
  When I am on the index page for my_articles
25
25
  And I follow "CSV"
26
26
  And I should download a CSV file for "my-articles" containing:
27
- | Id | Title | Body | Published At | Starred | Created At | Updated At |
27
+ | Id | Title | Body | Published at | Position | Starred | Created at | Updated at |
28
28
 
29
29
  Scenario: With CSV format customization
30
30
  Given a configuration of:
@@ -65,7 +65,7 @@ Feature: Format as CSV
65
65
  Given a configuration of:
66
66
  """
67
67
  ActiveAdmin.register Post do
68
- csv :force_quotes => true do
68
+ csv :force_quotes => true, :byte_order_mark => "" do
69
69
  column :title
70
70
  column :body
71
71
  end
@@ -115,3 +115,89 @@ Feature: Format as CSV
115
115
  | Title | Body |
116
116
  | 012345 | (.*) |
117
117
  And the CSV file should contain "012345" in quotes
118
+
119
+ Scenario: Without CVS column names explicitely specified
120
+ Given a configuration of:
121
+ """
122
+ ActiveAdmin.application.csv_options = {:col_sep => ',', :force_quotes => true}
123
+ ActiveAdmin.register Post do
124
+ csv :column_names => true do
125
+ column :title
126
+ column :body
127
+ end
128
+ end
129
+ """
130
+ And a post with the title "012345" exists
131
+ When I am on the index page for posts
132
+ And I follow "CSV"
133
+ And I should download a CSV file with "," separator for "posts" containing:
134
+ | Title | Body |
135
+ | 012345 | (.*) |
136
+
137
+ Scenario: Without CVS column names
138
+ Given a configuration of:
139
+ """
140
+ ActiveAdmin.application.csv_options = {:col_sep => ',', :force_quotes => true}
141
+ ActiveAdmin.register Post do
142
+ csv :column_names => false do
143
+ column :title
144
+ column :body
145
+ end
146
+ end
147
+ """
148
+ And a post with the title "012345" exists
149
+ When I am on the index page for posts
150
+ And I follow "CSV"
151
+ And I should download a CSV file with "," separator for "posts" containing:
152
+ | 012345 | (.*) |
153
+
154
+ Scenario: With encoding CSV options
155
+ Given a configuration of:
156
+ """
157
+ ActiveAdmin.register Post do
158
+ csv :encoding => 'SJIS' do
159
+ column :title
160
+ column :body
161
+ end
162
+ end
163
+ """
164
+ And a post with the title "あいうえお" exists
165
+ When I am on the index page for posts
166
+ And I follow "CSV"
167
+ And the encoding of the CSV file should be "SJIS"
168
+
169
+ Scenario: With default encoding CSV options
170
+ Given a configuration of:
171
+ """
172
+ ActiveAdmin.application.csv_options = { :encoding => 'SJIS' }
173
+ ActiveAdmin.register Post do
174
+ csv do
175
+ column :title
176
+ column :body
177
+ end
178
+ end
179
+ """
180
+ And a post with the title "あいうえお" exists
181
+ When I am on the index page for posts
182
+ And I follow "CSV"
183
+ And the encoding of the CSV file should be "SJIS"
184
+
185
+ Scenario: With decorator
186
+ Given a configuration of:
187
+ """
188
+ ActiveAdmin.register Post do
189
+ decorate_with PostDecorator
190
+
191
+ csv do
192
+ column :id
193
+ column :title
194
+ column :decorator_method
195
+ end
196
+ end
197
+ """
198
+ And a post with the title "Hello World" exists
199
+ When I am on the index page for posts
200
+ And I follow "CSV"
201
+ And I should download a CSV file for "posts" containing:
202
+ | Id | Title | Decorator method |
203
+ | \d+ | Hello World | A method only available on the decorator |
@@ -37,3 +37,30 @@ Feature: Index Formats
37
37
  And I should not see a link to download "XML"
38
38
  And I should not see a link to download "JSON"
39
39
  And I should see a link to download "PDF"
40
+
41
+ Scenario: View index with download_links block which returns false
42
+ Given an index configuration of:
43
+ """
44
+ ActiveAdmin.register Post do
45
+ index :download_links => proc { false }
46
+ end
47
+ """
48
+ And 1 post exists
49
+ When I am on the index page for posts
50
+ Then I should not see a link to download "CSV"
51
+ And I should not see a link to download "XML"
52
+ And I should not see a link to download "JSON"
53
+
54
+ Scenario: View index with download_links block which returns [:csv]
55
+ Given an index configuration of:
56
+ """
57
+ ActiveAdmin.register Post do
58
+ index :download_links => -> { [:csv] }
59
+ end
60
+ """
61
+ And 1 post exists
62
+ When I am on the index page for posts
63
+ Then I should see a link to download "CSV"
64
+ And I should not see a link to download "XML"
65
+ And I should not see a link to download "JSON"
66
+ And I should not see a link to download "PDF"
@@ -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)))