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
@@ -8,7 +8,12 @@ Feature: New Page
8
8
  And I am logged in
9
9
  Given a configuration of:
10
10
  """
11
- ActiveAdmin.register Post
11
+ ActiveAdmin.register Post do
12
+ if Rails::VERSION::MAJOR == 4
13
+ permit_params :custom_category_id, :author_id, :title,
14
+ :body, :position, :published_at, :starred
15
+ end
16
+ end
12
17
  """
13
18
  When I am on the index page for posts
14
19
 
@@ -22,13 +27,15 @@ Feature: New Page
22
27
  Then I should see "Post was successfully created."
23
28
  And I should see the attribute "Title" with "Hello World"
24
29
  And I should see the attribute "Body" with "This is the body"
25
- And I should see the attribute "Category" with "Music"
30
+ #And I should see the attribute "Category" with "Music"
26
31
  And I should see the attribute "Author" with "John Doe"
27
32
 
28
33
  Scenario: Generating a custom form
29
34
  Given a configuration of:
30
35
  """
31
36
  ActiveAdmin.register Post do
37
+ permit_params :custom_category_id, :author_id, :title, :body, :published_at, :starred if Rails::VERSION::MAJOR == 4
38
+
32
39
  form do |f|
33
40
  f.inputs "Your Post" do
34
41
  f.input :title
@@ -63,6 +70,8 @@ Feature: New Page
63
70
  Given a configuration of:
64
71
  """
65
72
  ActiveAdmin.register Post do
73
+ permit_params :custom_category_id, :author_id, :title, :body, :published_at, :starred if Rails::VERSION::MAJOR == 4
74
+
66
75
  form :partial => "form"
67
76
  end
68
77
  """
@@ -78,6 +87,8 @@ Feature: New Page
78
87
  Given a configuration of:
79
88
  """
80
89
  ActiveAdmin.register Post do
90
+ permit_params :custom_category_id, :author_id, :title, :body, :published_at, :starred if Rails::VERSION::MAJOR == 4
91
+
81
92
  form do |f|
82
93
  f.inputs "Your Post" do
83
94
  if current_admin_user && false
@@ -93,7 +93,7 @@ Feature: Registering Pages
93
93
  Given a configuration of:
94
94
  """
95
95
  ActiveAdmin.register_page "Status" do
96
- action_item do
96
+ action_item :visit do
97
97
  link_to "Visit", "/"
98
98
  end
99
99
 
@@ -0,0 +1,32 @@
1
+ Feature: Renamed Resource
2
+
3
+ Strong attributes for resources renamed with as: 'NewName'
4
+
5
+ Background:
6
+ Given a category named "Music" exists
7
+ Given a user named "John Doe" exists
8
+ And I am logged in
9
+ Given a configuration of:
10
+ """
11
+ ActiveAdmin.register Blog::Post, as: 'Post' do
12
+ if Rails::VERSION::MAJOR == 4
13
+ permit_params :custom_category_id, :author_id, :title,
14
+ :body, :position, :published_at, :starred
15
+ end
16
+ end
17
+ """
18
+ When I am on the index page for posts
19
+
20
+ Scenario: Default form with no config
21
+ Given I follow "New Post"
22
+ When I fill in "Title" with "Hello World"
23
+ And I fill in "Body" with "This is the body"
24
+ And I select "Music" from "Category"
25
+ And I select "John Doe" from "Author"
26
+ And I press "Create Post"
27
+ Then I should see "Post was successfully created."
28
+ And I should see the attribute "Title" with "Hello World"
29
+ And I should see the attribute "Body" with "This is the body"
30
+ #And I should see the attribute "Category" with "Music"
31
+ And I should see the attribute "Author" with "John Doe"
32
+
@@ -45,3 +45,14 @@ Feature: Show - Page Title
45
45
  ActiveAdmin.register Tag
46
46
  """
47
47
  Then I should see the page title "Tag #"
