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
data/docs/README.md ADDED
@@ -0,0 +1,24 @@
1
+ # ActiveAdmin Documentation
2
+
3
+ ## Content
4
+
5
+ - [Installation](0-installation.md)
6
+ - [General Configuration](1-general-configuration.md)
7
+ - [Resource Customization](2-resource-customization.md)
8
+ - [Index Pages](3-index-pages.md)
9
+ - [Custom Index](3-index-pages/custom-index.md)
10
+ - [Index as Table](3-index-pages/index-as-table.md)
11
+ - [Index as Grid](3-index-pages/index-as-grid.md)
12
+ - [Index as Blocks](3-index-pages/index-as-block.md)
13
+ - [Index as Blog](3-index-pages/index-as-blog.md)
14
+ - [Csv Format](4-csv-format.md)
15
+ - [Forms](5-forms.md)
16
+ - [Show Pages](6-show-pages.md)
17
+ - [Sidebars](7-sidebars.md)
18
+ - [Custom Actions](8-custom-actions.md)
19
+ - [Batch Actions](9-batch-actions.md)
20
+ - [Custom Pages](10-custom-pages.md)
21
+ - [Decorators](11-decorators.md)
22
+ - [Arbre Components](12-arbre-components.md)
23
+ - [Authorization Adapter](13-authorization-adapter.md)
24
+ - [Gotchas](14-gotchas.md)
@@ -10,7 +10,7 @@ Feature: Action Item
10
10
  Given a configuration of:
11
11
  """
12
12
  ActiveAdmin.register Post do
13
- action_item do
13
+ action_item :embiggen do
14
14
  link_to "Embiggen", '/'
15
15
  end
16
16
  end
@@ -32,7 +32,7 @@ Feature: Action Item
32
32
  Given a configuration of:
33
33
  """
34
34
  ActiveAdmin.register Post do
35
- action_item :if => proc{ !current_active_admin_user.nil? } do
35
+ action_item :embiggen, :if => proc{ !current_active_admin_user.nil? } do
36
36
  link_to "Embiggen", '/'
37
37
  end
38
38
  end
@@ -54,7 +54,7 @@ Feature: Action Item
54
54
  Given a configuration of:
55
55
  """
56
56
  ActiveAdmin.register Post do
57
- action_item :if => proc{ current_active_admin_user.nil? } do
57
+ action_item :embiggen, :if => proc{ current_active_admin_user.nil? } do
58
58
  link_to "Embiggen", '/'
59
59
  end
60
60
  end
@@ -0,0 +1,37 @@
1
+ Feature: Authorizing Access using Pundit
2
+
3
+ Background:
4
+ Given I am logged in
5
+ And 1 post exists
6
+ And a configuration of:
7
+ """
8
+ require 'pundit'
9
+
10
+ ActiveAdmin.application.namespace(:admin).authorization_adapter = ActiveAdmin::PunditAdapter
11
+
12
+ ActiveAdmin.register Post do
13
+ end
14
+
15
+ ActiveAdmin.register_page "No Access" do
16
+ end
17
+ """
18
+ And I am on the index page for posts
19
+
20
+ @allow-rescue
21
+ Scenario: Attempt to access a resource I am not authorized to see
22
+ When I go to the last post's edit page
23
+ Then I should see "You are not authorized to perform this action"
24
+
25
+ Scenario: Viewing the default action items
26
+ When I follow "View"
27
+ Then I should not see an action item link to "Edit"
28
+
29
+ @allow-rescue
30
+ Scenario: Attempting to visit a Page without authorization
31
+ When I go to the admin no access page
32
+ Then I should see "You are not authorized to perform this action"
33
+
34
+ @allow-rescue
35
+ Scenario: Viewing a page with authorization
36
+ When I go to the admin dashboard page
37
+ Then I should see "Dashboard"
@@ -20,6 +20,9 @@ Feature: Belongs To
20
20
  And I should not see a menu item for "Users"
21
21
  And I should see "Displaying 1 Post"
22
22
  And I should see a link to "Users" in the breadcrumb
23
+ And I should see a link to "Jane Doe" in the breadcrumb
24
+ When I follow "Edit"
25
+ Then I should see a link to "Hello World" in the breadcrumb
23
26
 
24
27
  Scenario: Viewing a child resource page
25
28
  Given a configuration of:
@@ -25,3 +25,51 @@ Feature: Breadcrumb
25
25
  """
