activeadmin 1.0.0 → 2.11.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (618) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +778 -68
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +80 -82
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +524 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +7 -35
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/app/assets/stylesheets/active_admin/_normalize.scss +349 -0
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +3 -4
  13. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  14. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  15. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  16. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  17. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  18. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  19. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  20. data/app/assets/stylesheets/active_admin/components/_tables.scss +5 -3
  21. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -10
  23. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  25. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  26. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  27. data/app/javascript/active_admin/base.js +28 -0
  28. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  29. data/app/javascript/active_admin/ext/jquery.js +9 -0
  30. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  31. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  32. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  33. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  34. data/app/javascript/active_admin/initializers/filters.js +10 -0
  35. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  36. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  37. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  38. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  39. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  40. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  41. data/app/javascript/active_admin/lib/filters.js +39 -0
  42. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  43. data/app/javascript/active_admin/lib/per-page.js +38 -0
  44. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  45. data/app/javascript/active_admin/lib/utils.js +40 -0
  46. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  47. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  48. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  49. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  50. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  51. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  52. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  53. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  54. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  55. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  56. data/app/views/active_admin/page/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/edit.html.arb +1 -0
  58. data/app/views/active_admin/resource/index.html.arb +1 -0
  59. data/app/views/active_admin/resource/new.html.arb +1 -0
  60. data/app/views/active_admin/resource/show.html.arb +1 -0
  61. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  63. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  64. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  65. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  66. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  67. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  68. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  69. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  70. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  71. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  72. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  73. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  74. data/app/views/layouts/active_admin.html.arb +1 -0
  75. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  76. data/config/locales/ar.yml +10 -11
  77. data/config/locales/az.yml +138 -0
  78. data/config/locales/bg.yml +1 -3
  79. data/config/locales/bs.yml +1 -2
  80. data/config/locales/ca.yml +1 -3
  81. data/config/locales/cs.yml +1 -2
  82. data/config/locales/da.yml +2 -3
  83. data/config/locales/de-CH.yml +2 -3
  84. data/config/locales/de.yml +30 -3
  85. data/config/locales/el.yml +2 -3
  86. data/config/locales/en-CA.yml +139 -0
  87. data/config/locales/en-GB.yml +46 -5
  88. data/config/locales/en.yml +32 -8
  89. data/config/locales/eo.yml +145 -0
  90. data/config/locales/es-MX.yml +6 -3
  91. data/config/locales/es.yml +36 -10
  92. data/config/locales/fa.yml +1 -2
  93. data/config/locales/fi.yml +2 -3
  94. data/config/locales/fr.yml +15 -7
  95. data/config/locales/he.yml +53 -7
  96. data/config/locales/hr.yml +1 -2
  97. data/config/locales/hu.yml +5 -2
  98. data/config/locales/id.yml +2 -3
  99. data/config/locales/it.yml +33 -7
  100. data/config/locales/ja.yml +9 -5
  101. data/config/locales/ko.yml +2 -3
  102. data/config/locales/lt.yml +27 -6
  103. data/config/locales/lv.yml +3 -4
  104. data/config/locales/mk.yml +134 -0
  105. data/config/locales/nb.yml +16 -7
  106. data/config/locales/nl.yml +14 -4
  107. data/config/locales/pl.yml +75 -5
  108. data/config/locales/pt-BR.yml +10 -3
  109. data/config/locales/pt-PT.yml +1 -2
  110. data/config/locales/ro.yml +4 -4
  111. data/config/locales/ru.yml +4 -3
  112. data/config/locales/sk.yml +60 -2
  113. data/config/locales/sv-SE.yml +4 -3
  114. data/config/locales/tr.yml +10 -2
  115. data/config/locales/uk.yml +4 -3
  116. data/config/locales/vi.yml +53 -12
  117. data/config/locales/zh-CN.yml +34 -7
  118. data/config/locales/zh-TW.yml +2 -3
  119. data/docs/.gitignore +1 -0
  120. data/docs/0-installation.md +42 -15
  121. data/docs/1-general-configuration.md +46 -4
  122. data/docs/10-custom-pages.md +24 -5
  123. data/docs/11-decorators.md +17 -5
  124. data/docs/12-arbre-components.md +47 -9
  125. data/docs/13-authorization-adapter.md +69 -35
  126. data/docs/14-gotchas.md +41 -22
  127. data/docs/2-resource-customization.md +57 -20
  128. data/docs/3-index-pages/custom-index.md +2 -1
  129. data/docs/3-index-pages/index-as-block.md +0 -5
  130. data/docs/3-index-pages/index-as-blog.md +1 -6
  131. data/docs/3-index-pages/index-as-grid.md +0 -5
  132. data/docs/3-index-pages/index-as-table.md +13 -14
  133. data/docs/3-index-pages.md +47 -12
  134. data/docs/4-csv-format.md +2 -1
  135. data/docs/5-forms.md +65 -22
  136. data/docs/6-show-pages.md +14 -1
  137. data/docs/7-sidebars.md +2 -1
  138. data/docs/8-custom-actions.md +16 -2
  139. data/docs/9-batch-actions.md +5 -3
  140. data/docs/CNAME +1 -1
  141. data/docs/Gemfile +4 -2
  142. data/docs/Gemfile.lock +283 -0
  143. data/docs/_config.yml +3 -1
  144. data/docs/_includes/toc.html +1 -1
  145. data/docs/_includes/top-menu.html +9 -1
  146. data/docs/documentation.md +21 -23
  147. data/docs/images/tidelift.svg +14 -0
  148. data/docs/index.html +110 -9
  149. data/docs/stylesheets/main.css +55 -2
  150. data/lib/active_admin/abstract_view_factory.rb +14 -51
  151. data/lib/active_admin/application.rb +65 -170
  152. data/lib/active_admin/application_settings.rb +43 -0
  153. data/lib/active_admin/asset_registration.rb +1 -0
  154. data/lib/active_admin/authorization_adapter.rb +4 -6
  155. data/lib/active_admin/base_controller/authorization.rb +18 -19
  156. data/lib/active_admin/base_controller/menu.rb +10 -9
  157. data/lib/active_admin/base_controller.rb +12 -12
  158. data/lib/active_admin/batch_actions/controller.rb +6 -5
  159. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  160. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  161. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  162. data/lib/active_admin/batch_actions/views/selection_cells.rb +8 -6
  163. data/lib/active_admin/batch_actions.rb +1 -0
  164. data/lib/active_admin/callbacks.rb +2 -1
  165. data/lib/active_admin/cancan_adapter.rb +2 -1
  166. data/lib/active_admin/collection_decorator.rb +32 -0
  167. data/lib/active_admin/component.rb +1 -0
  168. data/lib/active_admin/controller_action.rb +3 -1
  169. data/lib/active_admin/csv_builder.rb +22 -14
  170. data/lib/active_admin/dependency.rb +15 -78
  171. data/lib/active_admin/deprecation.rb +1 -25
  172. data/lib/active_admin/devise.rb +18 -7
  173. data/lib/active_admin/dsl.rb +5 -11
  174. data/lib/active_admin/dynamic_setting.rb +39 -0
  175. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  176. data/lib/active_admin/engine.rb +16 -7
  177. data/lib/active_admin/error.rb +5 -4
  178. data/lib/active_admin/filters/active.rb +14 -14
  179. data/lib/active_admin/filters/active_filter.rb +124 -0
  180. data/lib/active_admin/filters/active_sidebar.rb +28 -0
  181. data/lib/active_admin/filters/dsl.rb +1 -0
  182. data/lib/active_admin/filters/forms.rb +12 -9
  183. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  184. data/lib/active_admin/filters/resource_extension.rb +32 -35
  185. data/lib/active_admin/filters.rb +8 -5
  186. data/lib/active_admin/form_builder.rb +110 -70
  187. data/lib/active_admin/generators/boilerplate.rb +13 -4
  188. data/lib/active_admin/helpers/collection.rb +2 -0
  189. data/lib/active_admin/helpers/i18n.rb +1 -0
  190. data/lib/active_admin/helpers/optional_display.rb +3 -2
  191. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  192. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  193. data/lib/active_admin/inputs/datepicker_input.rb +14 -6
  194. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  195. data/lib/active_admin/inputs/filters/base.rb +2 -1
  196. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  197. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  198. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  199. data/lib/active_admin/inputs/filters/date_range_input.rb +24 -12
  200. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  201. data/lib/active_admin/inputs/filters/select_input.rb +8 -3
  202. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  203. data/lib/active_admin/inputs/filters/text_input.rb +1 -1
  204. data/lib/active_admin/inputs.rb +1 -0
  205. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  206. data/lib/active_admin/localizers.rb +2 -1
  207. data/lib/active_admin/menu.rb +13 -15
  208. data/lib/active_admin/menu_collection.rb +1 -2
  209. data/lib/active_admin/menu_item.rb +11 -38
  210. data/lib/active_admin/namespace.rb +33 -20
  211. data/lib/active_admin/namespace_settings.rb +127 -0
  212. data/lib/active_admin/order_clause.rb +4 -3
  213. data/lib/active_admin/orm/active_record/comments/comment.rb +6 -9
  214. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  215. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  216. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  217. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +37 -24
  218. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  219. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  220. data/lib/active_admin/orm/active_record.rb +2 -1
  221. data/lib/active_admin/orm/mongoid.rb +1 -0
  222. data/lib/active_admin/page.rb +2 -1
  223. data/lib/active_admin/page_controller.rb +2 -1
  224. data/lib/active_admin/page_dsl.rb +2 -1
  225. data/lib/active_admin/page_presenter.rb +3 -1
  226. data/lib/active_admin/pundit_adapter.rb +23 -9
  227. data/lib/active_admin/resource/action_items.rb +16 -6
  228. data/lib/active_admin/resource/attributes.rb +10 -6
  229. data/lib/active_admin/resource/belongs_to.rb +9 -3
  230. data/lib/active_admin/resource/controllers.rb +2 -1
  231. data/lib/active_admin/resource/includes.rb +1 -0
  232. data/lib/active_admin/resource/menu.rb +6 -5
  233. data/lib/active_admin/resource/model.rb +16 -0
  234. data/lib/active_admin/resource/naming.rb +6 -5
  235. data/lib/active_admin/resource/ordering.rb +1 -0
  236. data/lib/active_admin/resource/page_presenters.rb +2 -1
  237. data/lib/active_admin/resource/pagination.rb +1 -0
  238. data/lib/active_admin/resource/routes.rb +26 -15
  239. data/lib/active_admin/resource/scope_to.rb +8 -7
  240. data/lib/active_admin/resource/scopes.rb +5 -3
  241. data/lib/active_admin/resource/sidebars.rb +3 -2
  242. data/lib/active_admin/resource.rb +37 -22
  243. data/lib/active_admin/resource_collection.rb +3 -2
  244. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  245. data/lib/active_admin/resource_controller/data_access.rb +16 -12
  246. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  247. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  248. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  249. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  250. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  251. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  252. data/lib/active_admin/resource_controller.rb +15 -11
  253. data/lib/active_admin/resource_dsl.rb +18 -28
  254. data/lib/active_admin/router.rb +91 -84
  255. data/lib/active_admin/scope.rb +22 -13
  256. data/lib/active_admin/settings_node.rb +20 -0
  257. data/lib/active_admin/sidebar_section.rb +4 -1
  258. data/lib/active_admin/version.rb +2 -1
  259. data/lib/active_admin/view_factory.rb +18 -17
  260. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  261. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  262. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  263. data/lib/active_admin/view_helpers/display_helper.rb +26 -9
  264. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  265. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  266. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  267. data/lib/active_admin/view_helpers/form_helper.rb +2 -1
  268. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  269. data/lib/active_admin/view_helpers/scope_name_helper.rb +17 -0
  270. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  271. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  272. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  273. data/lib/active_admin/view_helpers.rb +3 -1
  274. data/lib/active_admin/views/action_items.rb +2 -1
  275. data/lib/active_admin/views/components/active_admin_form.rb +15 -9
  276. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  277. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  278. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  279. data/lib/active_admin/views/components/columns.rb +1 -0
  280. data/lib/active_admin/views/components/dropdown_menu.rb +9 -11
  281. data/lib/active_admin/views/components/index_list.rb +4 -5
  282. data/lib/active_admin/views/components/menu.rb +33 -0
  283. data/lib/active_admin/views/components/menu_item.rb +59 -0
  284. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  285. data/lib/active_admin/views/components/panel.rb +2 -1
  286. data/lib/active_admin/views/components/scopes.rb +19 -17
  287. data/lib/active_admin/views/components/sidebar.rb +14 -0
  288. data/lib/active_admin/views/components/sidebar_section.rb +1 -0
  289. data/lib/active_admin/views/components/site_title.rb +7 -7
  290. data/lib/active_admin/views/components/status_tag.rb +19 -23
  291. data/lib/active_admin/views/components/table_for.rb +22 -29
  292. data/lib/active_admin/views/components/tabs.rb +18 -5
  293. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  294. data/lib/active_admin/views/footer.rb +6 -8
  295. data/lib/active_admin/views/header.rb +4 -16
  296. data/lib/active_admin/views/index_as_block.rb +1 -0
  297. data/lib/active_admin/views/index_as_blog.rb +4 -4
  298. data/lib/active_admin/views/index_as_grid.rb +27 -26
  299. data/lib/active_admin/views/index_as_table.rb +53 -26
  300. data/lib/active_admin/views/pages/base.rb +47 -63
  301. data/lib/active_admin/views/pages/form.rb +1 -0
  302. data/lib/active_admin/views/pages/index.rb +16 -13
  303. data/lib/active_admin/views/pages/layout.rb +1 -0
  304. data/lib/active_admin/views/pages/page.rb +1 -0
  305. data/lib/active_admin/views/pages/show.rb +7 -1
  306. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  307. data/lib/active_admin/views/title_bar.rb +6 -5
  308. data/lib/active_admin/views.rb +2 -1
  309. data/lib/active_admin.rb +70 -68
  310. data/lib/activeadmin.rb +2 -1
  311. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  312. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  313. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  314. data/lib/generators/active_admin/devise/devise_generator.rb +7 -6
  315. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  316. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  317. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -1
  318. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  319. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  320. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  321. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  322. data/lib/generators/active_admin/resource/resource_generator.rb +5 -4
  323. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  324. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  325. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  326. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  327. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  328. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  329. data/lib/ransack_ext.rb +10 -9
  330. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  331. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  332. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  333. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  334. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  335. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  336. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  337. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  338. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  339. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  340. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  341. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  342. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  343. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  344. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  345. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  346. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  347. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  348. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  349. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  350. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  351. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  352. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  353. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  354. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  355. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  356. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  357. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  358. metadata +158 -580
  359. data/.gitignore +0 -49
  360. data/.hound.yml +0 -14
  361. data/.rubocop.yml +0 -27
  362. data/.travis.yml +0 -66
  363. data/.yardopts +0 -8
  364. data/Appraisals +0 -41
  365. data/Gemfile +0 -49
  366. data/Rakefile +0 -65
  367. data/activeadmin.gemspec +0 -34
  368. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  369. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  370. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  371. data/app/assets/images/active_admin/orderable.png +0 -0
  372. data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
  373. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  374. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  375. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
  376. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
  377. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -22
  378. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
  379. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -18
  380. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  381. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -44
  382. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  383. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  384. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  385. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  386. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -42
  387. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  388. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  389. data/codecov.yml +0 -23
  390. data/cucumber.yml +0 -3
  391. data/features/action_item.feature +0 -73
  392. data/features/authorization.feature +0 -64
  393. data/features/authorization_cancan.feature +0 -52
  394. data/features/authorization_pundit.feature +0 -37
  395. data/features/belongs_to.feature +0 -124
  396. data/features/breadcrumb.feature +0 -75
  397. data/features/comments/commenting.feature +0 -158
  398. data/features/comments/viewing_index.feature +0 -19
  399. data/features/create_another.feature +0 -55
  400. data/features/dashboard.feature +0 -16
  401. data/features/decorators.feature +0 -43
  402. data/features/development_reloading.feature +0 -28
  403. data/features/edit_page.feature +0 -116
  404. data/features/favicon.feature +0 -20
  405. data/features/first_boot.feature +0 -16
  406. data/features/footer.feature +0 -28
  407. data/features/global_navigation.feature +0 -29
  408. data/features/i18n.feature +0 -55
  409. data/features/index/batch_actions.feature +0 -218
  410. data/features/index/filters.feature +0 -199
  411. data/features/index/format_as_csv.feature +0 -203
  412. data/features/index/formats.feature +0 -88
  413. data/features/index/index_as_block.feature +0 -15
  414. data/features/index/index_as_blog.feature +0 -69
  415. data/features/index/index_as_grid.feature +0 -45
  416. data/features/index/index_as_table.feature +0 -291
  417. data/features/index/index_blank_slate.feature +0 -83
  418. data/features/index/index_parameters.feature +0 -75
  419. data/features/index/index_scope_to.feature +0 -56
  420. data/features/index/index_scopes.feature +0 -270
  421. data/features/index/page_title.feature +0 -41
  422. data/features/index/pagination.feature +0 -63
  423. data/features/index/switch_index_view.feature +0 -73
  424. data/features/menu.feature +0 -72
  425. data/features/meta_tags.feature +0 -21
  426. data/features/new_page.feature +0 -107
  427. data/features/registering_assets.feature +0 -34
  428. data/features/registering_pages.feature +0 -237
  429. data/features/registering_resources.feature +0 -33
  430. data/features/renamed_resource.feature +0 -30
  431. data/features/root_to.feature +0 -17
  432. data/features/show/columns.feature +0 -40
  433. data/features/show/default_content.feature +0 -44
  434. data/features/show/page_title.feature +0 -58
  435. data/features/show/tabs.feature +0 -27
  436. data/features/sidebar_sections.feature +0 -210
  437. data/features/site_title.feature +0 -47
  438. data/features/specifying_actions.feature +0 -118
  439. data/features/step_definitions/action_item_steps.rb +0 -7
  440. data/features/step_definitions/action_link_steps.rb +0 -20
  441. data/features/step_definitions/additional_web_steps.rb +0 -81
  442. data/features/step_definitions/asset_steps.rb +0 -15
  443. data/features/step_definitions/attribute_steps.rb +0 -18
  444. data/features/step_definitions/batch_action_steps.rb +0 -81
  445. data/features/step_definitions/blog_steps.rb +0 -3
  446. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  447. data/features/step_definitions/column_steps.rb +0 -8
  448. data/features/step_definitions/comment_steps.rb +0 -12
  449. data/features/step_definitions/configuration_steps.rb +0 -100
  450. data/features/step_definitions/dashboard_steps.rb +0 -15
  451. data/features/step_definitions/factory_steps.rb +0 -35
  452. data/features/step_definitions/filter_steps.rb +0 -39
  453. data/features/step_definitions/flash_steps.rb +0 -11
  454. data/features/step_definitions/footer_steps.rb +0 -11
  455. data/features/step_definitions/format_steps.rb +0 -56
  456. data/features/step_definitions/i18n_steps.rb +0 -11
  457. data/features/step_definitions/index_scope_steps.rb +0 -25
  458. data/features/step_definitions/index_views_steps.rb +0 -3
  459. data/features/step_definitions/layout_steps.rb +0 -3
  460. data/features/step_definitions/member_link_steps.rb +0 -7
  461. data/features/step_definitions/menu_steps.rb +0 -11
  462. data/features/step_definitions/meta_tag_steps.rb +0 -3
  463. data/features/step_definitions/pagination_steps.rb +0 -15
  464. data/features/step_definitions/sidebar_steps.rb +0 -11
  465. data/features/step_definitions/site_title_steps.rb +0 -17
  466. data/features/step_definitions/tab_steps.rb +0 -8
  467. data/features/step_definitions/table_steps.rb +0 -116
  468. data/features/step_definitions/user_steps.rb +0 -52
  469. data/features/step_definitions/web_steps.rb +0 -86
  470. data/features/sti_resource.feature +0 -65
  471. data/features/strong_parameters.feature +0 -69
  472. data/features/support/env.rb +0 -121
  473. data/features/support/paths.rb +0 -73
  474. data/features/support/selectors.rb +0 -45
  475. data/features/users/logging_in.feature +0 -36
  476. data/features/users/logging_out.feature +0 -13
  477. data/features/users/resetting_password.feature +0 -34
  478. data/gemfiles/rails_42.gemfile +0 -45
  479. data/gemfiles/rails_50.gemfile +0 -45
  480. data/gemfiles/rails_51.gemfile +0 -45
  481. data/lib/active_admin/event.rb +0 -24
  482. data/lib/active_admin/filters/humanized.rb +0 -68
  483. data/lib/active_admin/helpers/settings.rb +0 -115
  484. data/lib/active_admin/reloader.rb +0 -25
  485. data/lib/bug_report_templates/rails_5_master.rb +0 -118
  486. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  487. data/spec/bug_report_templates_spec.rb +0 -27
  488. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  489. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  490. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  491. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  492. data/spec/javascripts/fixtures/flashes.html +0 -2
  493. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  494. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  495. data/spec/javascripts/support/jasmine.yml +0 -74
  496. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  497. data/spec/rails_helper.rb +0 -62
  498. data/spec/requests/default_namespace_spec.rb +0 -81
  499. data/spec/requests/javascript_spec.rb +0 -22
  500. data/spec/requests/memory_spec.rb +0 -25
  501. data/spec/requests/stylesheets_spec.rb +0 -18
  502. data/spec/spec_helper.rb +0 -12
  503. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  504. data/spec/support/active_admin_request_helpers.rb +0 -39
  505. data/spec/support/jslint.yml +0 -80
  506. data/spec/support/rails_template.rb +0 -182
  507. data/spec/support/rails_template_with_data.rb +0 -68
  508. data/spec/support/templates/admin/stores.rb +0 -7
  509. data/spec/support/templates/en.yml +0 -8
  510. data/spec/support/templates/manifest.js +0 -3
  511. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  512. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  513. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  514. data/spec/support/templates/policies/application_policy.rb +0 -45
  515. data/spec/support/templates/policies/category_policy.rb +0 -7
  516. data/spec/support/templates/policies/post_policy.rb +0 -15
  517. data/spec/support/templates/policies/store_policy.rb +0 -11
  518. data/spec/support/templates/policies/user_policy.rb +0 -11
  519. data/spec/support/templates/post_decorator.rb +0 -11
  520. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  521. data/spec/unit/action_builder_spec.rb +0 -125
  522. data/spec/unit/active_admin_spec.rb +0 -11
  523. data/spec/unit/application_spec.rb +0 -180
  524. data/spec/unit/asset_registration_spec.rb +0 -52
  525. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  526. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  527. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  528. data/spec/unit/auto_link_spec.rb +0 -93
  529. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  530. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  531. data/spec/unit/belongs_to_spec.rb +0 -77
  532. data/spec/unit/cancan_adapter_spec.rb +0 -43
  533. data/spec/unit/comments_spec.rb +0 -176
  534. data/spec/unit/component_spec.rb +0 -18
  535. data/spec/unit/config_shared_examples.rb +0 -59
  536. data/spec/unit/controller_filters_spec.rb +0 -41
  537. data/spec/unit/csv_builder_spec.rb +0 -306
  538. data/spec/unit/dependency_spec.rb +0 -135
  539. data/spec/unit/devise_spec.rb +0 -110
  540. data/spec/unit/dsl_spec.rb +0 -122
  541. data/spec/unit/filters/active_spec.rb +0 -14
  542. data/spec/unit/filters/filter_form_builder_spec.rb +0 -500
  543. data/spec/unit/filters/humanized_spec.rb +0 -64
  544. data/spec/unit/filters/resource_spec.rb +0 -128
  545. data/spec/unit/form_builder_spec.rb +0 -990
  546. data/spec/unit/generators/install_spec.rb +0 -31
  547. data/spec/unit/helpers/collection_spec.rb +0 -68
  548. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  549. data/spec/unit/helpers/settings_spec.rb +0 -30
  550. data/spec/unit/i18n_spec.rb +0 -12
  551. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  552. data/spec/unit/menu_collection_spec.rb +0 -62
  553. data/spec/unit/menu_item_spec.rb +0 -143
  554. data/spec/unit/menu_spec.rb +0 -71
  555. data/spec/unit/namespace/authorization_spec.rb +0 -27
  556. data/spec/unit/namespace/register_page_spec.rb +0 -99
  557. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  558. data/spec/unit/namespace_spec.rb +0 -125
  559. data/spec/unit/order_clause_spec.rb +0 -81
  560. data/spec/unit/page_controller_spec.rb +0 -5
  561. data/spec/unit/page_spec.rb +0 -131
  562. data/spec/unit/pretty_format_spec.rb +0 -82
  563. data/spec/unit/pundit_adapter_spec.rb +0 -98
  564. data/spec/unit/resource/action_items_spec.rb +0 -65
  565. data/spec/unit/resource/attributes_spec.rb +0 -50
  566. data/spec/unit/resource/includes_spec.rb +0 -21
  567. data/spec/unit/resource/menu_spec.rb +0 -18
  568. data/spec/unit/resource/naming_spec.rb +0 -122
  569. data/spec/unit/resource/ordering_spec.rb +0 -38
  570. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  571. data/spec/unit/resource/pagination_spec.rb +0 -38
  572. data/spec/unit/resource/routes_spec.rb +0 -125
  573. data/spec/unit/resource/scopes_spec.rb +0 -50
  574. data/spec/unit/resource/sidebars_spec.rb +0 -43
  575. data/spec/unit/resource_collection_spec.rb +0 -175
  576. data/spec/unit/resource_controller/data_access_spec.rb +0 -230
  577. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  578. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  579. data/spec/unit/resource_controller_spec.rb +0 -274
  580. data/spec/unit/resource_registration_spec.rb +0 -61
  581. data/spec/unit/resource_spec.rb +0 -313
  582. data/spec/unit/routing_spec.rb +0 -213
  583. data/spec/unit/scope_spec.rb +0 -209
  584. data/spec/unit/settings_spec.rb +0 -118
  585. data/spec/unit/view_factory_spec.rb +0 -19
  586. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -252
  587. data/spec/unit/view_helpers/display_helper_spec.rb +0 -195
  588. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  589. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  590. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  591. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  592. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  593. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  594. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  595. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  596. data/spec/unit/views/components/columns_spec.rb +0 -189
  597. data/spec/unit/views/components/index_list_spec.rb +0 -49
  598. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  599. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  600. data/spec/unit/views/components/panel_spec.rb +0 -58
  601. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  602. data/spec/unit/views/components/site_title_spec.rb +0 -78
  603. data/spec/unit/views/components/status_tag_spec.rb +0 -249
  604. data/spec/unit/views/components/table_for_spec.rb +0 -436
  605. data/spec/unit/views/components/tabs_spec.rb +0 -39
  606. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  607. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  608. data/spec/unit/views/pages/form_spec.rb +0 -54
  609. data/spec/unit/views/pages/index_spec.rb +0 -60
  610. data/spec/unit/views/pages/layout_spec.rb +0 -59
  611. data/spec/unit/views/pages/show_spec.rb +0 -32
  612. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  613. data/tasks/docs.rake +0 -37
  614. data/tasks/lint.rake +0 -8
  615. data/tasks/local.rake +0 -25
  616. data/tasks/parallel_tests.rake +0 -66
  617. data/tasks/test.rake +0 -46
  618. data/tasks/yard.rake +0 -9
