activeadmin 1.0.0.pre4 → 2.4.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 (542) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +529 -52
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +129 -58
  5. data/README.md +80 -79
  6. data/app/assets/javascripts/active_admin/base.es6 +23 -0
  7. data/app/assets/javascripts/active_admin/ext/jquery-ui.es6 +7 -0
  8. data/app/assets/javascripts/active_admin/ext/jquery.es6 +9 -0
  9. data/app/assets/javascripts/active_admin/initializers/datepicker.es6 +16 -0
  10. data/app/assets/javascripts/active_admin/initializers/filters.es6 +45 -0
  11. data/app/assets/javascripts/active_admin/initializers/tabs.es6 +6 -0
  12. data/app/assets/javascripts/active_admin/lib/active_admin.es6 +41 -0
  13. data/app/assets/javascripts/active_admin/lib/batch_actions.es6 +59 -0
  14. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.es6 +49 -0
  15. data/app/assets/javascripts/active_admin/lib/dropdown-menu.es6 +123 -0
  16. data/app/assets/javascripts/active_admin/lib/has_many.es6 +95 -0
  17. data/app/assets/javascripts/active_admin/lib/modal_dialog.es6 +61 -0
  18. data/app/assets/javascripts/active_admin/lib/per_page.es6 +47 -0
  19. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.es6 +36 -0
  20. data/app/assets/stylesheets/active_admin/_base.scss +2 -2
  21. data/app/assets/stylesheets/active_admin/_forms.scss +19 -26
  22. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  23. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  24. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  25. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  26. data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
  27. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  28. data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
  29. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/print.scss +2 -3
  31. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  32. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  33. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  34. data/app/views/active_admin/devise/registrations/new.html.erb +3 -4
  35. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  36. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  37. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  38. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  39. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  40. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  41. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  42. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  43. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  44. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  45. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  46. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  47. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  48. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  49. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  50. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  51. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  52. data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
  53. data/config/locales/ar.yml +4 -5
  54. data/config/locales/bg.yml +1 -3
  55. data/config/locales/bs.yml +1 -2
  56. data/config/locales/ca.yml +2 -4
  57. data/config/locales/cs.yml +1 -2
  58. data/config/locales/da.yml +45 -14
  59. data/config/locales/de-CH.yml +2 -3
  60. data/config/locales/de.yml +30 -3
  61. data/config/locales/el.yml +3 -4
  62. data/config/locales/en-CA.yml +139 -0
  63. data/config/locales/en-GB.yml +44 -3
  64. data/config/locales/en.yml +31 -5
  65. data/config/locales/eo.yml +145 -0
  66. data/config/locales/es-MX.yml +5 -3
  67. data/config/locales/es.yml +32 -6
  68. data/config/locales/fa.yml +1 -2
  69. data/config/locales/fi.yml +2 -3
  70. data/config/locales/fr.yml +27 -5
  71. data/config/locales/he.yml +53 -7
  72. data/config/locales/hr.yml +1 -2
  73. data/config/locales/hu.yml +5 -2
  74. data/config/locales/id.yml +2 -3
  75. data/config/locales/it.yml +15 -7
  76. data/config/locales/ja.yml +8 -3
  77. data/config/locales/ko.yml +1 -2
  78. data/config/locales/lt.yml +27 -6
  79. data/config/locales/lv.yml +1 -2
  80. data/config/locales/mk.yml +134 -0
  81. data/config/locales/nb.yml +16 -7
  82. data/config/locales/nl.yml +13 -3
  83. data/config/locales/pl.yml +75 -5
  84. data/config/locales/pt-BR.yml +10 -3
  85. data/config/locales/pt-PT.yml +1 -2
  86. data/config/locales/ro.yml +1 -2
  87. data/config/locales/ru.yml +5 -3
  88. data/config/locales/sk.yml +168 -0
  89. data/config/locales/sv-SE.yml +4 -3
  90. data/config/locales/tr.yml +10 -2
  91. data/config/locales/uk.yml +4 -3
  92. data/config/locales/vi.yml +48 -8
  93. data/config/locales/zh-CN.yml +38 -7
  94. data/config/locales/zh-TW.yml +2 -3
  95. data/docs/.gitignore +1 -0
  96. data/docs/0-installation.md +19 -13
  97. data/docs/1-general-configuration.md +37 -4
  98. data/docs/10-custom-pages.md +47 -3
  99. data/docs/11-decorators.md +4 -0
  100. data/docs/12-arbre-components.md +73 -9
  101. data/docs/13-authorization-adapter.md +72 -35
  102. data/docs/14-gotchas.md +57 -19
  103. data/docs/2-resource-customization.md +64 -20
  104. data/docs/3-index-pages/custom-index.md +5 -1
  105. data/docs/3-index-pages/index-as-block.md +3 -5
  106. data/docs/3-index-pages/index-as-blog.md +4 -6
  107. data/docs/3-index-pages/index-as-grid.md +3 -5
  108. data/docs/3-index-pages/index-as-table.md +33 -12
  109. data/docs/3-index-pages.md +65 -9
  110. data/docs/4-csv-format.md +16 -0
  111. data/docs/5-forms.md +78 -17
  112. data/docs/6-show-pages.md +5 -29
  113. data/docs/7-sidebars.md +5 -1
  114. data/docs/8-custom-actions.md +18 -1
  115. data/docs/9-batch-actions.md +8 -4
  116. data/docs/CNAME +1 -0
  117. data/docs/Gemfile +3 -0
  118. data/docs/Gemfile.lock +248 -0
  119. data/docs/_config.yml +4 -0
  120. data/docs/_includes/footer.html +8 -0
  121. data/docs/_includes/google-analytics.html +16 -0
  122. data/docs/_includes/head.html +7 -0
  123. data/docs/_includes/toc.html +98 -0
  124. data/docs/_includes/top-menu.html +17 -0
  125. data/docs/_layouts/default.html +21 -0
  126. data/docs/documentation.md +60 -0
  127. data/docs/images/activeadmin.png +0 -0
  128. data/docs/images/code-header.png +0 -0
  129. data/docs/images/divider.png +0 -0
  130. data/docs/images/features.png +0 -0
  131. data/docs/images/tidelift.svg +14 -0
  132. data/docs/index.html +226 -0
  133. data/docs/stylesheets/main.css +1205 -0
  134. data/lib/active_admin/abstract_view_factory.rb +13 -51
  135. data/lib/active_admin/application.rb +50 -140
  136. data/lib/active_admin/application_settings.rb +42 -0
  137. data/lib/active_admin/authorization_adapter.rb +0 -3
  138. data/lib/active_admin/base_controller/authorization.rb +4 -7
  139. data/lib/active_admin/base_controller/menu.rb +10 -14
  140. data/lib/active_admin/base_controller.rb +8 -14
  141. data/lib/active_admin/batch_actions/controller.rb +3 -3
  142. data/lib/active_admin/batch_actions/resource_extension.rb +9 -13
  143. data/lib/active_admin/batch_actions/views/batch_action_form.rb +1 -1
  144. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +1 -1
  145. data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
  146. data/lib/active_admin/callbacks.rb +1 -1
  147. data/lib/active_admin/controller_action.rb +2 -1
  148. data/lib/active_admin/csv_builder.rb +15 -12
  149. data/lib/active_admin/dependency.rb +8 -76
  150. data/lib/active_admin/deprecation.rb +0 -25
  151. data/lib/active_admin/devise.rb +3 -3
  152. data/lib/active_admin/dsl.rb +3 -16
  153. data/lib/active_admin/dynamic_setting.rb +38 -0
  154. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  155. data/lib/active_admin/engine.rb +5 -0
  156. data/lib/active_admin/error.rb +5 -3
  157. data/lib/active_admin/filters/active.rb +13 -14
  158. data/lib/active_admin/filters/active_filter.rb +124 -0
  159. data/lib/active_admin/filters/active_sidebar.rb +54 -0
  160. data/lib/active_admin/filters/forms.rb +6 -4
  161. data/lib/active_admin/filters/formtastic_addons.rb +2 -2
  162. data/lib/active_admin/filters/resource_extension.rb +28 -43
  163. data/lib/active_admin/filters.rb +2 -0
  164. data/lib/active_admin/form_builder.rb +100 -59
  165. data/lib/active_admin/generators/boilerplate.rb +12 -4
  166. data/lib/active_admin/helpers/collection.rb +2 -0
  167. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  168. data/lib/active_admin/inputs/datepicker_input.rb +12 -5
  169. data/lib/active_admin/inputs/filters/base/search_method_select.rb +2 -2
  170. data/lib/active_admin/inputs/filters/date_range_input.rb +21 -8
  171. data/lib/active_admin/inputs/filters/select_input.rb +6 -3
  172. data/lib/active_admin/inputs/filters/text_input.rb +25 -0
  173. data/lib/active_admin/inputs.rb +1 -0
  174. data/lib/active_admin/localizers/resource_localizer.rb +35 -0
  175. data/lib/active_admin/localizers.rb +11 -0
  176. data/lib/active_admin/menu.rb +6 -12
  177. data/lib/active_admin/menu_collection.rb +0 -2
  178. data/lib/active_admin/menu_item.rb +4 -32
  179. data/lib/active_admin/namespace.rb +36 -17
  180. data/lib/active_admin/namespace_settings.rb +123 -0
  181. data/lib/active_admin/order_clause.rb +30 -8
  182. data/lib/active_admin/orm/active_record/comments/comment.rb +3 -17
  183. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +19 -7
  184. data/lib/active_admin/orm/active_record/comments.rb +17 -11
  185. data/lib/active_admin/page.rb +23 -4
  186. data/lib/active_admin/page_controller.rb +2 -6
  187. data/lib/active_admin/page_dsl.rb +5 -1
  188. data/lib/active_admin/page_presenter.rb +2 -1
  189. data/lib/active_admin/pundit_adapter.rb +18 -5
  190. data/lib/active_admin/resource/action_items.rb +17 -5
  191. data/lib/active_admin/resource/attributes.rb +47 -0
  192. data/lib/active_admin/resource/belongs_to.rb +10 -1
  193. data/lib/active_admin/resource/menu.rb +7 -4
  194. data/lib/active_admin/resource/model.rb +15 -0
  195. data/lib/active_admin/resource/naming.rb +3 -3
  196. data/lib/active_admin/resource/ordering.rb +11 -0
  197. data/lib/active_admin/resource/page_presenters.rb +1 -1
  198. data/lib/active_admin/resource/routes.rb +52 -20
  199. data/lib/active_admin/resource/scopes.rb +5 -3
  200. data/lib/active_admin/resource/sidebars.rb +1 -1
  201. data/lib/active_admin/resource.rb +59 -7
  202. data/lib/active_admin/resource_collection.rb +2 -2
  203. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  204. data/lib/active_admin/resource_controller/data_access.rb +32 -27
  205. data/lib/active_admin/resource_controller/decorators.rb +5 -5
  206. data/lib/active_admin/resource_controller/polymorphic_routes.rb +36 -0
  207. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  208. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  209. data/lib/active_admin/resource_controller.rb +15 -0
  210. data/lib/active_admin/resource_dsl.rb +58 -24
  211. data/lib/active_admin/router.rb +90 -82
  212. data/lib/active_admin/scope.rb +20 -12
  213. data/lib/active_admin/settings_node.rb +19 -0
  214. data/lib/active_admin/sidebar_section.rb +3 -1
  215. data/lib/active_admin/version.rb +1 -1
  216. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
  217. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +2 -2
  218. data/lib/active_admin/view_helpers/display_helper.rb +28 -16
  219. data/lib/active_admin/view_helpers/download_format_links_helper.rb +13 -0
  220. data/lib/active_admin/view_helpers/fields_for.rb +1 -2
  221. data/lib/active_admin/view_helpers/form_helper.rb +2 -2
  222. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +8 -1
  223. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  224. data/lib/active_admin/view_helpers.rb +2 -1
  225. data/lib/active_admin/views/action_items.rb +1 -1
  226. data/lib/active_admin/views/components/active_admin_form.rb +43 -11
  227. data/lib/active_admin/views/components/attributes_table.rb +4 -4
  228. data/lib/active_admin/views/components/columns.rb +3 -3
  229. data/lib/active_admin/views/components/dropdown_menu.rb +4 -4
  230. data/lib/active_admin/views/components/index_list.rb +4 -3
  231. data/lib/active_admin/views/components/menu.rb +32 -0
  232. data/lib/active_admin/views/components/menu_item.rb +58 -0
  233. data/lib/active_admin/views/components/paginated_collection.rb +7 -11
  234. data/lib/active_admin/views/components/scopes.rb +14 -8
  235. data/lib/active_admin/views/components/sidebar.rb +13 -0
  236. data/lib/active_admin/views/components/site_title.rb +5 -6
  237. data/lib/active_admin/views/components/status_tag.rb +11 -16
  238. data/lib/active_admin/views/components/table_for.rb +7 -16
  239. data/lib/active_admin/views/components/tabs.rb +15 -3
  240. data/lib/active_admin/views/footer.rb +14 -4
  241. data/lib/active_admin/views/header.rb +3 -16
  242. data/lib/active_admin/views/index_as_blog.rb +2 -3
  243. data/lib/active_admin/views/index_as_grid.rb +25 -25
  244. data/lib/active_admin/views/index_as_table.rb +39 -13
  245. data/lib/active_admin/views/pages/base.rb +36 -57
  246. data/lib/active_admin/views/pages/form.rb +2 -3
  247. data/lib/active_admin/views/pages/layout.rb +1 -1
  248. data/lib/active_admin/views/pages/show.rb +8 -2
  249. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  250. data/lib/active_admin/views/title_bar.rb +4 -4
  251. data/lib/active_admin/views.rb +1 -1
  252. data/lib/active_admin.rb +11 -7
  253. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  254. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  255. data/lib/generators/active_admin/devise/devise_generator.rb +8 -5
  256. data/lib/generators/active_admin/install/install_generator.rb +7 -3
  257. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +60 -4
  258. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -3
  259. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  260. data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +2 -5
  261. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  262. data/lib/generators/active_admin/resource/resource_generator.rb +2 -2
  263. data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
  264. data/lib/ransack_ext.rb +5 -5
  265. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  266. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  267. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  268. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  269. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  270. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  271. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  272. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  273. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  274. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  275. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  276. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  277. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  278. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  279. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  280. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  281. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  282. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  283. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  284. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  285. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  286. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  287. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  288. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  289. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  290. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  291. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  292. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  293. data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
  294. metadata +190 -539
  295. data/.gitignore +0 -49
  296. data/.hound.yml +0 -14
  297. data/.travis.yml +0 -46
  298. data/.yardopts +0 -8
  299. data/Gemfile +0 -75
  300. data/Guardfile +0 -8
  301. data/Rakefile +0 -33
  302. data/activeadmin.gemspec +0 -31
  303. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  304. data/app/assets/javascripts/active_admin/base.js.coffee +0 -9
  305. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  306. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  307. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -7
  308. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -10
  309. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -15
  310. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -3
  311. data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -11
  312. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  313. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -36
  314. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  315. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  316. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  317. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  318. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -31
  319. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  320. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  321. data/cucumber.yml +0 -3
  322. data/features/action_item.feature +0 -73
  323. data/features/authorization.feature +0 -64
  324. data/features/authorization_cancan.feature +0 -52
  325. data/features/authorization_pundit.feature +0 -37
  326. data/features/belongs_to.feature +0 -66
  327. data/features/breadcrumb.feature +0 -75
  328. data/features/comments/commenting.feature +0 -171
  329. data/features/comments/viewing_index.feature +0 -19
  330. data/features/dashboard.feature +0 -16
  331. data/features/decorators.feature +0 -43
  332. data/features/development_reloading.feature +0 -30
  333. data/features/edit_page.feature +0 -117
  334. data/features/favicon.feature +0 -20
  335. data/features/first_boot.feature +0 -16
  336. data/features/global_navigation.feature +0 -29
  337. data/features/i18n.feature +0 -43
  338. data/features/index/batch_actions.feature +0 -196
  339. data/features/index/filters.feature +0 -161
  340. data/features/index/format_as_csv.feature +0 -203
  341. data/features/index/formats.feature +0 -66
  342. data/features/index/index_as_block.feature +0 -15
  343. data/features/index/index_as_blog.feature +0 -69
  344. data/features/index/index_as_grid.feature +0 -45
  345. data/features/index/index_as_table.feature +0 -291
  346. data/features/index/index_blank_slate.feature +0 -83
  347. data/features/index/index_parameters.feature +0 -75
  348. data/features/index/index_scope_to.feature +0 -56
  349. data/features/index/index_scopes.feature +0 -251
  350. data/features/index/page_title.feature +0 -42
  351. data/features/index/pagination.feature +0 -63
  352. data/features/index/switch_index_view.feature +0 -73
  353. data/features/menu.feature +0 -53
  354. data/features/meta_tags.feature +0 -21
  355. data/features/new_page.feature +0 -109
  356. data/features/registering_assets.feature +0 -34
  357. data/features/registering_pages.feature +0 -148
  358. data/features/registering_resources.feature +0 -33
  359. data/features/renamed_resource.feature +0 -32
  360. data/features/root_to.feature +0 -17
  361. data/features/show/columns.feature +0 -40
  362. data/features/show/default_content.feature +0 -44
  363. data/features/show/page_title.feature +0 -59
  364. data/features/show/tabs.feature +0 -27
  365. data/features/sidebar_sections.feature +0 -210
  366. data/features/site_title.feature +0 -47
  367. data/features/specifying_actions.feature +0 -93
  368. data/features/step_definitions/action_item_steps.rb +0 -7
  369. data/features/step_definitions/action_link_steps.rb +0 -20
  370. data/features/step_definitions/additional_web_steps.rb +0 -81
  371. data/features/step_definitions/asset_steps.rb +0 -15
  372. data/features/step_definitions/attribute_steps.rb +0 -18
  373. data/features/step_definitions/batch_action_steps.rb +0 -81
  374. data/features/step_definitions/blog_steps.rb +0 -3
  375. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  376. data/features/step_definitions/column_steps.rb +0 -8
  377. data/features/step_definitions/comment_steps.rb +0 -12
  378. data/features/step_definitions/configuration_steps.rb +0 -100
  379. data/features/step_definitions/dashboard_steps.rb +0 -15
  380. data/features/step_definitions/factory_steps.rb +0 -35
  381. data/features/step_definitions/filter_steps.rb +0 -39
  382. data/features/step_definitions/flash_steps.rb +0 -11
  383. data/features/step_definitions/format_steps.rb +0 -52
  384. data/features/step_definitions/i18n_steps.rb +0 -3
  385. data/features/step_definitions/index_scope_steps.rb +0 -21
  386. data/features/step_definitions/index_views_steps.rb +0 -3
  387. data/features/step_definitions/layout_steps.rb +0 -3
  388. data/features/step_definitions/member_link_steps.rb +0 -7
  389. data/features/step_definitions/menu_steps.rb +0 -11
  390. data/features/step_definitions/meta_tag_steps.rb +0 -3
  391. data/features/step_definitions/pagination_steps.rb +0 -15
  392. data/features/step_definitions/sidebar_steps.rb +0 -13
  393. data/features/step_definitions/site_title_steps.rb +0 -17
  394. data/features/step_definitions/symbol_leak_steps.rb +0 -3
  395. data/features/step_definitions/tab_steps.rb +0 -8
  396. data/features/step_definitions/table_steps.rb +0 -120
  397. data/features/step_definitions/user_steps.rb +0 -45
  398. data/features/step_definitions/web_steps.rb +0 -85
  399. data/features/sti_resource.feature +0 -65
  400. data/features/strong_parameters.feature +0 -73
  401. data/features/support/env.rb +0 -162
  402. data/features/support/paths.rb +0 -71
  403. data/features/support/selectors.rb +0 -45
  404. data/features/symbol_leak.feature +0 -35
  405. data/features/users/logging_in.feature +0 -34
  406. data/features/users/logging_out.feature +0 -13
  407. data/features/users/resetting_password.feature +0 -34
  408. data/lib/active_admin/event.rb +0 -24
  409. data/lib/active_admin/filters/humanized.rb +0 -68
  410. data/lib/active_admin/helpers/settings.rb +0 -115
  411. data/lib/active_admin/reloader.rb +0 -25
  412. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  413. data/lib/generators/active_admin/resource/templates/admin.rb +0 -45
  414. data/script/local +0 -53
  415. data/script/travis_cache +0 -107
  416. data/script/use_rails +0 -53
  417. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  418. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  419. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  420. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  421. data/spec/javascripts/fixtures/flashes.html +0 -2
  422. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  423. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  424. data/spec/javascripts/support/jasmine.yml +0 -74
  425. data/spec/javascripts/support/jasmine_config.rb +0 -23
  426. data/spec/javascripts/support/jasmine_runner.rb +0 -32
  427. data/spec/rails_helper.rb +0 -169
  428. data/spec/requests/default_namespace_spec.rb +0 -61
  429. data/spec/requests/javascript_spec.rb +0 -22
  430. data/spec/requests/memory_spec.rb +0 -21
  431. data/spec/requests/stylesheets_spec.rb +0 -18
  432. data/spec/spec_helper.rb +0 -17
  433. data/spec/support/active_admin_request_helpers.rb +0 -27
  434. data/spec/support/deferred_garbage_collection.rb +0 -19
  435. data/spec/support/detect_rails_version.rb +0 -34
  436. data/spec/support/jslint.yml +0 -80
  437. data/spec/support/rails_template.rb +0 -158
  438. data/spec/support/rails_template_with_data.rb +0 -55
  439. data/spec/support/templates/admin/stores.rb +0 -9
  440. data/spec/support/templates/en.yml +0 -8
  441. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  442. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  443. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  444. data/spec/support/templates/policies/application_policy.rb +0 -45
  445. data/spec/support/templates/policies/category_policy.rb +0 -7
  446. data/spec/support/templates/policies/post_policy.rb +0 -15
  447. data/spec/support/templates/policies/store_policy.rb +0 -11
  448. data/spec/support/templates/policies/user_policy.rb +0 -11
  449. data/spec/support/templates/post_decorator.rb +0 -11
  450. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  451. data/spec/unit/action_builder_spec.rb +0 -134
  452. data/spec/unit/active_admin_spec.rb +0 -11
  453. data/spec/unit/application_spec.rb +0 -165
  454. data/spec/unit/asset_registration_spec.rb +0 -52
  455. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  456. data/spec/unit/authorization/controller_authorization_spec.rb +0 -39
  457. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  458. data/spec/unit/auto_link_spec.rb +0 -69
  459. data/spec/unit/batch_actions/resource_spec.rb +0 -97
  460. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  461. data/spec/unit/belongs_to_spec.rb +0 -65
  462. data/spec/unit/cancan_adapter_spec.rb +0 -43
  463. data/spec/unit/comments_spec.rb +0 -188
  464. data/spec/unit/component_spec.rb +0 -18
  465. data/spec/unit/config_shared_examples.rb +0 -59
  466. data/spec/unit/controller_filters_spec.rb +0 -41
  467. data/spec/unit/csv_builder_spec.rb +0 -303
  468. data/spec/unit/dependency_spec.rb +0 -135
  469. data/spec/unit/devise_spec.rb +0 -96
  470. data/spec/unit/dsl_spec.rb +0 -122
  471. data/spec/unit/filters/filter_form_builder_spec.rb +0 -434
  472. data/spec/unit/filters/humanized_spec.rb +0 -56
  473. data/spec/unit/filters/resource_spec.rb +0 -128
  474. data/spec/unit/form_builder_spec.rb +0 -815
  475. data/spec/unit/generators/install_spec.rb +0 -24
  476. data/spec/unit/helpers/collection_spec.rb +0 -65
  477. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  478. data/spec/unit/helpers/settings_spec.rb +0 -30
  479. data/spec/unit/i18n_spec.rb +0 -12
  480. data/spec/unit/menu_collection_spec.rb +0 -62
  481. data/spec/unit/menu_item_spec.rb +0 -143
  482. data/spec/unit/menu_spec.rb +0 -71
  483. data/spec/unit/namespace/authorization_spec.rb +0 -27
  484. data/spec/unit/namespace/register_page_spec.rb +0 -73
  485. data/spec/unit/namespace/register_resource_spec.rb +0 -160
  486. data/spec/unit/namespace_spec.rb +0 -103
  487. data/spec/unit/order_clause_spec.rb +0 -81
  488. data/spec/unit/page_controller_spec.rb +0 -5
  489. data/spec/unit/page_spec.rb +0 -78
  490. data/spec/unit/pretty_format_spec.rb +0 -77
  491. data/spec/unit/pundit_adapter_spec.rb +0 -98
  492. data/spec/unit/resource/action_items_spec.rb +0 -65
  493. data/spec/unit/resource/includes_spec.rb +0 -21
  494. data/spec/unit/resource/menu_spec.rb +0 -18
  495. data/spec/unit/resource/naming_spec.rb +0 -122
  496. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  497. data/spec/unit/resource/pagination_spec.rb +0 -38
  498. data/spec/unit/resource/routes_spec.rb +0 -77
  499. data/spec/unit/resource/scopes_spec.rb +0 -50
  500. data/spec/unit/resource/sidebars_spec.rb +0 -43
  501. data/spec/unit/resource_collection_spec.rb +0 -175
  502. data/spec/unit/resource_controller/data_access_spec.rb +0 -140
  503. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  504. data/spec/unit/resource_controller/sidebars_spec.rb +0 -38
  505. data/spec/unit/resource_controller_spec.rb +0 -269
  506. data/spec/unit/resource_registration_spec.rb +0 -56
  507. data/spec/unit/resource_spec.rb +0 -331
  508. data/spec/unit/routing_spec.rb +0 -185
  509. data/spec/unit/scope_spec.rb +0 -185
  510. data/spec/unit/settings_spec.rb +0 -118
  511. data/spec/unit/view_factory_spec.rb +0 -19
  512. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
  513. data/spec/unit/view_helpers/display_helper_spec.rb +0 -165
  514. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  515. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  516. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  517. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  518. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  519. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  520. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  521. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  522. data/spec/unit/views/components/columns_spec.rb +0 -189
  523. data/spec/unit/views/components/index_list_spec.rb +0 -35
  524. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  525. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  526. data/spec/unit/views/components/panel_spec.rb +0 -58
  527. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  528. data/spec/unit/views/components/site_title_spec.rb +0 -78
  529. data/spec/unit/views/components/status_tag_spec.rb +0 -249
  530. data/spec/unit/views/components/table_for_spec.rb +0 -434
  531. data/spec/unit/views/components/tabs_spec.rb +0 -39
  532. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  533. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  534. data/spec/unit/views/pages/form_spec.rb +0 -51
  535. data/spec/unit/views/pages/index_spec.rb +0 -60
  536. data/spec/unit/views/pages/layout_spec.rb +0 -59
  537. data/spec/unit/views/pages/show_spec.rb +0 -33
  538. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  539. data/tasks/docs.rake +0 -37
  540. data/tasks/parallel_tests.rake +0 -66
  541. data/tasks/test.rake +0 -91
  542. data/tasks/yard.rake +0 -9