26
26
  When I am on the new post page
27
27
  Then I should see a link to "test" in the breadcrumb
28
+
29
+ Scenario: No Breadcrumbs configuration
30
+ Given a configuration of:
31
+ """
32
+ ActiveAdmin.application.breadcrumb = false
33
+ ActiveAdmin.register Post do
34
+ end
35
+ """
36
+ When I am on the new post page
37
+ Then I should see "Post"
38
+ And I should not see the element ".breadcrumb"
39
+
40
+ Scenario: Application config of false and a resource config of true
41
+ Given a configuration of:
42
+ """
43
+ ActiveAdmin.application.breadcrumb = false
44
+ ActiveAdmin.register Post do
45
+ config.breadcrumb = true
46
+ end
47
+ """
48
+ When I am on the new post page
49
+ Then I should see a link to "Post" in the breadcrumb
50
+
51
+ Scenario: Application config of false and rewritten breadcrumb links
52
+ Given a configuration of:
53
+ """
54
+ ActiveAdmin.application.breadcrumb = false
55
+ ActiveAdmin.register Post do
56
+ breadcrumb do
57
+ [
58
+ link_to('test', '/admin/test/url')
59
+ ]
60
+ end
61
+ end
62
+ """
63
+ When I am on the new post page
64
+ Then I should see a link to "test" in the breadcrumb
65
+
66
+ Scenario: Application config of true and a resource config of false
67
+ Given a configuration of:
68
+ """
69
+ ActiveAdmin.application.breadcrumb = true
70
+ ActiveAdmin.register Post do
71
+ config.breadcrumb = false
72
+ end
73
+ """
74
+ When I am on the new post page
75
+ Then I should not see the element ".breadcrumb"
@@ -39,7 +39,7 @@ Feature: Commenting
39
39
  Scenario: View a resource in a namespace that doesn't have comments
40
40
  Given a configuration of:
41
41
  """
42
- ActiveAdmin.application.namespace(:new_namespace).allow_comments = false
42
+ ActiveAdmin.application.namespace(:new_namespace).comments = false
43
43
  ActiveAdmin.register Post, :namespace => :new_namespace
44
44
  ActiveAdmin.register AdminUser, :namespace => :new_namespace
45
45
  """
@@ -48,6 +48,20 @@ Feature: Commenting
48
48
  And I follow "View"
49
49
  Then I should not see "Comments"
50
50
 
51
+ Scenario: Enable comments on per-resource basis
52
+ Given a configuration of:
53
+ """
54
+ ActiveAdmin.application.namespace(:new_namespace).comments = false
55
+ ActiveAdmin.register Post, :namespace => :new_namespace do
56
+ config.comments = true
57
+ end
58
+ ActiveAdmin.register AdminUser, :namespace => :new_namespace
59
+ """
60
+ Given I am logged in
61
+ When I am on the index page for posts in the new_namespace namespace
62
+ And I follow "View"
63
+ Then I should see "Comments"
64
+
51
65
  Scenario: Creating a comment in one namespace does not create it in another
52
66
  Given a show configuration of:
53
67
  """
@@ -101,7 +115,7 @@ Feature: Commenting
101
115
  Then I should see a table header with "Body"
102
116
  And I should see "Hello from Comment"
103
117
 
104
- Scenario: Commenting on a STI subclass
118
+ Scenario: Commenting on a STI superclass
105
119
  Given a configuration of:
106
120
  """
107
121
  ActiveAdmin.register User
@@ -113,19 +127,36 @@ Feature: Commenting
113
127
  When I add a comment "Hello World"
114
128
  Then I should see a flash with "Comment was successfully created"
115
129
  And I should be in the resource section for users
130
+ When I am on the index page for comments
131
+ Then I should see the content "User"
132
+ And I should see "Hello World"
133
+
134
+ Scenario: Commenting on a STI subclass
135
+ Given a configuration of:
136
+ """
137
+ ActiveAdmin.register Publisher
138
+ """
139
+ Given I am logged in
140
+ And a publisher named "Pragmatic Publishers" exists
141
+ When I am on the index page for publishers
142
+ And I follow "View"
143
+ When I add a comment "Hello World"
144
+ Then I should see a flash with "Comment was successfully created"
145
+ And I should be in the resource section for publishers
146
+ And I should see "Hello World"
116
147
 