@@ -1,56 +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 eq 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
53
-
54
- Then /^access denied$/ do
55
- expect(page).to have_content(I18n.t("active_admin.access_denied.message"))
56
- end
@@ -1,11 +0,0 @@
1
- Given /^String "([^"]*)" corresponds to "([^"]*)"$/ do |translation, key|
2
- *seq, last_key = key.split('.')
3
- result = seq.reverse.inject({last_key.to_sym => translation}) do |temp_result, nested_key|
4
- {nested_key.to_sym => temp_result}
5
- end
6
- I18n.backend.store_translations :en, active_admin: result
7
- end
8
-
9
- When /^I set my locale to "([^"]*)"$/ do |lang|
10
- I18n.locale = lang
11
- end
@@ -1,25 +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 label "([^"]*)"$/ do |label|
18
- expect(page).to have_link(label)
19
- end
20
-
21
- Then /^I should see the scope "([^"]*)" with no count$/ do |name|
22
- name = name.tr(" ", "").underscore.downcase
23
- expect(page).to have_css ".scopes .#{name}"
24
- expect(page).to_not have_css ".scopes .#{name} .count"
25
- 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,3 +0,0 @@
1
- Then /^the site should contain a meta tag with name "([^"]*)" and content "([^"]*)"$/ do |name, content|
2
- expect(page).to have_xpath("//meta[@name='#{name}' and @content='#{content}']", visible: false)
3
- end
@@ -1,15 +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
8
-
9
- Then /^I should see the pagination "Next" link/ do
10
- expect(page).to have_css "a", text: "Next"
11
- end
12
-
13
- Then /^I should not see the pagination "Next" link/ do
14
- expect(page).to_not have_css "a", text: "Next"
15
- end
@@ -1,11 +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
- expect(page).not_to have_css '.sidebar_section h3', text: title
7
- end
8
-
9
- Then(/^I should see a sidebar titled "(.*?)" above sidebar titled "(.*?)"$/) do |top_title, bottom_title|
10
- expect(page).to have_css %Q(.sidebar_section:contains('#{top_title}') + .sidebar_section:contains('#{bottom_title}'))
11
- 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,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,116 +0,0 @@
1
- Then /^I should see (\d+) ([\w]*) in the table$/ do |count, resource_type|
2
- expect(page).to \
3
- have_css("table.index_table tr > td:first-child", count: count.to_i)
4
- end
5
-
6
- # TODO: simplify this, if possible?
7
- class HtmlTableToTextHelper
8
- def initialize(html, table_css_selector = "table")
9
- @html = html
10
- @selector = table_css_selector
11
- end
12
-
13
- def to_array
14
- rows = Nokogiri::HTML(@html).css("#{@selector} tr")
15
- rows.map do |row|
16
- row.css('th, td').map do |td|
17
- cell_to_string(td)
18
- end
19
- end
20
- end
21
-
22
- private
23
-
24
- def cell_to_string(td)
25
- str = ""
26
- input = td.css('input').last
27
-
28
- if input
29
- str << input_to_string(input)
30
- end
31
-
32
- str << td.content.strip.gsub("\n", ' ')
33
- end
34
-
35
- def input_to_string(input)
36
- case input.attribute("type").value
37
- when "checkbox"
38
- if input.attribute("disabled")
39
- "_"
40
- else
41
- if input.attribute("checked")
42
- "[X]"
43
- else
44
- "[ ]"
45
- end
46
- end
47
- when "text"
48
- if input.attribute("value").present?
49
- "[#{input.attribute("value")}]"
50
- else
51
- "[ ]"
52
- end
53
- when "submit"
54
- input.attribute("value")
55
- else
56
- raise "I don't know what to do with #{input}"
57
- end
58
- end
59
- end
60
-
61
- module TableMatchHelper
62
- # @param table [Array[Array]]
63
- # @param expected_table [Array[Array[String]]]
64
- # The expected_table values are String. They are converted to
65
- # Regexp when they start and end with a '/'
66
- # Example:
67
- #
68
- # assert_table_match(
69
- # [["Name", "Date"], ["Philippe", "Feb 08"]],
70
- # [["Name", "Date"], ["Philippe", "/\w{3} \d{2}/"]]
71
- # )
72
- def assert_tables_match(table, expected_table)
73
- expected_table.each_index do |row_index|
74
- expected_table[row_index].each_index do |column_index|
75
- expected_cell = expected_table[row_index][column_index]
76
- cell = table.try(:[], row_index).try(:[], column_index)
77
- begin
78
- assert_cells_match(cell, expected_cell)
79
- rescue
80
- puts "Cell at line #{row_index} and column #{column_index}: #{cell.inspect} does not match #{expected_cell.inspect}"
81
- puts "Expecting:"
82
- table.each { |row| puts row.inspect }
83
- puts "to match:"
84
- expected_table.each { |row| puts row.inspect }
85
- raise $!
86
- end
87
- end
88
- end
89
- end
90
-
91
- def assert_cells_match(cell, expected_cell)
92
- if expected_cell =~ /^\/.*\/$/
93
- expect(cell).to match /#{expected_cell[1..-2]}/
94
- else
95
- expect((cell || "").strip).to eq expected_cell
96
- end
97
- end
98
- end
99
-
100
- World(TableMatchHelper)
101
-
102
- # Usage:
103
- #
104
- # I should see the "invoices" table:
105
- # | Invoice # | Date | Total Amount |
106
- # | /\d+/ | 27/01/12 | $30.00 |
107
- # | /\d+/ | 12/02/12 | $25.00 |
108
- #
109
- Then /^I should see the "([^"]*)" table:$/ do |table_id, expected_table|
110
- expect(page).to have_css "table##{table_id}"
111
-
112
- assert_tables_match(
113
- HtmlTableToTextHelper.new(page.body, "table##{table_id}").to_array,
114
- expected_table.raw
115
- )
116
- end
@@ -1,52 +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
- Given /^override locale "([^"]*)" with "([^"]*)"$/ do |path, value|
44
- keys_value = path.split('.') + [value]
45
- locale_hash = keys_value.reverse.inject{|a, n| {n=>a}}
46
- I18n.available_locales
47
- I18n.backend.store_translations(I18n.locale, locale_hash)
48
- end
49
-
50
- When /^I fill in the password field with "([^"]*)"$/ do |password|
51
- fill_in 'admin_user_password', with: password
52
- end
@@ -1,86 +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 )press "([^"]*)"$/ do |button|
31
- click_button(button)
32
- end
33
-
34
- When /^(?:I )follow "([^"]*)"$/ do |link|
35
- first(:link, link).click
36
- end
37
-
38
- When /^(?:I )fill in "([^"]*)" with "([^"]*)"$/ do |field, value|
39
- fill_in(field, with: value)
40
- end
41
-
42
- When /^(?:I )select "([^"]*)" from "([^"]*)"$/ do |value, field|
43
- select(value, from: field)
44
- end
45
-
46
- When /^(?:I )(check|uncheck|choose) "([^"]*)"$/ do |action, field|
47
- send action, field
48
- end
49
-
50
- When /^(?:I )attach the file "([^"]*)" to "([^"]*)"$/ do |path, field|
51
- attach_file(field, File.expand_path(path))
52
- end
53
-
54
- Then /^(?:I )should( not)? see( the element)? "([^"]*)"$/ do |negate, is_css, text|
55
- should = negate ? :not_to : :to
56
- have = is_css ? have_css(text) : have_content(text)
57
- expect(page).send should, have
58
- end
59
-
60
- Then /^the "([^"]*)" field(?: within (.*))? should( not)? contain "([^"]*)"$/ do |field, parent, negate, value|
61
- with_scope(parent) do
62
- field = find_field(field)
63
- value = field.tag_name == 'textarea' ? field.text : field.value
64
-
65
- expect(value).send negate ? :not_to : :to, match(/#{value}/)
66
- end
67
- end
68
-
69
- Then /^the "([^"]*)" checkbox(?: within (.*))? should( not)? be checked$/ do |label, parent, negate|
70
- with_scope(parent) do
71
- checkbox = find_field(label)
72
- if negate
73
- expect(checkbox).not_to be_checked
74
- else
75
- expect(checkbox).to be_checked
76
- end
77
- end
78
- end
79
-
80
- Then /^(?:|I )should be on (.+)$/ do |page_name|
81
- expect(URI.parse(current_url).path).to eq path_to page_name
82
- end
83
-
84
- Then /^show me the page$/ do
85
- save_and_open_page
86
- 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
11
- end
12
- ActiveAdmin.register User do
13
- permit_params :first_name, :last_name, :username, :age
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,69 +0,0 @@
1
- @silent_unpermitted_params_failure
2
- Feature: Strong Params
3
-
4
- Background:
5
- Given a category named "Music" exists
6
- And a user named "John Doe" exists
7
- And a post with the title "Hello World" written by "John Doe" exists
8
- And I am logged in
9
- Given a configuration of:
10
- """
11
- ActiveAdmin.register Post do
12
- end
13
- """
14
- When I am on the index page for posts
15
-
16
- Scenario: Static permitted parameters
17
- Given a configuration of:
18
- """
19
- ActiveAdmin.register Post do
20
- permit_params :author, :title, :starred
21
- end
22
- """
23
- Given I follow "Edit"
24
-
25
- When I fill in "Title" with "Hello World from update"
26
- And I check "Starred"
27
- When I press "Update Post"
28
- Then I should see "Post was successfully updated."
29
- And I should see the attribute "Title" with "Hello World from update"
30
- And I should see the attribute "Author" with "John Doe"
31
- And I should see the attribute "Starred" with "Yes"
32
-
33
- Scenario: Dynamic permitted parameters
34
- Given a configuration of:
35
- """
36
- ActiveAdmin.register Post do
37
- permit_params do
38
- allow = [:author, :title]
39
- allow << :starred
40
- allow
41
- end
42
- end
43
- """
44
- Given I follow "Edit"
45
-
46
- When I fill in "Title" with "Hello World from update"
47
- And I check "Starred"
48
- When I press "Update Post"
49
- Then I should see "Post was successfully updated."
50
- And I should see the attribute "Title" with "Hello World from update"
51
- And I should see the attribute "Author" with "John Doe"
52
- And I should see the attribute "Starred" with "Yes"
53
-
54
- Scenario: Should not update parameters that are not declared as permitted
55
- Given a configuration of:
56
- """
57
- ActiveAdmin.register Post do
58
- permit_params :author, :title
59
- end
60
- """
61
- Given I follow "Edit"
62
-
63
- When I fill in "Title" with "Hello World from update"
64
- And I check "Starred"
65
- When I press "Update Post"
66
- Then I should see "Post was successfully updated."
67
- And I should see the attribute "Title" with "Hello World from update"
68
- And I should see the attribute "Author" with "John Doe"
69
- And I should see the attribute "Starred" with "No"