activeadmin 1.0.0.pre1 → 2.9.0

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 (595) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +587 -939
  3. data/CODE_OF_CONDUCT.md +74 -0
  4. data/CONTRIBUTING.md +110 -59
  5. data/LICENSE +0 -5
  6. data/README.md +80 -61
  7. data/app/assets/javascripts/active_admin/base.js +517 -0
  8. data/app/assets/stylesheets/active_admin/_base.scss +31 -34
  9. data/app/assets/stylesheets/active_admin/_forms.scss +33 -35
  10. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  11. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  12. data/app/assets/stylesheets/active_admin/_normalize.scss +447 -0
  13. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  14. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -5
  15. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  16. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  17. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  18. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  19. data/app/assets/stylesheets/active_admin/components/_tables.scss +5 -3
  20. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  21. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -11
  22. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  23. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +1 -1
  25. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +9 -1
  26. data/app/assets/stylesheets/active_admin/print.scss +3 -4
  27. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  28. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -5
  29. data/app/javascript/active_admin/base.js +28 -0
  30. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  31. data/app/javascript/active_admin/ext/jquery.js +9 -0
  32. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  33. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  34. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  35. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  36. data/app/javascript/active_admin/initializers/filters.js +10 -0
  37. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  38. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  39. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  40. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  41. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  42. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  43. data/app/javascript/active_admin/lib/filters.js +39 -0
  44. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  45. data/app/javascript/active_admin/lib/per-page.js +38 -0
  46. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  47. data/app/javascript/active_admin/lib/utils.js +40 -0
  48. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  49. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  50. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  51. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  52. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  53. data/app/views/active_admin/devise/registrations/new.html.erb +3 -4
  54. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  55. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  56. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  57. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  58. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  59. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  60. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  61. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  63. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  64. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  65. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  66. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  67. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  68. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  69. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  70. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  71. data/app/views/layouts/active_admin_logged_out.html.erb +21 -7
  72. data/config/locales/ar.yml +62 -47
  73. data/config/locales/az.yml +138 -0
  74. data/config/locales/bg.yml +1 -3
  75. data/config/locales/bs.yml +1 -2
  76. data/config/locales/ca.yml +2 -4
  77. data/config/locales/cs.yml +1 -2
  78. data/config/locales/da.yml +45 -14
  79. data/config/locales/de-CH.yml +4 -3
  80. data/config/locales/de.yml +46 -3
  81. data/config/locales/el.yml +3 -4
  82. data/config/locales/en-CA.yml +139 -0
  83. data/config/locales/en-GB.yml +46 -5
  84. data/config/locales/en.yml +44 -9
  85. data/config/locales/eo.yml +145 -0
  86. data/config/locales/es-MX.yml +9 -6
  87. data/config/locales/es.yml +63 -14
  88. data/config/locales/fa.yml +1 -2
  89. data/config/locales/fi.yml +2 -3
  90. data/config/locales/fr.yml +36 -8
  91. data/config/locales/he.yml +53 -7
  92. data/config/locales/hr.yml +1 -2
  93. data/config/locales/hu.yml +6 -3
  94. data/config/locales/id.yml +135 -0
  95. data/config/locales/it.yml +49 -4
  96. data/config/locales/ja.yml +31 -7
  97. data/config/locales/ko.yml +66 -36
  98. data/config/locales/lt.yml +27 -6
  99. data/config/locales/lv.yml +3 -4
  100. data/config/locales/mk.yml +134 -0
  101. data/config/locales/nb.yml +22 -8
  102. data/config/locales/nl.yml +26 -3
  103. data/config/locales/pl.yml +75 -5
  104. data/config/locales/pt-BR.yml +24 -2
  105. data/config/locales/pt-PT.yml +1 -2
  106. data/config/locales/ro.yml +1 -2
  107. data/config/locales/ru.yml +21 -4
  108. data/config/locales/sk.yml +168 -0
  109. data/config/locales/sv-SE.yml +50 -8
  110. data/config/locales/tr.yml +92 -45
  111. data/config/locales/uk.yml +30 -16
  112. data/config/locales/vi.yml +53 -12
  113. data/config/locales/zh-CN.yml +44 -7
  114. data/config/locales/zh-TW.yml +42 -3
  115. data/docs/.gitignore +1 -0
  116. data/docs/0-installation.md +68 -18
  117. data/docs/1-general-configuration.md +88 -4
  118. data/docs/10-custom-pages.md +56 -2
  119. data/docs/11-decorators.md +20 -5
  120. data/docs/12-arbre-components.md +75 -11
  121. data/docs/13-authorization-adapter.md +73 -36
  122. data/docs/14-gotchas.md +64 -18
  123. data/docs/2-resource-customization.md +91 -23
  124. data/docs/3-index-pages/custom-index.md +5 -1
  125. data/docs/3-index-pages/index-as-block.md +3 -5
  126. data/docs/3-index-pages/index-as-blog.md +4 -6
  127. data/docs/3-index-pages/index-as-grid.md +3 -5
  128. data/docs/3-index-pages/index-as-table.md +46 -9
  129. data/docs/3-index-pages.md +73 -10
  130. data/docs/4-csv-format.md +35 -0
  131. data/docs/5-forms.md +96 -18
  132. data/docs/6-show-pages.md +13 -25
  133. data/docs/7-sidebars.md +13 -1
  134. data/docs/8-custom-actions.md +18 -1
  135. data/docs/9-batch-actions.md +9 -5
  136. data/docs/CNAME +1 -0
  137. data/docs/Gemfile +3 -0
  138. data/docs/Gemfile.lock +259 -0
  139. data/docs/_config.yml +4 -0
  140. data/docs/_includes/footer.html +8 -0
  141. data/docs/_includes/google-analytics.html +16 -0
  142. data/docs/_includes/head.html +7 -0
  143. data/docs/_includes/toc.html +98 -0
  144. data/docs/_includes/top-menu.html +17 -0
  145. data/docs/_layouts/default.html +21 -0
  146. data/docs/documentation.md +60 -0
  147. data/docs/images/activeadmin.png +0 -0
  148. data/docs/images/code-header.png +0 -0
  149. data/docs/images/divider.png +0 -0
  150. data/docs/images/features.png +0 -0
  151. data/docs/images/tidelift.svg +14 -0
  152. data/docs/index.html +226 -0
  153. data/docs/stylesheets/main.css +1205 -0
  154. data/lib/active_admin/abstract_view_factory.rb +13 -51
  155. data/lib/active_admin/application.rb +105 -138
  156. data/lib/active_admin/application_settings.rb +42 -0
  157. data/lib/active_admin/authorization_adapter.rb +4 -7
  158. data/lib/active_admin/base_controller/authorization.rb +16 -21
  159. data/lib/active_admin/base_controller/menu.rb +10 -10
  160. data/lib/active_admin/base_controller.rb +15 -11
  161. data/lib/active_admin/batch_actions/controller.rb +6 -7
  162. data/lib/active_admin/batch_actions/resource_extension.rb +15 -15
  163. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -4
  164. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -7
  165. data/lib/active_admin/batch_actions/views/selection_cells.rb +7 -6
  166. data/lib/active_admin/batch_actions.rb +0 -1
  167. data/lib/active_admin/callbacks.rb +2 -2
  168. data/lib/active_admin/cancan_adapter.rb +1 -1
  169. data/lib/active_admin/collection_decorator.rb +31 -0
  170. data/lib/active_admin/controller_action.rb +2 -1
  171. data/lib/active_admin/csv_builder.rb +30 -20
  172. data/lib/active_admin/dependency.rb +36 -29
  173. data/lib/active_admin/deprecation.rb +0 -25
  174. data/lib/active_admin/devise.rb +9 -9
  175. data/lib/active_admin/dsl.rb +5 -18
  176. data/lib/active_admin/dynamic_setting.rb +38 -0
  177. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  178. data/lib/active_admin/engine.rb +14 -7
  179. data/lib/active_admin/error.rb +6 -6
  180. data/lib/active_admin/filters/active.rb +29 -0
  181. data/lib/active_admin/filters/active_filter.rb +123 -0
  182. data/lib/active_admin/filters/active_sidebar.rb +54 -0
  183. data/lib/active_admin/filters/forms.rb +17 -10
  184. data/lib/active_admin/filters/formtastic_addons.rb +2 -7
  185. data/lib/active_admin/filters/resource_extension.rb +50 -14
  186. data/lib/active_admin/filters.rb +7 -5
  187. data/lib/active_admin/form_builder.rb +112 -67
  188. data/lib/active_admin/generators/boilerplate.rb +53 -0
  189. data/lib/active_admin/helpers/collection.rb +2 -0
  190. data/lib/active_admin/helpers/optional_display.rb +2 -2
  191. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -1
  192. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  193. data/lib/active_admin/inputs/datepicker_input.rb +13 -6
  194. data/lib/active_admin/inputs/filters/base/search_method_select.rb +9 -9
  195. data/lib/active_admin/inputs/filters/base.rb +3 -1
  196. data/lib/active_admin/inputs/filters/boolean_input.rb +1 -1
  197. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -1
  198. data/lib/active_admin/inputs/filters/date_picker_input.rb +13 -0
  199. data/lib/active_admin/inputs/filters/date_range_input.rb +25 -9
  200. data/lib/active_admin/inputs/filters/select_input.rb +8 -4
  201. data/lib/active_admin/inputs/filters/text_input.rb +25 -0
  202. data/lib/active_admin/inputs.rb +2 -0
  203. data/lib/active_admin/localizers/resource_localizer.rb +35 -0
  204. data/lib/active_admin/localizers.rb +11 -0
  205. data/lib/active_admin/menu.rb +13 -15
  206. data/lib/active_admin/menu_collection.rb +0 -2
  207. data/lib/active_admin/menu_item.rb +10 -38
  208. data/lib/active_admin/namespace.rb +51 -32
  209. data/lib/active_admin/namespace_settings.rb +126 -0
  210. data/lib/active_admin/order_clause.rb +30 -8
  211. data/lib/active_admin/orm/active_record/comments/comment.rb +6 -20
  212. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +44 -21
  213. data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
  214. data/lib/active_admin/orm/active_record/comments.rb +49 -29
  215. data/lib/active_admin/orm/active_record.rb +1 -1
  216. data/lib/active_admin/page.rb +24 -5
  217. data/lib/active_admin/page_controller.rb +2 -2
  218. data/lib/active_admin/page_dsl.rb +5 -1
  219. data/lib/active_admin/page_presenter.rb +2 -1
  220. data/lib/active_admin/pundit_adapter.rb +22 -9
  221. data/lib/active_admin/resource/action_items.rb +34 -12
  222. data/lib/active_admin/resource/attributes.rb +47 -0
  223. data/lib/active_admin/resource/belongs_to.rb +17 -4
  224. data/lib/active_admin/resource/controllers.rb +1 -1
  225. data/lib/active_admin/resource/menu.rb +9 -6
  226. data/lib/active_admin/resource/model.rb +15 -0
  227. data/lib/active_admin/resource/naming.rb +5 -5
  228. data/lib/active_admin/resource/ordering.rb +11 -0
  229. data/lib/active_admin/resource/page_presenters.rb +1 -1
  230. data/lib/active_admin/resource/pagination.rb +4 -0
  231. data/lib/active_admin/resource/routes.rb +56 -26
  232. data/lib/active_admin/resource/scope_to.rb +7 -7
  233. data/lib/active_admin/resource/scopes.rb +5 -3
  234. data/lib/active_admin/resource/sidebars.rb +2 -2
  235. data/lib/active_admin/resource.rb +80 -22
  236. data/lib/active_admin/resource_collection.rb +5 -3
  237. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  238. data/lib/active_admin/resource_controller/data_access.rb +56 -43
  239. data/lib/active_admin/resource_controller/decorators.rb +9 -31
  240. data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -0
  241. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  242. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  243. data/lib/active_admin/resource_controller/streaming.rb +12 -5
  244. data/lib/active_admin/resource_controller.rb +26 -10
  245. data/lib/active_admin/resource_dsl.rb +67 -21
  246. data/lib/active_admin/router.rb +90 -82
  247. data/lib/active_admin/scope.rb +21 -14
  248. data/lib/active_admin/settings_node.rb +19 -0
  249. data/lib/active_admin/sidebar_section.rb +6 -12
  250. data/lib/active_admin/version.rb +1 -1
  251. data/lib/active_admin/view_factory.rb +17 -18
  252. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
  253. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +5 -5
  254. data/lib/active_admin/view_helpers/display_helper.rb +51 -9
  255. data/lib/active_admin/view_helpers/download_format_links_helper.rb +14 -1
  256. data/lib/active_admin/view_helpers/fields_for.rb +4 -4
  257. data/lib/active_admin/view_helpers/form_helper.rb +2 -2
  258. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +11 -4
  259. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  260. data/lib/active_admin/view_helpers.rb +2 -2
  261. data/lib/active_admin/views/action_items.rb +1 -1
  262. data/lib/active_admin/views/components/active_admin_form.rb +45 -13
  263. data/lib/active_admin/views/components/attributes_table.rb +11 -29
  264. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  265. data/lib/active_admin/views/components/columns.rb +12 -7
  266. data/lib/active_admin/views/components/dropdown_menu.rb +11 -13
  267. data/lib/active_admin/views/components/index_list.rb +6 -5
  268. data/lib/active_admin/views/components/menu.rb +32 -0
  269. data/lib/active_admin/views/components/menu_item.rb +58 -0
  270. data/lib/active_admin/views/components/paginated_collection.rb +52 -33
  271. data/lib/active_admin/views/components/panel.rb +2 -4
  272. data/lib/active_admin/views/components/scopes.rb +20 -12
  273. data/lib/active_admin/views/components/sidebar.rb +13 -0
  274. data/lib/active_admin/views/components/sidebar_section.rb +6 -1
  275. data/lib/active_admin/views/components/site_title.rb +6 -7
  276. data/lib/active_admin/views/components/status_tag.rb +19 -23
  277. data/lib/active_admin/views/components/table_for.rb +31 -57
  278. data/lib/active_admin/views/components/tabs.rb +17 -5
  279. data/lib/active_admin/views/footer.rb +15 -4
  280. data/lib/active_admin/views/header.rb +3 -16
  281. data/lib/active_admin/views/index_as_blog.rb +3 -4
  282. data/lib/active_admin/views/index_as_grid.rb +28 -28
  283. data/lib/active_admin/views/index_as_table.rb +76 -28
  284. data/lib/active_admin/views/pages/base.rb +45 -58
  285. data/lib/active_admin/views/pages/form.rb +5 -2
  286. data/lib/active_admin/views/pages/index.rb +15 -13
  287. data/lib/active_admin/views/pages/layout.rb +1 -1
  288. data/lib/active_admin/views/pages/show.rb +9 -3
  289. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  290. data/lib/active_admin/views/title_bar.rb +6 -6
  291. data/lib/active_admin/views.rb +1 -1
  292. data/lib/active_admin.rb +69 -67
  293. data/lib/activeadmin.rb +1 -1
  294. data/lib/generators/active_admin/assets/assets_generator.rb +3 -3
  295. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  296. data/lib/generators/active_admin/assets/templates/{active_admin.css.scss → active_admin.scss} +3 -3
  297. data/lib/generators/active_admin/devise/devise_generator.rb +17 -26
  298. data/lib/generators/active_admin/install/install_generator.rb +18 -8
  299. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +107 -5
  300. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -3
  301. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  302. data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +2 -5
  303. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  304. data/lib/generators/active_admin/page/templates/page.rb +1 -1
  305. data/lib/generators/active_admin/resource/resource_generator.rb +8 -2
  306. data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
  307. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  308. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  309. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  310. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  311. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
  312. data/lib/ransack_ext.rb +11 -3
  313. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  314. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  315. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  316. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  317. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  318. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  319. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  320. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  321. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  322. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  323. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  324. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  325. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  326. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  327. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  328. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  329. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  330. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  331. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  332. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  333. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  334. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  335. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  336. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  337. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  338. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  339. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  340. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  341. metadata +182 -553
  342. data/.gitignore +0 -49
  343. data/.hound.yml +0 -11
  344. data/.travis.yml +0 -42
  345. data/.yardopts +0 -8
  346. data/Gemfile +0 -54
  347. data/Guardfile +0 -8
  348. data/Rakefile +0 -33
  349. data/activeadmin.gemspec +0 -28
  350. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  351. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  352. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  353. data/app/assets/images/active_admin/orderable.png +0 -0
  354. data/app/assets/javascripts/active_admin/application.js.coffee +0 -32
  355. data/app/assets/javascripts/active_admin/base.js.coffee +0 -14
  356. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  357. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  358. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  359. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -36
  360. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  361. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  362. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  363. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -37
  364. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -27
  365. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +0 -68
  366. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  367. data/app/assets/stylesheets/active_admin/components/_popovers.scss +0 -122
  368. data/app/assets/stylesheets/active_admin/mixins/_icons.scss +0 -20
  369. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  370. data/cucumber.yml +0 -3
  371. data/features/action_item.feature +0 -73
  372. data/features/authorization.feature +0 -64
  373. data/features/authorization_cancan.feature +0 -52
  374. data/features/authorization_pundit.feature +0 -37
  375. data/features/belongs_to.feature +0 -66
  376. data/features/breadcrumb.feature +0 -75
  377. data/features/comments/commenting.feature +0 -171
  378. data/features/comments/viewing_index.feature +0 -19
  379. data/features/dashboard.feature +0 -16
  380. data/features/decorators.feature +0 -41
  381. data/features/development_reloading.feature +0 -30
  382. data/features/edit_page.feature +0 -117
  383. data/features/favicon.feature +0 -20
  384. data/features/first_boot.feature +0 -16
  385. data/features/global_navigation.feature +0 -29
  386. data/features/i18n.feature +0 -43
  387. data/features/index/batch_actions.feature +0 -164
  388. data/features/index/filters.feature +0 -161
  389. data/features/index/format_as_csv.feature +0 -203
  390. data/features/index/formats.feature +0 -66
  391. data/features/index/index_as_block.feature +0 -15
  392. data/features/index/index_as_blog.feature +0 -69
  393. data/features/index/index_as_grid.feature +0 -45
  394. data/features/index/index_as_table.feature +0 -291
  395. data/features/index/index_blank_slate.feature +0 -83
  396. data/features/index/index_parameters.feature +0 -75
  397. data/features/index/index_scope_to.feature +0 -56
  398. data/features/index/index_scopes.feature +0 -251
  399. data/features/index/page_title.feature +0 -41
  400. data/features/index/pagination.feature +0 -59
  401. data/features/index/switch_index_view.feature +0 -73
  402. data/features/menu.feature +0 -53
  403. data/features/new_page.feature +0 -109
  404. data/features/registering_assets.feature +0 -35
  405. data/features/registering_pages.feature +0 -148
  406. data/features/registering_resources.feature +0 -33
  407. data/features/renamed_resource.feature +0 -32
  408. data/features/root_to.feature +0 -17
  409. data/features/show/default_content.feature +0 -43
  410. data/features/show/page_title.feature +0 -58
  411. data/features/show/tabs.feature +0 -27
  412. data/features/sidebar_sections.feature +0 -210
  413. data/features/site_title.feature +0 -47
  414. data/features/specifying_actions.feature +0 -93
  415. data/features/step_definitions/action_item_steps.rb +0 -7
  416. data/features/step_definitions/action_link_steps.rb +0 -20
  417. data/features/step_definitions/additional_web_steps.rb +0 -81
  418. data/features/step_definitions/asset_steps.rb +0 -15
  419. data/features/step_definitions/attribute_steps.rb +0 -18
  420. data/features/step_definitions/batch_action_steps.rb +0 -72
  421. data/features/step_definitions/blog_steps.rb +0 -3
  422. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  423. data/features/step_definitions/comment_steps.rb +0 -12
  424. data/features/step_definitions/configuration_steps.rb +0 -100
  425. data/features/step_definitions/dashboard_steps.rb +0 -15
  426. data/features/step_definitions/factory_steps.rb +0 -34
  427. data/features/step_definitions/filter_steps.rb +0 -39
  428. data/features/step_definitions/flash_steps.rb +0 -11
  429. data/features/step_definitions/format_steps.rb +0 -52
  430. data/features/step_definitions/i18n_steps.rb +0 -3
  431. data/features/step_definitions/index_scope_steps.rb +0 -21
  432. data/features/step_definitions/index_views_steps.rb +0 -3
  433. data/features/step_definitions/layout_steps.rb +0 -3
  434. data/features/step_definitions/member_link_steps.rb +0 -7
  435. data/features/step_definitions/menu_steps.rb +0 -11
  436. data/features/step_definitions/pagination_steps.rb +0 -7
  437. data/features/step_definitions/sidebar_steps.rb +0 -13
  438. data/features/step_definitions/site_title_steps.rb +0 -17
  439. data/features/step_definitions/symbol_leak_steps.rb +0 -3
  440. data/features/step_definitions/tab_steps.rb +0 -8
  441. data/features/step_definitions/table_steps.rb +0 -119
  442. data/features/step_definitions/user_steps.rb +0 -45
  443. data/features/step_definitions/web_steps.rb +0 -85
  444. data/features/sti_resource.feature +0 -65
  445. data/features/strong_parameters.feature +0 -73
  446. data/features/support/env.rb +0 -145
  447. data/features/support/paths.rb +0 -71
  448. data/features/support/selectors.rb +0 -45
  449. data/features/symbol_leak.feature +0 -35
  450. data/features/users/logging_in.feature +0 -34
  451. data/features/users/logging_out.feature +0 -13
  452. data/features/users/resetting_password.feature +0 -34
  453. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +0 -28
  454. data/lib/active_admin/event.rb +0 -33
  455. data/lib/active_admin/helpers/settings.rb +0 -115
  456. data/lib/active_admin/iconic/icons.rb +0 -142
  457. data/lib/active_admin/iconic.rb +0 -53
  458. data/lib/active_admin/view_helpers/icon_helper.rb +0 -12
  459. data/lib/active_admin/views/components/action_list_popover.rb +0 -29
  460. data/lib/active_admin/views/components/popover.rb +0 -27
  461. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  462. data/lib/generators/active_admin/resource/templates/admin.rb +0 -18
  463. data/script/local +0 -44
  464. data/script/travis_cache +0 -107
  465. data/script/use_rails +0 -53
  466. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  467. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  468. data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +0 -82
  469. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  470. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  471. data/spec/javascripts/fixtures/flashes.html +0 -2
  472. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  473. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  474. data/spec/javascripts/support/jasmine.yml +0 -74
  475. data/spec/javascripts/support/jasmine_config.rb +0 -23
  476. data/spec/javascripts/support/jasmine_runner.rb +0 -32
  477. data/spec/rails_helper.rb +0 -154
  478. data/spec/requests/default_namespace_spec.rb +0 -61
  479. data/spec/requests/javascript_spec.rb +0 -20
  480. data/spec/requests/memory_spec.rb +0 -23
  481. data/spec/requests/stylesheets_spec.rb +0 -18
  482. data/spec/spec_helper.rb +0 -17
  483. data/spec/support/deferred_garbage_collection.rb +0 -19
  484. data/spec/support/detect_rails_version.rb +0 -34
  485. data/spec/support/integration_example_group.rb +0 -31
  486. data/spec/support/jslint.yml +0 -80
  487. data/spec/support/rails_template.rb +0 -138
  488. data/spec/support/rails_template_with_data.rb +0 -59
  489. data/spec/support/templates/admin/stores.rb +0 -9
  490. data/spec/support/templates/cucumber.rb +0 -24
  491. data/spec/support/templates/cucumber_with_reloading.rb +0 -5
  492. data/spec/support/templates/en.yml +0 -8
  493. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  494. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  495. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  496. data/spec/support/templates/policies/application_policy.rb +0 -45
  497. data/spec/support/templates/policies/category_policy.rb +0 -7
  498. data/spec/support/templates/policies/post_policy.rb +0 -15
  499. data/spec/support/templates/policies/store_policy.rb +0 -11
  500. data/spec/support/templates/policies/user_policy.rb +0 -11
  501. data/spec/support/templates/post_decorator.rb +0 -11
  502. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  503. data/spec/unit/action_builder_spec.rb +0 -132
  504. data/spec/unit/active_admin_spec.rb +0 -11
  505. data/spec/unit/application_spec.rb +0 -140
  506. data/spec/unit/asset_registration_spec.rb +0 -52
  507. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  508. data/spec/unit/authorization/controller_authorization_spec.rb +0 -39
  509. data/spec/unit/authorization/index_overriding_spec.rb +0 -22
  510. data/spec/unit/auto_link_spec.rb +0 -69
  511. data/spec/unit/batch_actions/resource_spec.rb +0 -92
  512. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  513. data/spec/unit/belongs_to_spec.rb +0 -51
  514. data/spec/unit/cancan_adapter_spec.rb +0 -43
  515. data/spec/unit/comments_spec.rb +0 -166
  516. data/spec/unit/component_spec.rb +0 -18
  517. data/spec/unit/config_shared_examples.rb +0 -59
  518. data/spec/unit/controller_filters_spec.rb +0 -44
  519. data/spec/unit/csv_builder_spec.rb +0 -244
  520. data/spec/unit/dependency_spec.rb +0 -135
  521. data/spec/unit/devise_spec.rb +0 -96
  522. data/spec/unit/dsl_spec.rb +0 -122
  523. data/spec/unit/event_spec.rb +0 -47
  524. data/spec/unit/filters/filter_form_builder_spec.rb +0 -433
  525. data/spec/unit/filters/resource_spec.rb +0 -121
  526. data/spec/unit/form_builder_spec.rb +0 -752
  527. data/spec/unit/generators/install_spec.rb +0 -23
  528. data/spec/unit/helpers/collection_spec.rb +0 -65
  529. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  530. data/spec/unit/helpers/settings_spec.rb +0 -30
  531. data/spec/unit/i18n_spec.rb +0 -12
  532. data/spec/unit/menu_collection_spec.rb +0 -62
  533. data/spec/unit/menu_item_spec.rb +0 -143
  534. data/spec/unit/menu_spec.rb +0 -71
  535. data/spec/unit/namespace/authorization_spec.rb +0 -27
  536. data/spec/unit/namespace/register_page_spec.rb +0 -74
  537. data/spec/unit/namespace/register_resource_spec.rb +0 -161
  538. data/spec/unit/namespace_spec.rb +0 -103
  539. data/spec/unit/order_clause_spec.rb +0 -81
  540. data/spec/unit/page_controller_spec.rb +0 -5
  541. data/spec/unit/page_spec.rb +0 -78
  542. data/spec/unit/pretty_format_spec.rb +0 -63
  543. data/spec/unit/pundit_adapter_spec.rb +0 -98
  544. data/spec/unit/resource/action_items_spec.rb +0 -65
  545. data/spec/unit/resource/includes_spec.rb +0 -21
  546. data/spec/unit/resource/menu_spec.rb +0 -18
  547. data/spec/unit/resource/naming_spec.rb +0 -122
  548. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  549. data/spec/unit/resource/pagination_spec.rb +0 -38
  550. data/spec/unit/resource/routes_spec.rb +0 -73
  551. data/spec/unit/resource/scopes_spec.rb +0 -50
  552. data/spec/unit/resource/sidebars_spec.rb +0 -43
  553. data/spec/unit/resource_collection_spec.rb +0 -158
  554. data/spec/unit/resource_controller/data_access_spec.rb +0 -140
  555. data/spec/unit/resource_controller/decorators_spec.rb +0 -83
  556. data/spec/unit/resource_controller/sidebars_spec.rb +0 -45
  557. data/spec/unit/resource_controller_spec.rb +0 -269
  558. data/spec/unit/resource_registration_spec.rb +0 -56
  559. data/spec/unit/resource_spec.rb +0 -278
  560. data/spec/unit/routing_spec.rb +0 -180
  561. data/spec/unit/scope_spec.rb +0 -190
  562. data/spec/unit/settings_spec.rb +0 -118
  563. data/spec/unit/view_factory_spec.rb +0 -21
  564. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
  565. data/spec/unit/view_helpers/display_name_spec.rb +0 -69
  566. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  567. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  568. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  569. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  570. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  571. data/spec/unit/views/components/action_list_popover_spec.rb +0 -40
  572. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  573. data/spec/unit/views/components/batch_action_popover_spec.rb +0 -47
  574. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  575. data/spec/unit/views/components/columns_spec.rb +0 -172
  576. data/spec/unit/views/components/index_list_spec.rb +0 -35
  577. data/spec/unit/views/components/index_table_for_spec.rb +0 -46
  578. data/spec/unit/views/components/paginated_collection_spec.rb +0 -236
  579. data/spec/unit/views/components/panel_spec.rb +0 -62
  580. data/spec/unit/views/components/popover_spec.rb +0 -33
  581. data/spec/unit/views/components/sidebar_section_spec.rb +0 -47
  582. data/spec/unit/views/components/site_title_spec.rb +0 -78
  583. data/spec/unit/views/components/status_tag_spec.rb +0 -235
  584. data/spec/unit/views/components/table_for_spec.rb +0 -384
  585. data/spec/unit/views/components/tabs_spec.rb +0 -39
  586. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -47
  587. data/spec/unit/views/pages/form_spec.rb +0 -42
  588. data/spec/unit/views/pages/index_spec.rb +0 -60
  589. data/spec/unit/views/pages/layout_spec.rb +0 -59
  590. data/spec/unit/views/pages/show_spec.rb +0 -33
  591. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  592. data/tasks/docs.rake +0 -37
  593. data/tasks/parallel_tests.rake +0 -66
  594. data/tasks/test.rake +0 -83
  595. data/tasks/yard.rake +0 -9