48
+
49
+ Scenario: Set the title in controller
50
+ Given a show configuration of:
51
+ """
52
+ ActiveAdmin.register Post do
53
+ controller do
54
+ before_filter { @page_title = "List of #{resource_class.model_name.plural}" }
55
+ end
56
+ end
57
+ """
58
+ Then I should see the page title "List of posts"
@@ -0,0 +1,27 @@
1
+ Feature: Show - Tabs
2
+
3
+ Add tabs with different content to the page
4
+
5
+ Background:
6
+ Given a post with the title "Hello World" written by "Jane Doe" exists
7
+
8
+ Scenario: Set a method to be called on the resource as the title
9
+ Given a show configuration of:
10
+ """
11
+ ActiveAdmin.register Post do
12
+ show do
13
+ tabs do
14
+ tab :overview do
15
+ span "tab 1"
16
+ end
17
+
18
+ tab :details do
19
+ span "tab 2"
20
+ end
21
+ end
22
+ end
23
+ end
24
+ """
25
+ Then I should see two tabs "Overview" and "Details"
26
+ And I should see "tab 1"
27
+ And I should see "tab 2"
@@ -196,3 +196,15 @@ Feature: Sidebar Sections
196
196
  When I am on the index page for posts
197
197
  Then I should see "Hello World from a custom partial" within the "Help" sidebar
198
198
 
199
+
200
+ Scenario: Position sidebar at the top using priority option
201
+ Given a configuration of:
202
+ """
203
+ ActiveAdmin.register Post do
204
+ sidebar :help, priority: 0 do
205
+ "Need help? Email us at help@example.com"
206
+ end
207
+ end
208
+ """
209
+ When I am on the index page for posts
210
+ Then I should see a sidebar titled "Help" above sidebar titled "Filters"
@@ -11,12 +11,12 @@ Feature: Site title
11
11
  Given a configuration of:
12
12
  """
13
13
  ActiveAdmin.application.site_title = "My Great Site"
14
- ActiveAdmin.application.site_title_link = "/"
14
+ ActiveAdmin.application.site_title_link = "/admin"
15
15
  """
16
16
  When I am on the dashboard
17
17
  And I should see the site title "My Great Site"
18
18
  When I follow "My Great Site"
19
- Then I should see "Ruby on Rails: Welcome aboard"
19
+ Then I should see the site title "My Great Site"
20
20
 
21
21
  Scenario: Set the site title image
22
22
  Given a configuration of:
@@ -23,7 +23,7 @@ Feature: Specifying Actions
23
23
  Given a configuration of:
24
24
  """
25
25
  ActiveAdmin.register Post do
26
- action_item(:only => :index) do
26
+ action_item(:import, :only => :index) do
27
27
  link_to('Import Posts', import_admin_posts_path)
28
28
  end
29
29
 
@@ -43,7 +43,7 @@ Feature: Specifying Actions
43
43
  Given a configuration of:
44
44
  """
45
45
  ActiveAdmin.register Post do
46
- action_item(:only => :show) do
46
+ action_item(:review, :only => :show) do
47
47
  link_to('Review', review_admin_post_path)
48
48
  end
49
49
 
@@ -69,7 +69,7 @@ Feature: Specifying Actions
69
69
  Given a configuration of:
70
70
  """
71
71
  ActiveAdmin.register Post do
72
- action_item(:only => :show) do
72
+ action_item(:review, :only => :show) do
73
73
  link_to('Review', review_admin_post_path)
74
74
  end
75
75
 
@@ -1,7 +1,7 @@
1
1
  Then /^I should see an action item link to "([^"]*)"$/ do |link|
2
- page.should have_css('.action_item a', :text => link)
2
+ expect(page).to have_css('.action_item a', text: link)
3
3
  end
4
4
 
5
5
  Then /^I should not see an action item link to "([^"]*)"$/ do |link|
6
- page.should_not have_css('.action_item a', :text => link)
6
+ expect(page).to_not have_css('.action_item a', text: link)
7
7
  end
@@ -1,7 +1,20 @@
1
1
  Then /^I should see a member link to "([^"]*)"$/ do |name|
2
- page.should have_css("a.member_link", :text => name)
2
+ expect(page).to have_css('a.member_link', text: name)
3
3
  end
4
4
 
5
5
  Then /^I should not see a member link to "([^"]*)"$/ do |name|
6
6
  %{Then I should not see "#{name}" within "a.member_link"}
7
7
  end
8
+
9
+ Then /^I should see the actions column with the class "([^"]*)" and the title "([^"]*)"$/ do |klass, title|
10
+ expect(page).to have_css "th#{'.'+klass}", text: title
11
+ end
12
+
13
+ Then /^I should see a dropdown menu item to "([^"]*)"$/ do |name|
14
+ expect(page).to have_css('ul.dropdown_menu_list li a', text: name)
15
+ end
16
+
17
+ Then /^I should not see a dropdown menu item to "([^"]*)"$/ do |name|
18
+ %{Then I should not see "#{name}" within "ul.dropdown_menu_list li a"}
19
+ end
20
+
@@ -1,17 +1,17 @@
1
1
  Then /^I should see a table header with "([^"]*)"$/ do |content|
2
- page.should have_xpath('//th', :text => content)
2
+ expect(page).to have_xpath '//th', text: content
3
3
  end
4
4
 
5
5
  Then /^I should not see a table header with "([^"]*)"$/ do |content|
6
- page.should_not have_xpath('//th', :text => content)
6
+ expect(page).to_not have_xpath '//th', text: content
7
7
  end
8
8
 
9
9
  Then /^I should see a sortable table header with "([^"]*)"$/ do |content|
10
- page.should have_css('th.sortable', :text => content)
10
+ expect(page).to have_css 'th.sortable', text: content
11
11
  end
12
12
 
13
13
  Then /^I should not see a sortable table header with "([^"]*)"$/ do |content|
14
- page.should_not have_css('th.sortable', :text => content)
14
+ expect(page).to_not have_css 'th.sortable', text: content
15
15
  end
16
16
 
17
17
  Then /^I should not see a sortable table header$/ do
@@ -19,32 +19,31 @@ Then /^I should not see a sortable table header$/ do
19
19
  end
20
20
 
21
21
  Then /^the table "([^"]*)" should have (\d+) rows/ do |selector, count|
22
- table = page.find(selector)
23
- table.all(:css, 'tr').size.should == count.to_i
22
+ trs = page.find(selector).all :css, 'tr'
23
+ expect(trs.size).to eq count.to_i
24
24
  end
25
25
 
26
26
  Then /^the table "([^"]*)" should have (\d+) columns/ do |selector, count|
27
- table = page.find(selector)
28
- row = table.find('tr:first')
29
- row.all(:css, "td").size.should == count.to_i
27
+ tds = page.find(selector).find('tr:first').all :css, 'td'
28
+ expect(tds.size).to eq count.to_i
30
29
  end
31
30
 
32
31
  Then /^there should be (\d+) "([^"]*)" tags$/ do |count, tag|
33
- page.all(:css, tag).size.should == count.to_i
32
+ expect(page.all(:css, tag).size).to eq count.to_i
34
33
  end
35
34
 
36
35
  Then /^I should see a link to "([^"]*)"$/ do |link|
37
- page.should have_xpath('//a', :text => link)
36
+ expect(page).to have_xpath '//a', text: link
38
37
  end
39
38
 
40
39
  Then /^an "([^"]*)" exception should be raised when I follow "([^"]*)"$/ do |error, link|
41
- lambda {
40
+ expect {
42
41
  step "I follow \"#{link}\""
43
- }.should raise_error(error.constantize)
42
+ }.to raise_error(error.constantize)
44
43
  end
45
44
 
46
45
  Then /^I should be in the resource section for (.+)$/ do |resource_name|
47
- current_url.should include resource_name.gsub(' ', '').underscore.pluralize
46
+ expect(current_url).to include resource_name.tr(' ', '').underscore.pluralize
48
47
  end
49
48
 
50
49
  Then /^I should wait and see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
@@ -56,27 +55,27 @@ end
56
55
 
57
56
  Then /^I should see the page title "([^"]*)"$/ do |title|
58
57
  within('h2#page_title') do
59
- page.should have_content(title)
58
+ expect(page).to have_content title
60
59
  end
61
60
  end
62
61
 
63
62
  Then /^I should see a fieldset titled "([^"]*)"$/ do |title|
64
- page.should have_css('fieldset legend', :text => title)
63
+ expect(page).to have_css 'fieldset legend', text: title
65
64
  end
66
65
 
67
66
  Then /^the "([^"]*)" field should contain the option "([^"]*)"$/ do |field, option|
68
67
  field = find_field(field)
69
- field.should have_css("option", :text => option)
68
+ expect(field).to have_css 'option', text: option
70
69
  end
71
70
 
72
71
  Then /^I should see the content "([^"]*)"$/ do |content|
73
- page.should have_css("#active_admin_content", :text => content)
72
+ expect(page).to have_css '#active_admin_content', text: content
74
73
  end
75
74
 
76
75
  Then /^I should see a validation error "([^"]*)"$/ do |error_message|
77
- page.should have_css(".inline-errors", :text => error_message)
76
+ expect(page).to have_css '.inline-errors', text: error_message
78
77
  end
79
78
 
80
79
  Then /^I should see a table with id "([^"]*)"$/ do |dom_id|
81
- page.should have_css('table', :id => dom_id)
80
+ page.find("table##{dom_id}")
82
81
  end
@@ -3,13 +3,13 @@ Then /^I should see the css file "([^"]*)"$/ do |path|
3
3
  end
4
4
 
5
5
  Then /^I should see the css file "([^"]*)" of media "([^"]*)"$/ do |path, media|
6
- page.should have_xpath("//link[contains(@href, /stylesheets/#{path}) and contains(@media, #{media})]")
6
+ expect(page).to have_xpath("//link[contains(@href, /stylesheets/#{path}) and contains(@media, #{media})]", visible: false)
7
7
  end
8
8
 
9
9
  Then /^I should see the js file "([^"]*)"$/ do |path|
10
- page.should have_xpath("//script[contains(@src, /javascripts/#{path})]")
10
+ expect(page).to have_xpath("//script[contains(@src, /javascripts/#{path})]", visible: false)
11
11
  end
12
12
 
13
13
  Then /^I should see the favicon "([^"]*)"$/ do |path|
14
- page.should have_xpath("//link[contains(@href, \"#{path}\")]")
14
+ expect(page).to have_xpath("//link[contains(@href, path)]", visible: false)
15
15
  end
@@ -1,13 +1,18 @@
1
1
  Then /^I should see the attribute "([^"]*)" with "([^"]*)"$/ do |title, value|
2
2
  elems = all ".attributes_table th:contains('#{title}') ~ td:contains('#{value}')"
3
- elems.first.should_not be_nil, 'attribute missing'
3
+ expect(elems.first).to_not be_nil, 'attribute missing'
4
4
  end
5
5
 
6
6
  Then /^I should see the attribute "([^"]*)" with a nicely formatted datetime$/ do |title|
7
7
  text = all(".attributes_table th:contains('#{title}') ~ td").first.text
8
- text.should match /\w+ \d{1,2}, \d{4} \d{2}:\d{2}/
8
+ expect(text).to match /\w+ \d{1,2}, \d{4} \d{2}:\d{2}/
9
+ end
10
+
11
+ Then /^the attribute "([^"]*)" should be empty$/ do |title|
12
+ elems = all ".attributes_table th:contains('#{title}') ~ td > span.empty"
13
+ expect(elems.first).to_not be_nil, 'attribute not empty'
9
14
  end
10
15
 
11
16
  Then /^I should not see the attribute "([^"]*)"$/ do |title|
12
- page.should_not have_css('.attributes_table th', :text => title)
17
+ expect(page).to_not have_css '.attributes_table th', text: title
13
18
  end
@@ -1,17 +1,22 @@
1
1
  Then /^I (should|should not) be asked to confirm "([^"]*)" for "([^"]*)"$/ do |maybe, confirmation, title|
2
2
  selector = "#batch_actions_popover a.batch_action:contains('#{title}')"
3
3
  selector << "[data-confirm='#{confirmation}']" if maybe == 'should'
4
- page.send maybe.sub(' ', '_'), have_css(selector)
4
+
5
+ verb = maybe == 'should' ? :to : :to_not
6
+ expect(page).send verb, have_css(selector)
5
7
  end
6
8
 
7
9
  Then /^I (should|should not) see the batch action :([^\s]*) "([^"]*)"$/ do |maybe, sym, title|
8
- selector = "#batch_actions_selector a.batch_action:contains('#{title}')"
10
+ selector = ".batch_actions_selector a.batch_action:contains('#{title}')"
9
11
  selector << "[href='#'][data-action='#{sym}']" if maybe == 'should'
10
- page.send maybe.sub(' ', '_'), have_css(selector)
12
+
13
+ verb = maybe == 'should' ? :to : :to_not
14
+ expect(page).send verb, have_css(selector)
11
15
  end
12
16
 
13
17
  Then /^the (\d+)(?:st|nd|rd|th) batch action should be "([^"]*)"$/ do |index, title|
14
- page.all("#batch_actions_selector a.batch_action")[index.to_i - 1].text.should match title
18
+ batch_action = page.all('.batch_actions_selector a.batch_action')[index.to_i - 1]
19
+ expect(batch_action.text).to match title
15
20
  end
16
21
 
17
22
  When /^I check the (\d+)(?:st|nd|rd|th) record$/ do |index|
@@ -23,17 +28,19 @@ When /^I toggle the collection selection$/ do
23
28
  end
24
29
 
25
30
  Then /^I should see that the batch action button is disabled$/ do
26
- page.should have_css "#batch_actions_selector .dropdown_menu_button.disabled"
31
+ expect(page).to have_css ".batch_actions_selector .dropdown_menu_button.disabled"
27
32
  end
28
33
 
29
34
  Then /^I (should|should not) see the batch action (button|selector)$/ do |maybe, type|
30
- selector = "div.table_tools #batch_actions_selector"
35
+ selector = "div.table_tools .batch_actions_selector"
31
36
  selector << ' .dropdown_menu_button' if maybe == 'should' && type == 'button'
32
- page.send maybe.sub(' ', '_'), have_css(selector)
37
+
38
+ verb = maybe == 'should' ? :to : :to_not
39
+ expect(page).send verb, have_css(selector)
33
40
  end
34
41
 
35
42
  Then /^I should see the batch action popover exists$/ do
36
- page.should have_css "#batch_actions_selector"
43
+ expect(page).to have_css '.batch_actions_selector'
37
44
  end
38
45
 
39
46
  Given /^I submit the batch action form with "([^"]*)"$/ do |action|
@@ -51,5 +58,15 @@ Given /^I submit the batch action form with "([^"]*)"$/ do |action|
51
58
  end
52
59
 
53
60
  Then /^I should not see checkboxes in the table$/ do
54
- page.should_not have_css ".paginated_collection table input[type=checkbox]"
61
+ expect(page).to_not have_css '.paginated_collection table input[type=checkbox]'
62
+ end
63
+
64
+ Then /^I should be show a input with name "([^"]*)" and type "([^"]*)"$/ do |name, type|
65
+ selector = ".batch_actions_selector a.batch_action:first"
66
+ expect(page.find(selector)["data-inputs"]).to eq "{\"#{name}\":\"#{type}\"}"
67
+ end
68
+
69
+ Then /^I should be show a select with name "([^"]*)" with the values "([^"]*)"$/ do |name, values|
70
+ selector = ".batch_actions_selector a.batch_action:first"
71
+ expect(JSON[page.find(selector)["data-inputs"]]).to eq Hash[name, values.split(', ')]
55
72
  end
@@ -0,0 +1,3 @@
1
+ Then /^I should see a blog header "([^"]*)"$/ do |header_text|
2
+ expect(page).to have_css 'h3', text: header_text
3
+ end
@@ -1,3 +1,3 @@
1
1
  Then /^I should see a link to "([^"]*)" in the breadcrumb$/ do |text|
2
- page.should have_css('.breadcrumb > a', :text => text)
2
+ expect(page).to have_css '.breadcrumb > a', text: text
3
3
  end
@@ -8,5 +8,5 @@ When /^I add a comment "([^"]*)"$/ do |comment|
8
8
  end
9
9
 
10
10
  Given /^a tag with the name "([^"]*)" exists$/ do |tag_name|
11
- Tag.create(:name => tag_name)
11
+ Tag.create(name: tag_name)
12
12
  end