117
148
  Scenario: Commenting on a class with string id
118
- Given a tag with the name "coolness" exists
119
- Given a configuration of:
120
- """
121
- ActiveAdmin.register Tag
122
- """
123
- Given I am logged in
124
- When I am on the index page for tags
125
- And I follow "View"
126
- When I add a comment "Tag Comment"
127
- Then I should see a flash with "Comment was successfully created"
128
- And I should be in the resource section for tags
149
+ Given a tag with the name "coolness" exists
150
+ Given a configuration of:
151
+ """
152
+ ActiveAdmin.register Tag
153
+ """
154
+ Given I am logged in
155
+ When I am on the index page for tags
156
+ And I follow "View"
157
+ When I add a comment "Tag Comment"
158
+ Then I should see a flash with "Comment was successfully created"
159
+ And I should be in the resource section for tags
129
160
 
130
161
  Scenario: Commenting on an aliased resource with an existing non-aliased config
131
162
  Given a configuration of:
@@ -12,10 +12,9 @@ Feature: Development Reloading
12
12
  When "app/admin/posts.rb" contains:
13
13
  """
14
14
  ActiveAdmin.register Post do
15
- controller do
16
- def permitted_params
17
- params.permit post: [:category, :author, :title, :body, :published_at, :starred]
18
- end if Rails::VERSION::MAJOR == 4
15
+ if Rails::VERSION::MAJOR == 4
16
+ permit_params :custom_category_id, :author_id, :title,
17
+ :body, :position, :published_at, :starred
19
18
  end
20
19
  end
21
20
  """
@@ -10,10 +10,9 @@ Feature: Edit Page
10
10
  Given a configuration of:
11
11
  """
12
12
  ActiveAdmin.register Post do
13
- controller do
14
- def permitted_params
15
- params.permit post: [:category, :author, :title, :body, :published_at, :starred]
16
- end if Rails::VERSION::MAJOR == 4
13
+ if Rails::VERSION::MAJOR == 4
14
+ permit_params :custom_category_id, :author_id, :title,
15
+ :body, :position, :published_at, :starred
17
16
  end
18
17
  end
19
18
  """
@@ -35,11 +34,8 @@ Feature: Edit Page
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, :author, :title, :body, :published_at, :starred]
41
- end if Rails::VERSION::MAJOR == 4
42
- end
37
+ permit_params :category, :author, :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
@@ -67,11 +63,8 @@ Feature: Edit Page
67
63
  Given a configuration of:
68
64
  """
69
65
  ActiveAdmin.register Post do
70
- controller do
71
- def permitted_params
72
- params.permit post: [:category, :author, :title, :body, :published_at, :starred]
73
- end if Rails::VERSION::MAJOR == 4
74
- end
66
+ permit_params :category, :author, :title, :body, :published_at, :starred if Rails::VERSION::MAJOR == 4
67
+
75
68
  form :html => {} do |f|
76
69
  f.inputs "Your Post" do
77
70
  f.input :title
@@ -109,11 +102,8 @@ Feature: Edit Page
109
102
  Given a configuration of:
110
103
  """
111
104
  ActiveAdmin.register Post do
112
- controller do
113
- def permitted_params
114
- params.permit post: [:category, :author, :title, :body, :published_at, :starred]
115
- end if Rails::VERSION::MAJOR == 4
116
- end
105
+ permit_params :category, :author, :title, :body, :published_at, :starred if Rails::VERSION::MAJOR == 4
106
+
117
107
  form :partial => "form"
118
108
  end
119
109
  """
@@ -1,7 +1,7 @@
1
1
  Feature: Favicon
2
-
2
+
3
3
  Configuring a Favicon file
4
-
4
+
5
5
  Background:
6
6
  Given a configuration of:
7
7
  """
@@ -13,7 +13,7 @@ Feature: Favicon
13
13
  Given I am logged out
14
14
  When I am on the login page