@@ -1,13 +0,0 @@
1
- Then /^I should see a sidebar titled "([^"]*)"$/ do |title|
2
- expect(page).to have_css '.sidebar_section h3', text: title
3
- end
4
-
5
- Then /^I should not see a sidebar titled "([^"]*)"$/ do |title|
6
- title = title.tr(' ', '').underscore
7
- sidebars = page.all :css, "##{title}_sidebar_section"
8
- expect(sidebars.count).to eq 0
9
- end
10
-
11
- Then(/^I should see a sidebar titled "(.*?)" above sidebar titled "(.*?)"$/) do |top_title, bottom_title|
12
- expect(page).to have_css %Q(.sidebar_section:contains('#{top_title}') + .sidebar_section:contains('#{bottom_title}'))
13
- end
@@ -1,17 +0,0 @@
1
- Then /^I should see the site title "([^"]*)"$/ do |title|
2
- expect(page).to have_css 'h1#site_title', text: title
3
- end
4
-
5
- Then /^I should not see the site title "([^"]*)"$/ do |title|
6
- expect(page).to_not have_css 'h1#site_title', text: title
7
- end
8
-
9
- Then /^I should see the site title image "([^"]*)"$/ do |image|
10
- img = page.find('h1#site_title img')
11
- expect(img[:src]).to eq(image)
12
- end
13
-
14
- Then /^I should see the site title image linked to "([^"]*)"$/ do |url|
15
- link = page.find('h1#site_title a')
16
- expect(link[:href]).to eq(url)
17
- end
@@ -1,3 +0,0 @@
1
- Then /^"(.*?)" shouldn't be a symbol$/ do |sym|
2
- expect(Symbol.all_symbols.map &:to_s).to_not include(sym), 'symbol detected!'
3
- end
@@ -1,8 +0,0 @@
1
- Then /^the "([^"]*)" tab should be selected$/ do |name|
2
- step %{I should see "#{name}" within "ul#tabs li.current"}
3
- end
4
-
5
- Then(/^I should see two tabs "(.*?)" and "(.*?)"$/) do |tab_1, tab_2|
6
- expect(page).to have_link(tab_1)
7
- expect(page).to have_link(tab_2)
8
- end
@@ -1,119 +0,0 @@
1
- Then /^I should see (\d+) ([\w]*) in the table$/ do |count, resource_type|
2
- expect(all("table.index_table tr > td:first").count).to eq count.to_i
3
- end
4
-
5
- # TODO: simplify this, if possible?
6
- class HtmlTableToTextHelper
7
- def initialize(html, table_css_selector = "table")
8
- @html = html
9
- @selector = table_css_selector
10
- end
11
-
12
- def to_array
13
- rows = Nokogiri::HTML(@html).css("#{@selector} tr")
14
- rows.map do |row|
15
- row.css('th, td').map do |td|
16
- cell_to_string(td)
17
- end
18
- end
19
- end
20
-
21
- private
22
-
23
- def cell_to_string(td)
24
- str = ""
25
- input = td.css('input').last
26
-
27
- if input
28
- str << input_to_string(input)
29
- end
30
-
31
- str << td.content.strip.gsub("\n", ' ')
32
- end
33
-
34
- def input_to_string(input)
35
- case input.attribute("type").value
36
- when "checkbox"
37
- if input.attribute("disabled")
38
- "_"
39
- else
40
- if input.attribute("checked")
41
- "[X]"
42
- else
43
- "[ ]"
44
- end
45
- end
46
- when "text"
47
- if input.attribute("value").present?
48
- "[#{input.attribute("value")}]"
49
- else
50
- "[ ]"
51
- end
52
- when "submit"
53
- input.attribute("value")
54
- else
55
- raise "I don't know what to do with #{input}"
56
- end
57
- end
58
- end
59
-
60
- module TableMatchHelper
61
-
62
-
63
- # @param table [Array[Array]]
64
- # @param expected_table [Array[Array[String]]]
65
- # The expected_table values are String. They are converted to
66
- # Regexp when they start and end with a '/'
67
- # Example:
68
- #
69
- # assert_table_match(
70
- # [["Name", "Date"], ["Philippe", "Feb 08"]],
71
- # [["Name", "Date"], ["Philippe", "/\w{3} \d{2}/"]]
72
- # )
73
- def assert_tables_match(table, expected_table)
74
- expected_table.each_index do |row_index|
75
- expected_table[row_index].each_index do |column_index|
76
- expected_cell = expected_table[row_index][column_index]
77
- cell = table.try(:[], row_index).try(:[], column_index)
78
- begin
79
- assert_cells_match(cell, expected_cell)
80
- rescue
81
- puts "Cell at line #{row_index} and column #{column_index}: #{cell.inspect} does not match #{expected_cell.inspect}"
82
- puts "Expecting:"
83
- table.each { |row| puts row.inspect }
84
- puts "to match:"
85
- expected_table.each { |row| puts row.inspect }
86
- raise $!
87
- end
88
- end
89
- end
90
- end
91
-
92
- def assert_cells_match(cell, expected_cell)
93
- if expected_cell =~ /^\/.*\/$/
94
- expect(cell).to match /#{expected_cell[1..-2]}/
95
- else
96
- expect((cell || "").strip).to eq expected_cell
97
- end
98
- end
99
-
100
- end # module TableMatchHelper
101
-
102
- World(TableMatchHelper)
103
-
104
-
105
- # Usage:
106
- #
107
- # I should see the "invoices" table:
108
- # | Invoice # | Date | Total Amount |
109
- # | /\d+/ | 27/01/12 | $30.00 |
110
- # | /\d+/ | 12/02/12 | $25.00 |
111
- #
112
- Then /^I should see the "([^"]*)" table:$/ do |table_id, expected_table|
113
- expect(page).to have_css "table##{table_id}"
114
-
115
- assert_tables_match(
116
- HtmlTableToTextHelper.new(page.body, "table##{table_id}").to_array,
117
- expected_table.raw
118
- )
119
- end
@@ -1,45 +0,0 @@
1
- def ensure_user_created(email)
2
- user = AdminUser.where(email: email).first_or_create(password: 'password', password_confirmation: 'password')
3
-
4
- unless user.persisted?
5
- raise "Could not create user #{email}: #{user.errors.full_messages}"
6
- end
7
- user
8
- end
9
-
10
- Given /^(?:I am logged|log) out$/ do
11
- click_link 'Logout' if page.all(:css, "a", text: 'Logout').any?
12
- end
13
-
14
- Given /^I am logged in$/ do
15
- step 'log out'
16
- login_as ensure_user_created 'admin@example.com'
17
- end
18
-
19
- # only for @requires-reloading scenario
20
- Given /^I am logged in with capybara$/ do
21
- ensure_user_created 'admin@example.com'
22
- step 'log out'
23
-
24
- visit new_admin_user_session_path
25
- fill_in 'Email', with: 'admin@example.com'
26
- fill_in 'Password', with: 'password'
27
- click_button 'Login'
28
- end
29
-
30
- Given /^an admin user "([^"]*)" exists$/ do |email|
31
- ensure_user_created(email)
32
- end
33
-
34
- Given /^"([^"]*)" requests a password reset with token "([^"]*)"( but it expires)?$/ do |email, token, expired|
35
- visit new_admin_user_password_path
36
- fill_in 'Email', with: email
37
- allow(Devise).to receive(:friendly_token).and_return(token)
38
- click_button "Reset My Password"
39
-
40
- AdminUser.where(email: email).first.update_attribute :reset_password_sent_at, 1.month.ago if expired
41
- end
42
-
43
- When /^I fill in the password field with "([^"]*)"$/ do |password|
44
- fill_in 'admin_user_password', with: password
45
- end
@@ -1,85 +0,0 @@
1
- require 'uri'
2
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths"))
3
- require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "selectors"))
4
-
5
- module WithinHelpers
6
- def with_scope(locator)
7
- locator ? within(*selector_for(locator)) { yield } : yield
8
- end
9
- end
10
- World(WithinHelpers)
11
-
12
- # Single-line step scoper
13
- When /^(.*) within (.*[^:])$/ do |step_name, parent|
14
- with_scope(parent) { step step_name }
15
- end
16
-
17
- # Multi-line step scoper
18
- When /^(.*) within (.*[^:]):$/ do |step_name, parent, table_or_string|
19
- with_scope(parent) { step "#{step_name}:", table_or_string }
20
- end
21
-
22
- Given /^(?:I )am on (.+)$/ do |page_name|
23
- visit path_to(page_name)
24
- end
25
-
26
- When /^(?:I )go to (.+)$/ do |page_name|
27
- visit path_to(page_name)
28
- end
29
-
30
- When /^(?:I )POST to "(.*?)" with params "(.*?)"$/ do |url, params|
31
- post "#{url}#{params}"
32
- end
33
-
34
- When /^(?:I )press "([^"]*)"$/ do |button|
35
- click_button(button)
36
- end
37
-
38
- When /^(?:I )follow "([^"]*)"$/ do |link|
39
- first(:link, link).click
40
- end
41
-
42
- When /^(?:I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
43
- fill_in(field, with: value)
44
- end
45
-
46
- When /^(?:I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
47
- select(value, from: field)
48
- end
49
-
50
- When /^(?:I )(check|uncheck|choose) "([^"]*)"$/ do |action, field|
51
- send action, field
52
- end
53
-
54
- When /^(?:I )attach the file "([^"]*)" to "([^"]*)"$/ do |path, field|
55
- attach_file(field, File.expand_path(path))
56
- end
57
-
58
- Then /^(?:I )should( not)? see( the element)? "([^"]*)"$/ do |negate, is_css, text|
59
- should = negate ? :not_to : :to
60
- have = is_css ? have_css(text) : have_content(text)
61
- expect(page).send should, have
62
- end
63
-
64
- Then /^the "([^"]*)" field(?: within (.*))? should( not)? contain "([^"]*)"$/ do |field, parent, negate, value|
65
- with_scope(parent) do
66
- field = find_field(field)
67
- value = field.tag_name == 'textarea' ? field.text : field.value
68
-
69
- expect(value).send negate ? :not_to : :to, match(/#{value}/)
70
- end
71
- end
72
-
73
- Then /^the "([^"]*)" checkbox(?: within (.*))? should( not)? be checked$/ do |label, parent, negate|
74
- with_scope(parent) do
75
- expect(find_field(label)['checked']).to negate ? eq(false) : eq(true)
76
- end
77
- end
78
-
79
- Then /^(?:|I )should be on (.+)$/ do |page_name|
80
- expect(URI.parse(current_url).path).to eq path_to page_name
81
- end
82
-
83
- Then /^show me the page$/ do
84
- save_and_open_page
85
- end
@@ -1,65 +0,0 @@
1
- Feature: STI Resource
2
-
3
- Ensure that standard CRUD works with STI models
4
-
5
- Background:
6
- Given I am logged in
7
- And a configuration of:
8
- """
9
- ActiveAdmin.register Publisher do
10
- permit_params :first_name, :last_name, :username, :age if Rails::VERSION::MAJOR == 4
11
- end
12
- ActiveAdmin.register User do
13
- permit_params :first_name, :last_name, :username, :age if Rails::VERSION::MAJOR == 4
14
- end
15
- """
16
-
17
- Scenario: Create, update and delete a child STI resource
18
- Given I am on the index page for publishers
19
- When I follow "New Publisher"
20
- And I fill in "First name" with "Terry"
21
- And I fill in "Last name" with "Fox"
22
- And I fill in "Username" with "terry_fox"
23
- And I press "Create Publisher"
24
- Then I should see "Publisher was successfully created"
25
- And I should see "Terry"
26
-
27
- When I follow "Edit Publisher"
28
- And I fill in "First name" with "Joe"
29
- And I press "Update Publisher"
30
- Then I should see "Publisher was successfully updated"
31
- And I should see "Joe"
32
-
33
- When I follow "Delete Publisher"
34
- Then I should see "Publisher was successfully destroyed"
35
-
36
- Scenario: Create, update and delete a parent STI resource
37
- Given I am on the index page for users
38
- When I follow "New User"
39
- And I fill in "First name" with "Terry"
40
- And I fill in "Last name" with "Fox"
41
- And I fill in "Username" with "terry_fox"
42
- And I press "Create User"
43
- Then I should see "User was successfully created"
44
- And I should see "Terry"
45
-
46
- When I follow "Edit User"
47
- And I fill in "First name" with "Joe"
48
- And I press "Update User"
49
- Then I should see "User was successfully updated"
50
- And I should see "Joe"
51
-
52
- When I follow "Delete User"
53
- Then I should see "User was successfully destroyed"
54
-
55
- Scenario: Update and delete a child STI when the parent is registered
56
- Given a publisher named "Terry Fox" exists
57
- And I am on the index page for users
58
- When I follow "Edit"
59
- And I fill in "First name" with "Joe"
60
- And I press "Update Publisher"
61
- Then I should see "Publisher was successfully updated"
62
- And I should see "Joe"
63
-
64
- When I follow "Delete User"
65
- Then I should see "Publisher was successfully destroyed"
@@ -1,73 +0,0 @@
1
- @rails4
2
- @silent_unpermitted_params_failure
3
- Feature: Strong Params
4
-
5
- When I am using Rails 4
6
- I want to use Strong Parameters
7
-
8
- Background:
9
- Given a category named "Music" exists
10
- And a user named "John Doe" exists
11
- And a post with the title "Hello World" written by "John Doe" exists
12
- And I am logged in
13
- Given a configuration of:
14
- """
15
- ActiveAdmin.register Post do
16
- end
17
- """
18
- When I am on the index page for posts
19
-
20
- Scenario: Static permitted parameters
21
- Given a configuration of:
22
- """
23
- ActiveAdmin.register Post do
24
- permit_params :author, :title, :starred
25
- end
26
- """
27
- Given I follow "Edit"
28
-
29
- When I fill in "Title" with "Hello World from update"
30
- And I check "Starred"
31
- When I press "Update Post"
32
- Then I should see "Post was successfully updated."
33
- And I should see the attribute "Title" with "Hello World from update"
34
- And I should see the attribute "Author" with "John Doe"
35
- And I should see the attribute "Starred" with "true"
36
-
37
- Scenario: Dynamic permitted parameters
38
- Given a configuration of:
39
- """
40
- ActiveAdmin.register Post do
41
- permit_params do
42
- allow = [:author, :title]
43
- allow << :starred
44
- allow
45
- end
46
- end
47
- """
48
- Given I follow "Edit"
49
-
50
- When I fill in "Title" with "Hello World from update"
51
- And I check "Starred"
52
- When I press "Update Post"
53
- Then I should see "Post was successfully updated."
54
- And I should see the attribute "Title" with "Hello World from update"
55
- And I should see the attribute "Author" with "John Doe"
56
- And I should see the attribute "Starred" with "true"
57
-
58
- Scenario: Should not update parameters that are not declared as permitted
59
- Given a configuration of:
60
- """
61
- ActiveAdmin.register Post do
62
- permit_params :author, :title
63
- end
64
- """
65
- Given I follow "Edit"
66
-
67
- When I fill in "Title" with "Hello World from update"
68
- And I check "Starred"
69
- When I press "Update Post"
70
- Then I should see "Post was successfully updated."
71
- And I should see the attribute "Title" with "Hello World from update"
72
- And I should see the attribute "Author" with "John Doe"
73
- And the attribute "Starred" should be empty
@@ -1,145 +0,0 @@
1
- # IMPORTANT: This file is generated by cucumber-rails - edit at your own peril.
2
- # It is recommended to regenerate this file in the future when you upgrade to a
3
- # newer version of cucumber-rails. Consider adding your own code to a new file
4
- # instead of editing this one. Cucumber will automatically load all features/**/*.rb
5
- # files.
6
-
7
- ENV["RAILS_ENV"] ||= "cucumber"
8
-
9
- require File.expand_path('../../../spec/spec_helper', __FILE__)
10
-
11
- ENV['RAILS_ROOT'] = File.expand_path("../../../spec/rails/rails-#{ENV["RAILS"]}", __FILE__)
12
-
13
- # Create the test app if it doesn't exists
14
- unless File.exists?(ENV['RAILS_ROOT'])
15
- system 'rake setup'
16
- end
17
-
18
- require 'rails'
19
- require 'active_record'
20
- require 'active_admin'
21
- require 'devise'
22
- ActiveAdmin.application.load_paths = [ENV['RAILS_ROOT'] + "/app/admin"]
23
-
24
- require ENV['RAILS_ROOT'] + '/config/environment'
25
-
26
- # Setup autoloading of ActiveAdmin and the load path
27
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
28
- autoload :ActiveAdmin, 'active_admin'
29
-
30
- require 'cucumber/rails'
31
-
32
- require 'rspec/mocks'
33
- World(RSpec::Mocks::ExampleMethods)
34
-
35
- Before do
36
- RSpec::Mocks.setup
37
- end
38
-
39
- After do
40
- begin
41
- RSpec::Mocks.verify
42
- ensure
43
- RSpec::Mocks.teardown
44
- end
45
- end
46
-
47
- require 'capybara/rails'
48
- require 'capybara/cucumber'
49
- require 'capybara/session'
50
- require 'capybara/poltergeist'
51
- require 'phantomjs/poltergeist'
52
-
53
- Capybara.javascript_driver = :poltergeist
54
-
55
- # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
56
- # order to ease the transition to Capybara we set the default here. If you'd
57
- # prefer to use XPath just remove this line and adjust any selectors in your
58
- # steps to use the XPath syntax.
59
- Capybara.default_selector = :css
60
-
61
- # If you set this to false, any error raised from within your app will bubble
62
- # up to your step definition and out to cucumber unless you catch it somewhere
63
- # on the way. You can make Rails rescue errors and render error pages on a
64
- # per-scenario basis by tagging a scenario or feature with the @allow-rescue tag.
65
- #
66
- # If you set this to true, Rails will rescue all errors and render error
67
- # pages, more or less in the same way your application would behave in the
68
- # default production environment. It's not recommended to do this for all
69
- # of your scenarios, as this makes it hard to discover errors in your application.
70
- ActionController::Base.allow_rescue = false
71
-
72
- # If you set this to true, each scenario will run in a database transaction.
73
- # You can still turn off transactions on a per-scenario basis, simply tagging
74
- # a feature or scenario with the @no-txn tag. If you are using Capybara,
75
- # tagging with @culerity or @javascript will also turn transactions off.
76
- #
77
- # If you set this to false, transactions will be off for all scenarios,
78
- # regardless of whether you use @no-txn or not.
79
- #
80
- # Beware that turning transactions off will leave data in your database
81
- # after each scenario, which can lead to hard-to-debug failures in
82
- # subsequent scenarios. If you do this, we recommend you create a Before
83
- # block that will explicitly put your database in a known state.
84
- Cucumber::Rails::World.use_transactional_fixtures = false
85
- # How to clean your database when transactions are turned off. See
86
- # http://github.com/bmabey/database_cleaner for more info.
87
- if defined?(ActiveRecord::Base)
88
- begin
89
- require 'database_cleaner'
90
- require 'database_cleaner/cucumber'
91
- DatabaseCleaner.strategy = :truncation
92
- rescue LoadError => ignore_if_database_cleaner_not_present
93
- end
94
- end
95
-
96
- # Warden helpers to speed up login
97
- # See https://github.com/plataformatec/devise/wiki/How-To:-Test-with-Capybara
98
- include Warden::Test::Helpers
99
-
100
- After do
101
- Warden.test_reset!
102
-
103
- # Reset back to the default auth adapter
104
- ActiveAdmin.application.namespace(:admin).
105
- authorization_adapter = ActiveAdmin::AuthorizationAdapter
106
- end
107
-
108
- Before do
109
-
110
- begin
111
- # We are caching classes, but need to manually clear references to
112
- # the controllers. If they aren't clear, the router stores references
113
- ActiveSupport::Dependencies.clear
114
-
115
- # Reload Active Admin
116
- ActiveAdmin.unload!
117
- ActiveAdmin.load!
118
- rescue
119
- p $!
120
- raise $!
121
- end
122
- end
123
-
124
- # improve the performance of the specs suite by not logging anything
125
- # see http://blog.plataformatec.com.br/2011/12/three-tips-to-improve-the-performance-of-your-test-suite/
126
- Rails.logger.level = 4
127
-
128
- # Improves performance by forcing the garbage collector to run less often.
129
- unless ENV['DEFER_GC'] == '0' || ENV['DEFER_GC'] == 'false'
130
- require File.expand_path('../../../spec/support/deferred_garbage_collection', __FILE__)
131
- Before { DeferredGarbageCollection.start }
132
- After { DeferredGarbageCollection.reconsider }
133
- end
134
-
135
- # Don't run @rails4 tagged features for versions before Rails 4.
136
- Before('@rails4') do |scenario|
137
- scenario.skip_invoke! if Rails::VERSION::MAJOR < 4
138
- end
139
-
140
- Around '@silent_unpermitted_params_failure' do |scenario, block|
141
- original = ActionController::Parameters.action_on_unpermitted_parameters
142
- ActionController::Parameters.action_on_unpermitted_parameters = false
143
- block.call
144
- ActionController::Parameters.action_on_unpermitted_parameters = original
145
- end
@@ -1,71 +0,0 @@
1
- module NavigationHelpers
2
- # Maps a name to a path. Used by the
3
- #
4
- # When /^I go to (.+)$/ do |page_name|
5
- #
6
- # step definition in web_steps.rb
7
- #
8
- def path_to(page_name)
9
- params = page_name.scan(/with params "(.*?)"/).flatten[0] || ''
10
- page_name.sub! /\ with params.*/, ''
11
-
12
- url = case page_name
13
-
14
- when /the home\s?page/
15
- '/'
16
- when /the dashboard/
17
- "/admin"
18
- when /the new post page/
19
- "/admin/posts/new"
20
- when /the login page/
21
- "/admin/login"
22
- when /the first post show page/
23
- "/admin/posts/1"
24
- when /the first post edit page/
25
- "/admin/posts/1/edit"
26
- when /the admin password reset form with token "([^"]*)"/
27
- "/admin/password/edit?reset_password_token=#{$1}"
28
-
29
- # the index page for posts in the root namespace
30
- # the index page for posts in the user_admin namespace
31
- when /^the index page for (.*) in the (.*) namespace$/
32
- if $2 != 'root'
33
- send "#{$2}_#{$1}_path"
34
- else
35
- send "#{$1}_path"
36
- end
37
-
38
- # same as above, except defaults to admin namespace
39
- when /^the index page for (.*)$/
40
- send "admin_#{$1}_path"
41
-
42
- when /^the last author's posts$/
43
- admin_user_posts_path(User.last)
44
-
45
- when /^the last author's last post page$/
46
- admin_user_post_path(User.last, Post.where(author_id: User.last.id).last)
47
-
48
- when /^the last post's edit page$/
49
- edit_admin_post_path(Post.last)
50
-
51
- # Add more mappings here.
52
- # Here is an example that pulls values out of the Regexp:
53
- #
54
- # when /^(.*)'s profile page$/i
55
- # user_profile_path(User.find_by_login($1))
56
-
57
- else
58
- begin
59
- page_name =~ /the (.*) page/
60
- path_components = $1.split(/\s+/)
61
- self.send path_components.push('path').join('_')
62
- rescue Object => e
63
- raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
64
- "Now, go and add a mapping in #{__FILE__}"
65
- end
66
- end
67
- url + params
68
- end
69
- end
70
-
71
- World(NavigationHelpers)