@@ -1,140 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::ResourceController::DataAccess do
4
- let(:params) do
5
- {}
6
- end
7
-
8
- let(:controller) do
9
- rc = Admin::PostsController.new
10
- allow(rc).to receive(:params) do
11
- params
12
- end
13
- rc
14
- end
15
-
16
- describe "searching" do
17
- let(:params) {{ q: {} }}
18
- it "should call the search method" do
19
- chain = double "ChainObj"
20
- expect(chain).to receive(:ransack).with(params[:q]).once.and_return(Post.ransack)
21
- controller.send :apply_filtering, chain
22
- end
23
- end
24
-
25
- describe "sorting" do
26
-
27
- context "valid clause" do
28
- let(:params) {{ order: "id_asc" }}
29
-
30
- it "reorders chain" do
31
- chain = double "ChainObj"
32
- expect(chain).to receive(:reorder).with('"posts"."id" asc').once.and_return(Post.search)
33
- controller.send :apply_sorting, chain
34
- end
35
- end
36
-
37
- context "invalid clause" do
38
- let(:params) {{ order: "_asc" }}
39
-
40
- it "returns chain untouched" do
41
- chain = double "ChainObj"
42
- expect(chain).not_to receive(:reorder)
43
- expect(controller.send(:apply_sorting, chain)).to eq chain
44
- end
45
- end
46
-
47
- end
48
-
49
- describe "scoping" do
50
-
51
- context "when no current scope" do
52
- it "should set collection_before_scope to the chain and return the chain" do
53
- chain = double "ChainObj"
54
- expect(controller.send(:apply_scoping, chain)).to eq chain
55
- expect(controller.send(:collection_before_scope)).to eq chain
56
- end
57
- end
58
-
59
- context "when current scope" do
60
- it "should set collection_before_scope to the chain and return the scoped chain" do
61
- chain = double "ChainObj"
62
- scoped_chain = double "ScopedChain"
63
- current_scope = double "CurrentScope"
64
- allow(controller).to receive(:current_scope) { current_scope }
65
-
66
- expect(controller).to receive(:scope_chain).with(current_scope, chain) { scoped_chain }
67
- expect(controller.send(:apply_scoping, chain)).to eq scoped_chain
68
- expect(controller.send(:collection_before_scope)).to eq chain
69
- end
70
- end
71
- end
72
-
73
- describe "includes" do
74
- context "with no includes" do
75
- it "should return the chain" do
76
- chain = double "ChainObj"
77
- expect(controller.send(:apply_includes, chain)).to eq chain
78
- end
79
- end
80
-
81
- context "with includes" do
82
- it "should return the chain with the includes" do
83
- chain = double "ChainObj"
84
- chain_with_includes = double "ChainObjWithIncludes"
85
- expect(chain).to receive(:includes).with(:taggings, :author).and_return(chain_with_includes)
86
- expect(controller.send(:active_admin_config)).to receive(:includes).twice.and_return([:taggings, :author])
87
- expect(controller.send(:apply_includes, chain)).to eq chain_with_includes
88
- end
89
- end
90
- end
91
-
92
- describe "find_collection" do
93
- let(:appliers) do
94
- ActiveAdmin::ResourceController::DataAccess::COLLECTION_APPLIES
95
- end
96
- let(:scoped_collection) do
97
- double "ScopedCollectionChain"
98
- end
99
- before do
100
- allow(controller).to receive(:scoped_collection).
101
- and_return(scoped_collection)
102
- end
103
-
104
- it "should return chain with all appliers " do
105
- appliers.each do |applier|
106
- expect(controller).to receive("apply_#{applier}").
107
- with(scoped_collection).
108
- once.
109
- and_return(scoped_collection)
110
- end
111
- expect(controller).to receive(:collection_applies).
112
- with({}).and_call_original.once
113
- controller.send :find_collection
114
- end
115
-
116
- describe "collection_applies" do
117
- context "excepting appliers" do
118
- let(:options) do
119
- { except:
120
- [:authorization_scope, :filtering, :scoping, :collection_decorator]
121
- }
122
- end
123
-
124
- it "should except appliers" do
125
- expect(controller.send :collection_applies, options).
126
- to eq([:sorting, :includes, :pagination])
127
- end
128
- end
129
-
130
- context "specifying only needed appliers" do
131
- let(:options) do
132
- { only: [:filtering, :scoping] }
133
- end
134
- it "should except appliers" do
135
- expect(controller.send :collection_applies, options).to eq(options[:only])
136
- end
137
- end
138
- end
139
- end
140
- end
@@ -1,94 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::ResourceController::Decorators do
4
- let(:controller_class) do
5
- Class.new do
6
- def self.name
7
- "Test Controller using Decorators"
8
- end
9
-
10
- include ActiveAdmin::ResourceController::Decorators
11
-
12
- public :apply_decorator, :apply_collection_decorator
13
- end
14
- end
15
-
16
- let(:controller) { controller_class.new }
17
- let(:active_admin_config) { double(decorator_class: decorator_class) }
18
- before do
19
- allow(controller).to receive(:active_admin_config).and_return(active_admin_config)
20
- allow(controller).to receive(:action_name).and_return(action)
21
- end
22
-
23
- describe '#apply_decorator' do
24
- let(:action) { 'show' }
25
- let(:resource) { Post.new }
26
- subject(:applied) { controller.apply_decorator(resource) }
27
-
28
- context 'with a decorator configured' do
29
- let(:decorator_class) { PostDecorator }
30
- it { is_expected.to be_kind_of(PostDecorator) }
31
-
32
- context 'with form' do
33
- let(:action) { 'update' }
34
-
35
- it "does not decorate when :decorate is set to false" do
36
- form = double
37
- allow(form).to receive(:options).and_return(:decorate => false)
38
- allow(active_admin_config).to receive(:get_page_presenter).and_return(form)
39
- is_expected.not_to be_kind_of(PostDecorator)
40
- end
41
- end
42
- end
43
-
44
- context 'with no decorator configured' do
45
- let(:decorator_class) { nil }
46
- it { is_expected.to be_kind_of(Post) }
47
- end
48
- end
49
-
50
- describe '#apply_collection_decorator' do
51
- before { Post.create! }
52
- let(:action) { 'index' }
53
- let(:collection) { Post.where nil }
54
- subject(:applied) { controller.apply_collection_decorator(collection) }
55
-
56
- context 'when a decorator is configured' do
57
- context 'and it is using a recent version of draper' do
58
- let(:decorator_class) { PostDecorator }
59
-
60
- it 'calling certain scope collections work' do
61
- # This is an example of one of the methods that was consistently
62
- # failing before this feature existed
63
- expect(applied.reorder('').count).to eq applied.count
64
- end
65
-
66
- it 'has a good description for the generated class' do
67
- expect(applied.class.name).to eq "Draper::CollectionDecorator of PostDecorator + ActiveAdmin"
68
- end
69
-
70
- end
71
- end
72
- end
73
-
74
- describe 'form actions' do
75
- let(:action) { 'edit' }
76
- let(:resource) { Post.new }
77
- let(:form_presenter) { double options: { decorate: decorate_form } }
78
- let(:decorator_class) { PostDecorator }
79
- before { allow(active_admin_config).to receive(:get_page_presenter).with(:form).and_return form_presenter }
80
-
81
- subject(:applied) { controller.apply_decorator(resource) }
82
-
83
- context 'when the form is not configured to decorate' do
84
- let(:decorate_form) { false }
85
- it { is_expected.to be_kind_of(Post) }
86
- end
87
-
88
- context 'when the form is configured to decorate' do
89
- let(:decorate_form) { true }
90
- it { is_expected.to be_kind_of(PostDecorator) }
91
- end
92
-
93
- end
94
- end
@@ -1,38 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::ResourceController::Sidebars, type: :controller do
4
- let(:klass){ Admin::PostsController }
5
- render_views # https://github.com/rspec/rspec-rails/issues/860
6
-
7
- before do
8
- @controller = klass.new
9
- end
10
-
11
- context 'without before_filter' do
12
- before do
13
- ActiveAdmin.register Post
14
- reload_routes!
15
- end
16
-
17
- it 'does not set @skip_sidebar' do
18
- get :index
19
-
20
- expect(controller.instance_variable_get(:@skip_sidebar)).to eq nil
21
- end
22
- end
23
-
24
- describe '#skip_sidebar!' do
25
- before do
26
- ActiveAdmin.register Post do
27
- before_filter :skip_sidebar!
28
- end
29
- reload_routes!
30
- end
31
-
32
- it 'works' do
33
- get :index
34
-
35
- expect(controller.instance_variable_get(:@skip_sidebar)).to eq true
36
- end
37
- end
38
- end unless ActiveAdmin::Dependency.rails < 4
@@ -1,269 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::ResourceController do
4
-
5
- let(:controller) { ActiveAdmin::ResourceController.new }
6
-
7
- describe "authenticating the user" do
8
- let(:controller){ Admin::PostsController.new }
9
-
10
- it "should do nothing when no authentication_method set" do
11
- namespace = controller.class.active_admin_config.namespace
12
- expect(namespace).to receive(:authentication_method).once.and_return(nil)
13
-
14
- controller.send(:authenticate_active_admin_user)
15
- end
16
-
17
- it "should call the authentication_method when set" do
18
- namespace = controller.class.active_admin_config.namespace
19
-
20
- expect(namespace).to receive(:authentication_method).twice.
21
- and_return(:authenticate_admin_user!)
22
-
23
- expect(controller).to receive(:authenticate_admin_user!).and_return(true)
24
-
25
- controller.send(:authenticate_active_admin_user)
26
- end
27
-
28
- end
29
-
30
- describe "retrieving the current user" do
31
- let(:controller){ Admin::PostsController.new }
32
-
33
- it "should return nil when no current_user_method set" do
34
- namespace = controller.class.active_admin_config.namespace
35
- expect(namespace).to receive(:current_user_method).once.and_return(nil)
36
-
37
- expect(controller.send(:current_active_admin_user)).to eq nil
38
- end
39
-
40
- it "should call the current_user_method when set" do
41
- user = double
42
- namespace = controller.class.active_admin_config.namespace
43
-
44
- expect(namespace).to receive(:current_user_method).twice.
45
- and_return(:current_admin_user)
46
-
47
- expect(controller).to receive(:current_admin_user).and_return(user)
48
-
49
- expect(controller.send(:current_active_admin_user)).to eq user
50
- end
51
- end
52
-
53
-
54
- describe "callbacks" do
55
- before :all do
56
- application = ::ActiveAdmin::Application.new
57
- namespace = ActiveAdmin::Namespace.new(application, :admin)
58
- namespace.register Post do
59
- after_build :call_after_build
60
- before_save :call_before_save
61
- after_save :call_after_save
62
- before_create :call_before_create
63
- after_create :call_after_create
64
- before_update :call_before_update
65
- after_update :call_after_update
66
- before_destroy :call_before_destroy
67
- after_destroy :call_after_destroy
68
-
69
- controller do
70
- def call_after_build(obj); end
71
- def call_before_save(obj); end
72
- def call_after_save(obj); end
73
- def call_before_create(obj); end
74
- def call_after_create(obj); end
75
- def call_before_update(obj); end
76
- def call_after_update(obj); end
77
- def call_before_destroy(obj); end
78
- def call_after_destroy(obj); end
79
- end
80
- end
81
- end
82
-
83
- describe "performing create" do
84
- let(:controller){ Admin::PostsController.new }
85
- let(:resource){ double("Resource", save: true) }
86
-
87
- before do
88
- expect(resource).to receive(:save)
89
- end
90
-
91
- it "should call the before create callback" do
92
- expect(controller).to receive(:call_before_create).with(resource)
93
- controller.send :create_resource, resource
94
- end
95
- it "should call the before save callback" do
96
- expect(controller).to receive(:call_before_save).with(resource)
97
- controller.send :create_resource, resource
98
- end
99
- it "should call the after save callback" do
100
- expect(controller).to receive(:call_after_save).with(resource)
101
- controller.send :create_resource, resource
102
- end
103
- it "should call the after create callback" do
104
- expect(controller).to receive(:call_after_create).with(resource)
105
- controller.send :create_resource, resource
106
- end
107
- end
108
-
109
- describe "performing update" do
110
- let(:controller){ Admin::PostsController.new }
111
- let(:resource){ double("Resource", :attributes= => true, save: true) }
112
- let(:attributes){ [{}] }
113
-
114
- before do
115
- expect(resource).to receive(:attributes=).with(attributes[0])
116
- expect(resource).to receive(:save)
117
- end
118
-
119
- it "should call the before update callback" do
120
- expect(controller).to receive(:call_before_update).with(resource)
121
- controller.send :update_resource, resource, attributes
122
- end
123
- it "should call the before save callback" do
124
- expect(controller).to receive(:call_before_save).with(resource)
125
- controller.send :update_resource, resource, attributes
126
- end
127
- it "should call the after save callback" do
128
- expect(controller).to receive(:call_after_save).with(resource)
129
- controller.send :update_resource, resource, attributes
130
- end
131
- it "should call the after create callback" do
132
- expect(controller).to receive(:call_after_update).with(resource)
133
- controller.send :update_resource, resource, attributes
134
- end
135
- end
136
-
137
- describe "performing destroy" do
138
- let(:controller){ Admin::PostsController.new }
139
- let(:resource){ double("Resource", destroy: true) }
140
-
141
- before do
142
- expect(resource).to receive(:destroy)
143
- end
144
-
145
- it "should call the before destroy callback" do
146
- expect(controller).to receive(:call_before_destroy).with(resource)
147
- controller.send :destroy_resource, resource
148
- end
149
-
150
- it "should call the after destroy callback" do
151
- expect(controller).to receive(:call_after_destroy).with(resource)
152
- controller.send :destroy_resource, resource
153
- end
154
- end
155
- end
156
- end
157
-
158
- describe Admin::PostsController, type: "controller" do
159
-
160
- describe 'retrieving the resource' do
161
- let(:controller){ Admin::PostsController.new }
162
- let(:post) { Post.new title: "An incledibly unique Post Title" }
163
-
164
- before do
165
- allow(Post).to receive(:find).and_return(post)
166
- controller.class_eval { public :resource }
167
- allow(controller).to receive(:params).and_return({ id: '1' })
168
- end
169
-
170
- subject { controller.resource }
171
-
172
- it "returns a Post" do
173
- expect(subject).to be_kind_of(Post)
174
- end
175
-
176
- context 'with a decorator' do
177
- let(:config) { controller.class.active_admin_config }
178
- before { config.decorator_class_name = '::PostDecorator' }
179
- it 'returns a PostDecorator' do
180
- expect(subject).to be_kind_of(PostDecorator)
181
- end
182
-
183
- it 'returns a PostDecorator that wraps the post' do
184
- expect(subject.title).to eq post.title
185
- end
186
- end
187
- end
188
-
189
- describe 'retrieving the resource collection' do
190
- let(:controller){ Admin::PostsController.new }
191
- let(:config) { controller.class.active_admin_config }
192
- before do
193
- Post.create!(title: "An incledibly unique Post Title") if Post.count == 0
194
- config.decorator_class_name = nil
195
- request = double 'Request', format: 'application/json'
196
- allow(controller).to receive(:params) { {} }
197
- allow(controller).to receive(:request){ request }
198
- end
199
-
200
- subject { controller.send :collection }
201
-
202
- it {
203
- is_expected.to be_a ActiveRecord::Relation
204
- }
205
-
206
- it "returns a collection of posts" do
207
- expect(subject.first).to be_kind_of(Post)
208
- end
209
-
210
- context 'with a decorator' do
211
- before { config.decorator_class_name = 'PostDecorator' }
212
-
213
- it 'returns a collection decorator using PostDecorator' do
214
- expect(subject).to be_a Draper::CollectionDecorator
215
- expect(subject.decorator_class).to eq PostDecorator
216
- end
217
-
218
- it 'returns a collection decorator that wraps the post' do
219
- expect(subject.first.title).to eq Post.first.title
220
- end
221
- end
222
- end
223
-
224
-
225
- describe "performing batch_action" do
226
- let(:controller){ Admin::PostsController.new }
227
- let(:batch_action) { ActiveAdmin::BatchAction.new :flag, "Flag", &batch_action_block }
228
- let(:batch_action_block) { proc { } }
229
- before do
230
- allow(controller.class.active_admin_config).to receive(:batch_actions).and_return([batch_action])
231
- end
232
-
233
- describe "when params batch_action matches existing BatchAction" do
234
- before do
235
- allow(controller).to receive(:params) { { batch_action: "flag", collection_selection: ["1"] } }
236
- end
237
-
238
- it "should call the block with args" do
239
- expect(controller).to receive(:instance_exec).with(["1"], {})
240
- controller.batch_action
241
- end
242
-
243
- it "should call the block in controller scope" do
244
- expect(controller).to receive(:render_in_context).with(controller, nil).and_return({})
245
- controller.batch_action
246
- end
247
- end
248
-
249
- describe "when params batch_action doesn't match a BatchAction" do
250
- it "should raise an error" do
251
- allow(controller).to receive(:params) { { batch_action: "derp", collection_selection: ["1"] } }
252
- expect {
253
- controller.batch_action
254
- }.to raise_error("Couldn't find batch action \"derp\"")
255
- end
256
- end
257
-
258
- describe "when params batch_action is blank" do
259
- it "should raise an error" do
260
- allow(controller).to receive(:params) { { collection_selection: ["1"] } }
261
- expect {
262
- controller.batch_action
263
- }.to raise_error("Couldn't find batch action \"\"")
264
- end
265
- end
266
-
267
- end
268
-
269
- end
@@ -1,56 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe "Registering an object to administer" do
4
- application = ActiveAdmin::Application.new
5
-
6
- context "with no configuration" do
7
- namespace = ActiveAdmin::Namespace.new(application, :admin)
8
- it "should call register on the namespace" do
9
- application.namespaces[namespace.name] = namespace
10
- expect(namespace).to receive(:register)
11
-
12
- application.register Category
13
- end
14
-
15
- it "should dispatch a Resource::RegisterEvent" do
16
- expect(ActiveSupport::Notifications).to receive(:publish).with(ActiveAdmin::Resource::RegisterEvent, an_instance_of(ActiveAdmin::Resource))
17
- application.register Category
18
- end
19
- end
20
-
21
- context "with a different namespace" do
22
- it "should call register on the namespace" do
23
- namespace = ActiveAdmin::Namespace.new(application, :hello_world)
24
- application.namespaces[namespace.name] = namespace
25
- expect(namespace).to receive(:register)
26
-
27
- application.register Category, namespace: :hello_world
28
- end
29
-
30
- it "should generate a Namespace::RegisterEvent and a Resource::RegisterEvent" do
31
- expect(ActiveSupport::Notifications).to receive(:publish).with(ActiveAdmin::Namespace::RegisterEvent, an_instance_of(ActiveAdmin::Namespace))
32
- expect(ActiveSupport::Notifications).to receive(:publish).with(ActiveAdmin::Resource::RegisterEvent, an_instance_of(ActiveAdmin::Resource))
33
- application.register Category, namespace: :not_yet_created
34
- end
35
- end
36
-
37
- context "with no namespace" do
38
- it "should call register on the root namespace" do
39
- namespace = ActiveAdmin::Namespace.new(application, :root)
40
- application.namespaces[namespace.name] = namespace
41
- expect(namespace).to receive(:register)
42
-
43
- application.register Category, namespace: false
44
- end
45
- end
46
-
47
- context "when being registered multiple times" do
48
- it "should run the dsl in the same config object" do
49
- config_1 = ActiveAdmin.register(Category) { filter :name }
50
- config_2 = ActiveAdmin.register(Category) { filter :id }
51
- expect(config_1).to eq config_2
52
- expect(config_1.filters.size).to eq 2
53
- end
54
- end
55
-
56
- end