15
15
  Then I should see the favicon "a/favicon.ico"
16
-
16
+
17
17
  Scenario: Logged in views show Favicon
18
18
  Given I am logged in
19
19
  When I am on the dashboard
@@ -7,14 +7,19 @@ Feature: Internationalization
7
7
  And a store named "Hello words" exists
8
8
  When I go to the dashboard
9
9
  Then I should see "Bookstores"
10
+
10
11
  When I follow "Bookstores"
12
+ Then I should see the page title "Bookstores"
11
13
  Then I should see "Hello words"
14
+
12
15
  When I follow "View"
13
16
  Then I should see "Bookstore Details"
14
17
  And I should see "Hello words"
15
18
  And I should see a link to "Delete Bookstore"
19
+
16
20
  When I follow "Edit Bookstore"
17
21
  Then I should see "Edit Bookstore"
22
+
18
23
  When I press "Update Bookstore"
19
24
  Then I should see a flash with "Bookstore was successfully updated."
20
25
 
@@ -121,3 +121,44 @@ Feature: Batch Actions
121
121
  Then I should see the batch action :very_complex_and_time_consuming "Very Complex and Time Consuming Selected"
122
122
  And I should see the batch action :passing_a_symbol "Passing A Symbol Selected"
123
123
 
124
+ Scenario: Use a Form with text
125
+ Given 10 posts exist
126
+ And an index configuration of:
127
+ """
128
+ ActiveAdmin.register Post do
129
+ batch_action :destroy, false
130
+ batch_action(:action_with_form, form: { name: :text }) {}
131
+ end
132
+ """
133
+
134
+ When I check the 1st record
135
+ And I follow "Batch Actions"
136
+ Then I should be show a input with name "name" and type "text"
137
+
138
+ Scenario: Use a Form with select
139
+ Given 10 posts exist
140
+ And an index configuration of:
141
+ """
142
+ ActiveAdmin.register Post do
143
+ batch_action :destroy, false
144
+ batch_action(:action_with_form, form: { type: ["a", "b"] }) {}
145
+ end
146
+ """
147
+
148
+ When I check the 1st record
149
+ And I follow "Batch Actions"
150
+ Then I should be show a select with name "type" with the values "a, b"
151
+
152
+ Scenario: Use a Form with select values from proc
153
+ Given 10 posts exist
154
+ And an index configuration of:
155
+ """
156
+ ActiveAdmin.register Post do
157
+ batch_action :destroy, false
158
+ batch_action(:action_with_form, form: ->{ {type: ["a", "b"]} }) {}
159
+ end
160
+ """
161
+
162
+ When I check the 1st record
163
+ And I follow "Batch Actions"
164
+ Then I should be show a select with name "type" with the values "a, b"
@@ -105,6 +105,29 @@ Feature: Index Filtering
105
105
  And I should see "Non-Fiction" within ".index_table"
106
106
  And I should not see "Mystery" within ".index_table"
107
107
 
108
+ @javascript
109
+ Scenario: Clearing filter preserves custom parameters
110
+ Given a category named "Mystery" exists
111
+ And 1 post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
112
+ And 1 post with the title "Lorem Ipsum" written by "Joe Smith" in category "Mystery" exists
113
+ And an index configuration of:
114
+ """
115
+ ActiveAdmin.register Category
116
+ ActiveAdmin.application.favicon = false
117
+ """
118
+ Then I should see "Displaying all 2 Categories"
119
+ When I add parameter "scope" with value "all" to the URL
120
+ And I add parameter "foo" with value "bar" to the URL
121
+ And I select "Hello World" from "Posts"
122
+ And I press "Filter"
123
+ Then I should see "Non-Fiction"
124
+ And I should not see "Mystery"
125
+ When I click "Clear Filters"
126
+ Then I should see "Non-Fiction"
127
+ And I should see "Mystery"
128
+ And I should have parameter "foo" with value "bar"
129
+ And I should have parameter "scope" with value "all"
130
+
108
131
  Scenario: Checkboxes - Filtering categories via posts written by anyone
109
132
  Given a category named "Mystery" exists
110
133
  And a post with the title "Hello World" written by "Jane Doe" in category "Non-Fiction" exists
@@ -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 |