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,93 +0,0 @@
1
- Feature: Specifying Actions
2
-
3
- Specifying which actions to allow on my resource
4
-
5
- Scenario: Only creating the index action
6
- Given a configuration of:
7
- """
8
- ActiveAdmin.register Post do
9
- actions :index
10
- index do
11
- column do |post|
12
- link_to "View", "/admin/posts/1"
13
- end
14
- end
15
- end
16
- """
17
- And I am logged in
18
- And a post with the title "Hello World" exists
19
- When I am on the index page for posts
20
- Then an "ActionController::RoutingError" exception should be raised when I follow "View"
21
-
22
- Scenario: Specify a custom collection action with template
23
- Given a configuration of:
24
- """
25
- ActiveAdmin.register Post do
26
- action_item(:import, :only => :index) do
27
- link_to('Import Posts', import_admin_posts_path)
28
- end
29
-
30
- collection_action :import
31
- end
32
- """
33
- Given "app/views/admin/posts/import.html.arb" contains:
34
- """
35
- para "We are currently working on this feature..."
36
- """
37
- And I am logged in
38
- When I am on the index page for posts
39
- And I follow "Import"
40
- Then I should see "We are currently working on this feature"
41
-
42
- Scenario: Specify a custom member action with template
43
- Given a configuration of:
44
- """
45
- ActiveAdmin.register Post do
46
- action_item(:review, :only => :show) do
47
- link_to('Review', review_admin_post_path)
48
- end
49
-
50
- member_action :review do
51
- @post = Post.find(params[:id])
52
- end
53
- end
54
- """
55
- Given "app/views/admin/posts/review.html.erb" contains:
56
- """
57
- <h1>Review: <%= @post.title %></h1>
58
- """
59
- And I am logged in
60
- And a post with the title "Hello World" exists
61
- When I am on the index page for posts
62
- And I follow "View"
63
- And I follow "Review"
64
- Then I should see "Review: Hello World"
65
- And I should see the page title "Review"
66
- And I should see the Active Admin layout
67
-
68
- Scenario: Specify a custom member action with template using arb
69
- Given a configuration of:
70
- """
71
- ActiveAdmin.register Post do
72
- action_item(:review, :only => :show) do
73
- link_to('Review', review_admin_post_path)
74
- end
75
-
76
- member_action :review do
77
- @post = Post.find(params[:id])
78
- end
79
- end
80
- """
81
- Given "app/views/admin/posts/review.html.arb" contains:
82
- """
83
- h1 "Review: #{@post.title}"
84
- """
85
- And I am logged in
86
- And a post with the title "Hello World" exists
87
- When I am on the index page for posts
88
- And I follow "View"
89
- And I follow "Review"
90
- Then I should see "Review: Hello World"
91
- And I should see the page title "Review"
92
- And I should see the Active Admin layout
93
-
@@ -1,7 +0,0 @@
1
- Then /^I should see an action item link to "([^"]*)"$/ do |link|
2
- expect(page).to have_css('.action_item a', text: link)
3
- end
4
-
5
- Then /^I should not see an action item link to "([^"]*)"$/ do |link|
6
- expect(page).to_not have_css('.action_item a', text: link)
7
- end
@@ -1,20 +0,0 @@
1
- Then /^I should see a member link to "([^"]*)"$/ do |name|
2
- expect(page).to have_css('a.member_link', text: name)
3
- end
4
-
5
- Then /^I should not see a member link to "([^"]*)"$/ do |name|
6
- %{Then I should not see "#{name}" within "a.member_link"}
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,81 +0,0 @@
1
- Then /^I should see a table header with "([^"]*)"$/ do |content|
2
- expect(page).to have_xpath '//th', text: content
3
- end
4
-
5
- Then /^I should not see a table header with "([^"]*)"$/ do |content|
6
- expect(page).to_not have_xpath '//th', text: content
7
- end
8
-
9
- Then /^I should see a sortable table header with "([^"]*)"$/ do |content|
10
- expect(page).to have_css 'th.sortable', text: content
11
- end
12
-
13
- Then /^I should not see a sortable table header with "([^"]*)"$/ do |content|
14
- expect(page).to_not have_css 'th.sortable', text: content
15
- end
16
-
17
- Then /^I should not see a sortable table header$/ do
18
- step %{I should not see "th.sortable"}
19
- end
20
-
21
- Then /^the table "([^"]*)" should have (\d+) rows/ do |selector, count|
22
- trs = page.find(selector).all :css, 'tr'
23
- expect(trs.size).to eq count.to_i
24
- end
25
-
26
- Then /^the table "([^"]*)" should have (\d+) columns/ do |selector, count|
27
- tds = page.find(selector).find('tr:first').all :css, 'td'
28
- expect(tds.size).to eq count.to_i
29
- end
30
-
31
- Then /^there should be (\d+) "([^"]*)" tags$/ do |count, tag|
32
- expect(page.all(:css, tag).size).to eq count.to_i
33
- end
34
-
35
- Then /^I should see a link to "([^"]*)"$/ do |link|
36
- expect(page).to have_xpath '//a', text: link
37
- end
38
-
39
- Then /^an "([^"]*)" exception should be raised when I follow "([^"]*)"$/ do |error, link|
40
- expect {
41
- step "I follow \"#{link}\""
42
- }.to raise_error(error.constantize)
43
- end
44
-
45
- Then /^I should be in the resource section for (.+)$/ do |resource_name|
46
- expect(current_url).to include resource_name.tr(' ', '').underscore.pluralize
47
- end
48
-
49
- Then /^I should wait and see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector|
50
- sleep 1
51
- step 'show me the page'
52
- selector ||= "*"
53
- locate(:xpath, "//#{selector}[text()='#{text}']")
54
- end
55
-
56
- Then /^I should see the page title "([^"]*)"$/ do |title|
57
- within('h2#page_title') do
58
- expect(page).to have_content title
59
- end
60
- end
61
-
62
- Then /^I should see a fieldset titled "([^"]*)"$/ do |title|
63
- expect(page).to have_css 'fieldset legend', text: title
64
- end
65
-
66
- Then /^the "([^"]*)" field should contain the option "([^"]*)"$/ do |field, option|
67
- field = find_field(field)
68
- expect(field).to have_css 'option', text: option
69
- end
70
-
71
- Then /^I should see the content "([^"]*)"$/ do |content|
72
- expect(page).to have_css '#active_admin_content', text: content
73
- end
74
-
75
- Then /^I should see a validation error "([^"]*)"$/ do |error_message|
76
- expect(page).to have_css '.inline-errors', text: error_message
77
- end
78
-
79
- Then /^I should see a table with id "([^"]*)"$/ do |dom_id|
80
- page.find("table##{dom_id}")
81
- end
@@ -1,15 +0,0 @@
1
- Then /^I should see the css file "([^"]*)"$/ do |path|
2
- step %{I should see the css file "#{path}" of media "screen"}
3
- end
4
-
5
- Then /^I should see the css file "([^"]*)" of media "([^"]*)"$/ do |path, media|
6
- expect(page).to have_xpath("//link[contains(@href, /stylesheets/#{path}) and contains(@media, #{media})]", visible: false)
7
- end
8
-
9
- Then /^I should see the js file "([^"]*)"$/ do |path|
10
- expect(page).to have_xpath("//script[contains(@src, /javascripts/#{path})]", visible: false)
11
- end
12
-
13
- Then /^I should see the favicon "([^"]*)"$/ do |path|
14
- expect(page).to have_xpath("//link[contains(@href, path)]", visible: false)
15
- end
@@ -1,18 +0,0 @@
1
- Then /^I should see the attribute "([^"]*)" with "([^"]*)"$/ do |title, value|
2
- elems = all ".attributes_table th:contains('#{title}') ~ td:contains('#{value}')"
3
- expect(elems.first).to_not be_nil, 'attribute missing'
4
- end
5
-
6
- Then /^I should see the attribute "([^"]*)" with a nicely formatted datetime$/ do |title|
7
- text = all(".attributes_table th:contains('#{title}') ~ td").first.text
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'
14
- end
15
-
16
- Then /^I should not see the attribute "([^"]*)"$/ do |title|
17
- expect(page).to_not have_css '.attributes_table th', text: title
18
- end
@@ -1,72 +0,0 @@
1
- Then /^I (should|should not) be asked to confirm "([^"]*)" for "([^"]*)"$/ do |maybe, confirmation, title|
2
- selector = "#batch_actions_popover a.batch_action:contains('#{title}')"
3
- selector << "[data-confirm='#{confirmation}']" if maybe == 'should'
4
-
5
- verb = maybe == 'should' ? :to : :to_not
6
- expect(page).send verb, have_css(selector)
7
- end
8
-
9
- Then /^I (should|should not) see the batch action :([^\s]*) "([^"]*)"$/ do |maybe, sym, title|
10
- selector = ".batch_actions_selector a.batch_action:contains('#{title}')"
11
- selector << "[href='#'][data-action='#{sym}']" if maybe == 'should'
12
-
13
- verb = maybe == 'should' ? :to : :to_not
14
- expect(page).send verb, have_css(selector)
15
- end
16
-
17
- Then /^the (\d+)(?:st|nd|rd|th) batch action should be "([^"]*)"$/ do |index, title|
18
- batch_action = page.all('.batch_actions_selector a.batch_action')[index.to_i - 1]
19
- expect(batch_action.text).to match title
20
- end
21
-
22
- When /^I check the (\d+)(?:st|nd|rd|th) record$/ do |index|
23
- page.all("table.index_table input[type=checkbox]")[index.to_i].set true
24
- end
25
-
26
- When /^I toggle the collection selection$/ do
27
- page.find("#collection_selection_toggle_all").click
28
- end
29
-
30
- Then /^I should see that the batch action button is disabled$/ do
31
- expect(page).to have_css ".batch_actions_selector .dropdown_menu_button.disabled"
32
- end
33
-
34
- Then /^I (should|should not) see the batch action (button|selector)$/ do |maybe, type|
35
- selector = "div.table_tools .batch_actions_selector"
36
- selector << ' .dropdown_menu_button' if maybe == 'should' && type == 'button'
37
-
38
- verb = maybe == 'should' ? :to : :to_not
39
- expect(page).send verb, have_css(selector)
40
- end
41
-
42
- Then /^I should see the batch action popover exists$/ do
43
- expect(page).to have_css '.batch_actions_selector'
44
- end
45
-
46
- Given /^I submit the batch action form with "([^"]*)"$/ do |action|
47
- page.find("#batch_action").set action
48
- form = page.find "#collection_selection"
49
- params = page.all("#main_content input").each_with_object({}) do |input, obj|
50
- key, value = input['name'], input['value']
51
- if key == 'collection_selection[]'
52
- (obj[key] ||= []).push value if input.checked?
53
- else
54
- obj[key] = value
55
- end
56
- end
57
- page.driver.submit form['method'], form['action'], params
58
- end
59
-
60
- Then /^I should not see checkboxes in the table$/ do
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(', ')]
72
- end
@@ -1,3 +0,0 @@
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 +0,0 @@
1
- Then /^I should see a link to "([^"]*)" in the breadcrumb$/ do |text|
2
- expect(page).to have_css '.breadcrumb > a', text: text
3
- end
@@ -1,12 +0,0 @@
1
- Then /^I should see a comment by "([^"]*)"$/ do |name|
2
- step %{I should see "#{name}" within ".active_admin_comment_author"}
3
- end
4
-
5
- When /^I add a comment "([^"]*)"$/ do |comment|
6
- step %{I fill in "active_admin_comment_body" with "#{comment}"}
7
- step %{I press "Add Comment"}
8
- end
9
-
10
- Given /^a tag with the name "([^"]*)" exists$/ do |tag_name|
11
- Tag.create(name: tag_name)
12
- end
@@ -1,100 +0,0 @@
1
- module ActiveAdminReloading
2
- def load_aa_config(config_content)
3
- ActiveAdmin::Event.dispatch ActiveAdmin::Application::BeforeLoadEvent, ActiveAdmin.application
4
- eval(config_content)
5
- ActiveAdmin::Event.dispatch ActiveAdmin::Application::AfterLoadEvent, ActiveAdmin.application
6
- Rails.application.reload_routes!
7
- ActiveAdmin.application.namespaces.each &:reset_menu!
8
- end
9
- end
10
-
11
- module ActiveAdminContentsRollback
12
- def files
13
- @files ||= {}
14
- end
15
-
16
- # Records the contents of a file the first time we are
17
- # about to change it
18
- def record(filename)
19
- contents = File.read(filename) rescue nil
20
- files[filename] = contents unless files.has_key? filename
21
- end
22
-
23
- # Rolls the recorded files back to their original states
24
- def rollback!
25
- files.each{ |file, contents| rollback_file(file, contents) }
26
- @files = {}
27
- end
28
-
29
- # If the file originally had content, override the stuff on disk.
30
- # Else, remove the file and its parent folder structure until Rails.root OR other files exist.
31
- def rollback_file(file, contents)
32
- if contents.present?
33
- File.open(file,'w') { |f| f << contents }
34
- else
35
- File.delete(file)
36
- begin
37
- dir = File.dirname(file)
38
- until dir == Rails.root
39
- Dir.rmdir(dir) # delete current folder
40
- dir = dir.split('/')[0..-2].join('/') # select parent folder
41
- end
42
- rescue Errno::ENOTEMPTY # Directory not empty
43
- end
44
- end
45
- end
46
- end
47
-
48
- World(ActiveAdminReloading)
49
- World(ActiveAdminContentsRollback)
50
-
51
- After do
52
- rollback!
53
- end
54
-
55
- Given /^a(?:n? (index|show))? configuration of:$/ do |action, config_content|
56
- load_aa_config(config_content)
57
-
58
- case action
59
- when 'index'
60
- step 'I am logged in'
61
- case resource = config_content.match(/ActiveAdmin\.register (\w+)/)[1]
62
- when 'Post'
63
- step 'I am on the index page for posts'
64
- when 'Category'
65
- step 'I am on the index page for categories'
66
- else
67
- raise "#{resource} is not supported"
68
- end
69
- when 'show'
70
- case resource = config_content.match(/ActiveAdmin\.register (\w+)/)[1]
71
- when 'Post'
72
- step 'I am logged in'
73
- step 'I am on the index page for posts'
74
- step 'I follow "View"'
75
- when 'Tag'
76
- step 'I am logged in'
77
- Tag.create!
78
- visit admin_tag_path Tag.last
79
- else
80
- raise "#{resource} is not supported"
81
- end
82
- end
83
- end
84
-
85
- Given /^"([^"]*)" contains:$/ do |filename, contents|
86
- path = Rails.root + filename
87
- FileUtils.mkdir_p File.dirname path
88
- record path
89
-
90
- File.open(path,'w+'){ |f| f << contents }
91
- end
92
-
93
- Given /^I add "([^"]*)" to the "([^"]*)" model$/ do |code, model_name|
94
- path = File.join Rails.root, "app", "models", "#{model_name}.rb"
95
- record path
96
-
97
- str = File.read(path).gsub /^(class .+)$/, "\\1\n #{code}\n"
98
- File.open(path, 'w+') { |f| f << str }
99
- ActiveSupport::Dependencies.clear
100
- end
@@ -1,15 +0,0 @@
1
- Then /^I should see the default welcome message$/ do
2
- step %{I should see "Welcome to Active Admin" within "#dashboard_default_message"}
3
- end
4
-
5
- Then /^I should not see the default welcome message$/ do
6
- step %{I should not see "Welcome to Active Admin"}
7
- end
8
-
9
- Then /^I should see a dashboard widget "([^"]*)"$/ do |name|
10
- expect(page).to have_css '.dashboard .panel h3', text: name
11
- end
12
-
13
- Then /^I should not see a dashboard widget "([^"]*)"$/ do |name|
14
- expect(page).to_not have_css '.dashboard .panel h3', text: name
15
- end
@@ -1,34 +0,0 @@
1
- def create_user(name, type = 'User')
2
- first_name, last_name = name.split(' ')
3
- user = type.camelize.constantize.where(first_name: first_name, last_name: last_name).first_or_create(username: name.tr(' ', '').underscore)
4
- end
5
-
6
- Given /^(a|\d+)( published)? posts?(?: with the title "([^"]*)")?(?: and body "([^"]*)")?(?: written by "([^"]*)")?(?: in category "([^"]*)")? exists?$/ do |count, published, title, body, user, category_name|
7
- count = count == 'a' ? 1 : count.to_i
8
- published = Time.now if published
9
- author = create_user(user) if user
10
- category = Category.where(name: category_name).first_or_create if category_name
11
- title ||= "Hello World %i"
12
- count.times do |i|
13
- Post.create! title: title % i, body: body, author: author, published_at: published, custom_category_id: category.try(:id)
14
- end
15
- end
16
-
17
- Given /^a category named "([^"]*)" exists$/ do |name|
18
- Category.create! name: name
19
- end
20
-
21
- Given /^a (user|publisher) named "([^"]*)" exists$/ do |type, name|
22
- create_user name, type
23
- end
24
-
25
- Given /^a store named "([^"]*)" exists$/ do |name|
26
- Store.create! name: name
27
- end
28
-
29
- Given /^I create a new post with the title "([^"]*)"$/ do |title|
30
- first(:link, 'Posts').click
31
- click_link "New Post"
32
- fill_in 'post_title', with: title
33
- click_button "Create Post"
34
- end
@@ -1,39 +0,0 @@
1
- Then /^I should see a select filter for "([^"]*)"$/ do |label|
2
- expect(page).to have_css '.filter_select label', text: label
3
- end
4
-
5
- Then /^I should see a string filter for "([^"]*)"$/ do |label|
6
- expect(page).to have_css '.filter_string label', text: label
7
- end
8
-
9
- Then /^I should see a date range filter for "([^"]*)"$/ do |label|
10
- expect(page).to have_css '.filter_date_range label', text: label
11
- end
12
-
13
- Then /^I should see the following filters:$/ do |table|
14
- table.rows_hash.each do |label, type|
15
- step %{I should see a #{type} filter for "#{label}"}
16
- end
17
- end
18
-
19
- Given(/^I add parameter "([^"]*)" with value "([^"]*)" to the URL$/) do |key, value|
20
- url = page.current_url
21
- separator = url.include?('?') ? '&' : '?'
22
- visit url + separator + key.to_s + '=' + value.to_s
23
- end
24
-
25
- Then(/^I should( not)? have parameter "([^"]*)"( with value "([^"]*)")?$/) do |negative, key, compare_val, value|
26
- query = URI(page.current_url).query
27
- if query.nil?
28
- expect(negative).to be_truthy
29
- else
30
- params = Rack::Utils.parse_query query
31
- if compare_val
32
- expect(params[key]).to_not eq value if negative
33
- expect(params[key]).to eq value unless negative
34
- else
35
- expect(params[key]).to be_nil if negative
36
- expect(params[key]).to be_present unless negative
37
- end
38
- end
39
- end
@@ -1,11 +0,0 @@
1
- Then /^I should see a flash with "([^"]*)"$/ do |text|
2
- expect(page).to have_content text
3
- end
4
-
5
- Then /^I should see a successful create flash$/ do
6
- expect(page).to have_css 'div.flash_notice', text: /was successfully created/
7
- end
8
-
9
- Then /^I should not see a successful create flash$/ do
10
- expect(page).to_not have_css 'div.flash_notice', text: /was successfully created/
11
- end
@@ -1,52 +0,0 @@
1
- require 'csv'
2
-
3
- Then "I should see nicely formatted datetimes" do
4
- expect(page.body).to match /\w+ \d{1,2}, \d{4} \d{2}:\d{2}/
5
- end
6
-
7
- Then /^I should( not)? see a link to download "([^"]*)"$/ do |negate, format|
8
- method = negate ? :to_not : :to
9
- expect(page).send method, have_css("#index_footer a", text: format)
10
- end
11
-
12
- # Check first rows of the displayed CSV.
13
- Then /^I should download a CSV file with "([^"]*)" separator for "([^"]*)" containing:$/ do |sep, resource_name, table|
14
- body = page.driver.response.body
15
- content_type_header, content_disposition_header = %w[Content-Type Content-Disposition].map do |header_name|
16
- page.response_headers[header_name]
17
- end
18
- expect(content_type_header).to eq 'text/csv; charset=utf-8'
19
- expect(content_disposition_header).to match /\Aattachment; filename=".+?\.csv"\z/
20
-
21
- begin
22
- csv = CSV.parse(body, col_sep: sep)
23
- table.raw.each_with_index do |expected_row, row_index|
24
- expected_row.each_with_index do |expected_cell, col_index|
25
- cell = csv.try(:[], row_index).try(:[], col_index)
26
- if expected_cell.blank?
27
- expect(cell).to be_nil
28
- else
29
- expect(cell || '').to match /#{expected_cell}/
30
- end
31
- end
32
- end
33
- rescue
34
- puts "Expecting:"
35
- p table.raw
36
- puts "to match:"
37
- p csv
38
- raise $!
39
- end
40
- end
41
-
42
- Then /^I should download a CSV file for "([^"]*)" containing:$/ do |resource_name, table|
43
- step %{I should download a CSV file with "," separator for "#{resource_name}" containing:}, table
44
- end
45
-
46
- Then /^the CSV file should contain "([^"]*)" in quotes$/ do |text|
47
- expect(page.driver.response.body).to match /"#{text}"/
48
- end
49
-
50
- Then /^the encoding of the CSV file should be "([^"]*)"$/ do |text|
51
- expect(page.driver.response.body.encoding).to be Encoding.find(Encoding.aliases[text] || text)
52
- end
@@ -1,3 +0,0 @@
1
- When /^I set my locale to "([^"]*)"$/ do |lang|
2
- I18n.locale = lang
3
- end
@@ -1,21 +0,0 @@
1
- Then /^I should( not)? see the scope "([^"]*)"( selected)?$/ do |negate, name, selected|
2
- should = "I should#{' not' if negate}"
3
- scope = ".scopes#{' .selected' if selected}"
4
- step %{#{should} see "#{name}" within "#{scope}"}
5
- end
6
-
7
- Then /^I should see the scope "([^"]*)" not selected$/ do |name|
8
- step %{I should see the scope "#{name}"}
9
- expect(page).to_not have_css '.scopes .selected', text: name
10
- end
11
-
12
- Then /^I should see the scope "([^"]*)" with the count (\d+)$/ do |name, count|
13
- name = name.tr(' ','').underscore.downcase
14
- step %{I should see "#{count}" within ".scopes .#{name} .count"}
15
- end
16
-
17
- Then /^I should see the scope "([^"]*)" with no count$/ do |name|
18
- name = name.tr(" ", "").underscore.downcase
19
- expect(page).to have_css ".scopes .#{name}"
20
- expect(page).to_not have_css ".scopes .#{name} .count"
21
- end
@@ -1,3 +0,0 @@
1
- When /^I click "(.*?)"$/ do |link|
2
- click_link(link)
3
- end
@@ -1,3 +0,0 @@
1
- Then /^I should see the Active Admin layout$/ do
2
- expect(page).to have_css '#active_admin_content #main_content_wrapper'
3
- end
@@ -1,7 +0,0 @@
1
- Then /^I should see an action item button "([^"]*)"$/ do |content|
2
- expect(page).to have_css '.action_items a', text: content
3
- end
4
-
5
- Then /^I should not see an action item button "([^"]*)"$/ do |content|
6
- expect(page).to_not have_css '.action_items', text: content
7
- end
@@ -1,11 +0,0 @@
1
- Then /^I should see a menu item for "([^"]*)"$/ do |name|
2
- expect(page).to have_css '#tabs li a', text: name
3
- end
4
-
5
- Then /^I should not see a menu item for "([^"]*)"$/ do |name|
6
- expect(page).to_not have_css '#tabs li a', text: name
7
- end
8
-
9
- Then /^I should see a nested menu item for "([^"]*)"$/ do |name|
10
- expect(page).to have_css '#tabs > li > ul > li > a', text: name
11
- end
@@ -1,7 +0,0 @@
1
- Then /^I should not see pagination$/ do
2
- expect(page).to_not have_css '.pagination'
3
- end
4
-
5
- Then /^I should see pagination with (\d+) pages$/ do |count|
6
- expect(page).to have_css '.pagination span.page', count: count
7
- end