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,331 +0,0 @@
1
- require 'rails_helper'
2
- require File.expand_path('config_shared_examples', File.dirname(__FILE__))
3
-
4
- module ActiveAdmin
5
- describe Resource do
6
-
7
- it_should_behave_like "ActiveAdmin::Resource"
8
- before { load_defaults! }
9
-
10
- let(:application){ ActiveAdmin::Application.new }
11
- let(:namespace){ Namespace.new(application, :admin) }
12
-
13
- def config(options = {})
14
- @config ||= Resource.new(namespace, Category, options)
15
- end
16
-
17
- it { respond_to :resource_class }
18
-
19
- describe "#resource_table_name" do
20
- it "should return the resource's table name" do
21
- expect(config.resource_table_name).to eq '"categories"'
22
- end
23
- context "when the :as option is given" do
24
- it "should return the resource's table name" do
25
- expect(config(as: "My Category").resource_table_name).to eq '"categories"'
26
- end
27
- end
28
- end
29
-
30
- describe "#resource_column_names" do
31
- it "should return the resource's column names" do
32
- expect(config.resource_column_names).to eq Category.column_names
33
- end
34
- end
35
-
36
- describe '#decorator_class' do
37
- it 'returns nil by default' do
38
- expect(config.decorator_class).to eq nil
39
- end
40
- context 'when a decorator is defined' do
41
- let(:resource) { namespace.register(Post) { decorate_with PostDecorator } }
42
- specify '#decorator_class_name should return PostDecorator' do
43
- expect(resource.decorator_class_name).to eq '::PostDecorator'
44
- end
45
-
46
- it 'returns the decorator class' do
47
- expect(resource.decorator_class).to eq PostDecorator
48
- end
49
- end
50
- end
51
-
52
-
53
- describe "controller name" do
54
- it "should return a namespaced controller name" do
55
- expect(config.controller_name).to eq "Admin::CategoriesController"
56
- end
57
- context "when non namespaced controller" do
58
- let(:namespace){ ActiveAdmin::Namespace.new(application, :root) }
59
- it "should return a non namespaced controller name" do
60
- expect(config.controller_name).to eq "CategoriesController"
61
- end
62
- end
63
- end
64
-
65
- describe "#include_in_menu?" do
66
- let(:namespace){ ActiveAdmin::Namespace.new(application, :admin) }
67
- subject{ resource }
68
-
69
- context "when regular resource" do
70
- let(:resource){ namespace.register(Post) }
71
- it { is_expected.to be_include_in_menu }
72
- end
73
-
74
- context "when menu set to false" do
75
- let(:resource){ namespace.register(Post){ menu false } }
76
- it { is_expected.not_to be_include_in_menu }
77
- end
78
- end
79
-
80
- describe "#belongs_to" do
81
-
82
- it "should build a belongs to configuration" do
83
- expect(config.belongs_to_config).to eq nil
84
- config.belongs_to :posts
85
- expect(config.belongs_to_config).to_not eq nil
86
- end
87
-
88
- it "should set the target menu to the belongs to target" do
89
- expect(config.navigation_menu_name).to eq ActiveAdmin::DEFAULT_MENU
90
- config.belongs_to :posts
91
- expect(config.navigation_menu_name).to eq :posts
92
- end
93
-
94
- end
95
-
96
- describe "scoping" do
97
- context "when using a block" do
98
- before do
99
- @resource = application.register Category do
100
- scope_to do
101
- "scoped"
102
- end
103
- end
104
- end
105
- it "should call the proc for the begin of association chain" do
106
- begin_of_association_chain = @resource.controller.new.send(:begin_of_association_chain)
107
- expect(begin_of_association_chain).to eq "scoped"
108
- end
109
- end
110
-
111
- context "when using a symbol" do
112
- before do
113
- @resource = application.register Category do
114
- scope_to :current_user
115
- end
116
- end
117
- it "should call the method for the begin of association chain" do
118
- controller = @resource.controller.new
119
- expect(controller).to receive(:current_user).and_return(true)
120
- begin_of_association_chain = controller.send(:begin_of_association_chain)
121
- expect(begin_of_association_chain).to eq true
122
- end
123
- end
124
-
125
- describe "getting the method for the association chain" do
126
- context "when a simple registration" do
127
- before do
128
- @resource = application.register Category do
129
- scope_to :current_user
130
- end
131
- end
132
- it "should return the pluralized collection name" do
133
- expect(@resource.controller.new.send(:method_for_association_chain)).to eq :categories
134
- end
135
- end
136
- context "when passing in the method as an option" do
137
- before do
138
- @resource = application.register Category do
139
- scope_to :current_user, association_method: :blog_categories
140
- end
141
- end
142
- it "should return the method from the option" do
143
- expect(@resource.controller.new.send(:method_for_association_chain)).to eq :blog_categories
144
- end
145
- end
146
- end
147
- end
148
-
149
-
150
- describe "sort order" do
151
-
152
- context "when resource class responds to primary_key" do
153
- it "should sort by primary key desc by default" do
154
- expect(MockResource).to receive(:primary_key).and_return("pk")
155
- config = Resource.new(namespace, MockResource)
156
- expect(config.sort_order).to eq "pk_desc"
157
- end
158
- end
159
-
160
- context "when resource class does not respond to primary_key" do
161
- it "should default to id" do
162
- config = Resource.new(namespace, MockResource)
163
- expect(config.sort_order).to eq "id_desc"
164
- end
165
- end
166
-
167
- it "should be set-able" do
168
- config.sort_order = "task_id_desc"
169
- expect(config.sort_order).to eq "task_id_desc"
170
- end
171
-
172
- end
173
-
174
- describe "adding a scope" do
175
-
176
- it "should add a scope" do
177
- config.scope :published
178
- expect(config.scopes.first).to be_a(ActiveAdmin::Scope)
179
- expect(config.scopes.first.name).to eq "Published"
180
- end
181
-
182
- it "should retrive a scope by its id" do
183
- config.scope :published
184
- expect(config.get_scope_by_id(:published).name).to eq "Published"
185
- end
186
-
187
- it "should retrieve the default scope by proc" do
188
- config.scope :published, default: proc{ true }
189
- config.scope :all
190
- expect(config.default_scope.name).to eq "Published"
191
- end
192
-
193
- end
194
-
195
- describe "#csv_builder" do
196
- context "when no csv builder set" do
197
- it "should return a default column builder with id and content columns" do
198
- expect(config.csv_builder.exec_columns.size).to eq Category.content_columns.size + 1
199
- end
200
- end
201
-
202
- context "when csv builder set" do
203
- it "shuld return the csv_builder we set" do
204
- csv_builder = CSVBuilder.new
205
- config.csv_builder = csv_builder
206
- expect(config.csv_builder).to eq csv_builder
207
- end
208
- end
209
- end
210
-
211
- describe "#breadcrumb" do
212
- subject { config.breadcrumb }
213
-
214
- context "when no breadcrumb is set" do
215
- it { is_expected.to eq(namespace.breadcrumb) }
216
- end
217
-
218
- context "when breadcrumb is set" do
219
- context "when set to true" do
220
- before { config.breadcrumb = true }
221
- it { is_expected.to eq true }
222
- end
223
-
224
- context "when set to false" do
225
- before { config.breadcrumb = false }
226
- it { is_expected.to eq false }
227
- end
228
- end
229
- end
230
-
231
- describe '#find_resource' do
232
- let(:resource) { namespace.register(Post) }
233
- let(:post) { double }
234
- before do
235
- if Rails::VERSION::MAJOR >= 4
236
- allow(Post).to receive(:find_by).with("id" => "12345") { post }
237
- else
238
- allow(Post).to receive(:find_by_id).with("12345") { post }
239
- end
240
- end
241
-
242
- it 'can find the resource' do
243
- expect(resource.find_resource('12345')).to eq post
244
- end
245
-
246
- context 'with a decorator' do
247
- let(:resource) { namespace.register(Post) { decorate_with PostDecorator } }
248
- it 'decorates the resource' do
249
- expect(resource.find_resource('12345')).to eq PostDecorator.new(post)
250
- end
251
- end
252
-
253
- context 'when using a nonstandard primary key' do
254
- let(:different_post) { double }
255
- before do
256
- allow(Post).to receive(:primary_key).and_return 'something_else'
257
- if Rails::VERSION::MAJOR >= 4
258
- allow(Post).to receive(:find_by).
259
- with("something_else" => "55555") { different_post }
260
- else
261
- allow(Post).to receive(:find_by_something_else).
262
- with("55555") { different_post }
263
- end
264
- end
265
-
266
- it 'can find the post by the custom primary key' do
267
- expect(resource.find_resource('55555')).to eq different_post
268
- end
269
- end
270
-
271
- context 'when using controller finder' do
272
- let(:resource) do
273
- namespace.register(Post) do
274
- controller do
275
- defaults finder: :find_by_title!
276
- end
277
- end
278
- end
279
-
280
- it 'can find the post by controller finder' do
281
- allow(Post).to receive(:find_by_title!).with('title-name').and_return(post)
282
-
283
- expect(resource.find_resource('title-name')).to eq post
284
- end
285
- end
286
- end
287
-
288
- describe "delegation" do
289
- let(:controller) {
290
- Class.new do
291
- def method_missing(name, *args, &block)
292
- "called #{name}"
293
- end
294
- end.new
295
- }
296
- let(:resource) { ActiveAdmin::ResourceDSL.new(double, double) }
297
-
298
- before do
299
- expect(resource).to receive(:controller).and_return(controller)
300
- end
301
-
302
- context "filters" do
303
- [
304
- :before_filter, :skip_before_filter,
305
- :after_filter, :skip_after_filter,
306
- :around_filter, :skip_filter
307
- ].each do |method|
308
- it "delegates #{method}" do
309
- expected = method.to_s.dup
310
- expected.sub! 'filter', 'action' if ActiveAdmin::Dependency.rails >= 4
311
- expect(resource.send(method)).to eq "called #{expected}"
312
- end
313
- end
314
- end
315
-
316
- if ActiveAdmin::Dependency.rails >= 4
317
- context "actions" do
318
- [
319
- :before_action, :skip_before_action,
320
- :after_action, :skip_after_action,
321
- :around_action, :skip_action
322
- ].each do |method|
323
- it "delegates #{method}" do
324
- expect(resource.send(method)).to eq "called #{method}"
325
- end
326
- end
327
- end
328
- end
329
- end
330
- end
331
- end
@@ -1,185 +0,0 @@
1
- # encoding: utf-8
2
-
3
- require 'rails_helper'
4
-
5
- describe ActiveAdmin, "Routing", type: :routing do
6
-
7
- before do
8
- load_defaults!
9
- reload_routes!
10
- end
11
-
12
- after :all do
13
- load_defaults!
14
- reload_routes!
15
- end
16
-
17
- it "should only have the namespaces necessary for route testing" do
18
- expect(ActiveAdmin.application.namespaces.names).to eq [:admin, :root]
19
- end
20
-
21
- it "should route to the admin dashboard" do
22
- expect(get('/admin')).to route_to 'admin/dashboard#index'
23
- end
24
-
25
- describe "root path helper" do
26
- context "when in admin namespace" do
27
- it "should be admin_root_path" do
28
- expect(admin_root_path).to eq "/admin"
29
- end
30
- end
31
- end
32
-
33
- describe "standard resources" do
34
- context "when in admin namespace" do
35
- it "should route the index path" do
36
- expect(admin_posts_path).to eq "/admin/posts"
37
- end
38
-
39
- it "should route the show path" do
40
- expect(admin_post_path(1)).to eq "/admin/posts/1"
41
- end
42
-
43
- it "should route the new path" do
44
- expect(new_admin_post_path).to eq "/admin/posts/new"
45
- end
46
-
47
- it "should route the edit path" do
48
- expect(edit_admin_post_path(1)).to eq "/admin/posts/1/edit"
49
- end
50
- end
51
-
52
- context "when in root namespace" do
53
- before(:each) do
54
- load_resources { ActiveAdmin.register(Post, namespace: false) }
55
- end
56
-
57
- it "should route the index path" do
58
- expect(posts_path).to eq "/posts"
59
- end
60
-
61
- it "should route the show path" do
62
- expect(post_path(1)).to eq "/posts/1"
63
- end
64
-
65
- it "should route the new path" do
66
- expect(new_post_path).to eq "/posts/new"
67
- end
68
-
69
- it "should route the edit path" do
70
- expect(edit_post_path(1)).to eq "/posts/1/edit"
71
- end
72
- end
73
-
74
- context "with member action" do
75
- context "without an http verb" do
76
- before do
77
- load_resources do
78
- ActiveAdmin.register(Post){ member_action "do_something" }
79
- end
80
- end
81
-
82
- it "should default to GET" do
83
- expect({get: "/admin/posts/1/do_something"}).to be_routable
84
- expect({post: "/admin/posts/1/do_something"}).to_not be_routable
85
- end
86
- end
87
-
88
- context "with one http verb" do
89
- before do
90
- load_resources do
91
- ActiveAdmin.register(Post){ member_action "do_something", method: :post }
92
- end
93
- end
94
-
95
- it "should properly route" do
96
- expect({post: "/admin/posts/1/do_something"}).to be_routable
97
- end
98
- end
99
-
100
- context "with two http verbs" do
101
- before do
102
- load_resources do
103
- ActiveAdmin.register(Post){ member_action "do_something", method: [:put, :delete] }
104
- end
105
- end
106
-
107
- it "should properly route the first verb" do
108
- expect({put: "/admin/posts/1/do_something"}).to be_routable
109
- end
110
-
111
- it "should properly route the second verb" do
112
- expect({delete: "/admin/posts/1/do_something"}).to be_routable
113
- end
114
- end
115
- end
116
- end
117
-
118
- describe "belongs to resource" do
119
- it "should route the nested index path" do
120
- expect(admin_user_posts_path(1)).to eq "/admin/users/1/posts"
121
- end
122
-
123
- it "should route the nested show path" do
124
- expect(admin_user_post_path(1,2)).to eq "/admin/users/1/posts/2"
125
- end
126
-
127
- it "should route the nested new path" do
128
- expect(new_admin_user_post_path(1)).to eq "/admin/users/1/posts/new"
129
- end
130
-
131
- it "should route the nested edit path" do
132
- expect(edit_admin_user_post_path(1,2)).to eq "/admin/users/1/posts/2/edit"
133
- end
134
-
135
- context "with collection action" do
136
- before do
137
- load_resources do
138
- ActiveAdmin.register(Post) do
139
- belongs_to :user, optional: true
140
- end
141
- ActiveAdmin.register(User) do
142
- collection_action "do_something"
143
- end
144
- end
145
- end
146
-
147
- it "should properly route the collection action" do
148
- expect({ get: "/admin/users/do_something" }).to \
149
- route_to({ controller: 'admin/users', action: 'do_something'})
150
- end
151
- end
152
- end
153
-
154
- describe "page" do
155
- context "when default namespace" do
156
- before(:each) do
157
- load_resources { ActiveAdmin.register_page("Chocolate I lØve You!") }
158
- end
159
-
160
- it "should route to the page under /admin" do
161
- expect(admin_chocolate_i_love_you_path).to eq "/admin/chocolate_i_love_you"
162
- end
163
- end
164
-
165
- context "when in the root namespace" do
166
- before(:each) do
167
- load_resources { ActiveAdmin.register_page("Chocolate I lØve You!", namespace: false) }
168
- end
169
-
170
- it "should route to page under /" do
171
- expect(chocolate_i_love_you_path).to eq "/chocolate_i_love_you"
172
- end
173
- end
174
-
175
- context "when singular page name" do
176
- before(:each) do
177
- load_resources { ActiveAdmin.register_page("Log") }
178
- end
179
-
180
- it "should not inject _index_ into the route name" do
181
- expect(admin_log_path).to eq "/admin/log"
182
- end
183
- end
184
- end
185
- end
@@ -1,185 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Scope do
4
-
5
- describe "creating a scope" do
6
- subject{ scope }
7
-
8
- context "when just a scope method" do
9
- let(:scope) { ActiveAdmin::Scope.new :published }
10
-
11
- describe '#name' do
12
- subject { super().name }
13
- it { is_expected.to eq("Published")}
14
- end
15
-
16
- describe '#id' do
17
- subject { super().id }
18
- it { is_expected.to eq("published")}
19
- end
20
-
21
- describe '#scope_method' do
22
- subject { super().scope_method }
23
- it { is_expected.to eq(:published) }
24
- end
25
- end
26
-
27
- context "when scope method is :all" do
28
- let(:scope) { ActiveAdmin::Scope.new :all }
29
-
30
- describe '#name' do
31
- subject { super().name }
32
- it { is_expected.to eq("All")}
33
- end
34
-
35
- describe '#id' do
36
- subject { super().id }
37
- it { is_expected.to eq("all")}
38
- end
39
- # :all does not return a chain but an array of active record
40
- # instances. We set the scope_method to nil then.
41
-
42
- describe '#scope_method' do
43
- subject { super().scope_method }
44
- it { is_expected.to eq(nil) }
45
- end
46
-
47
- describe '#scope_block' do
48
- subject { super().scope_block }
49
- it { is_expected.to eq(nil) }
50
- end
51
- end
52
-
53
- context 'when a name and scope method is :all' do
54
- let(:scope) { ActiveAdmin::Scope.new 'Tous', :all }
55
-
56
- describe '#name' do
57
- subject { super().name }
58
- it { is_expected.to eq 'Tous' }
59
- end
60
-
61
- describe '#scope_method' do
62
- subject { super().scope_method }
63
- it { is_expected.to eq nil }
64
- end
65
-
66
- describe '#scope_block' do
67
- subject { super().scope_block }
68
- it { is_expected.to eq nil }
69
- end
70
- end
71
-
72
- context "when a name and scope method" do
73
- let(:scope) { ActiveAdmin::Scope.new "With API Access", :with_api_access }
74
-
75
- describe '#name' do
76
- subject { super().name }
77
- it { is_expected.to eq("With API Access")}
78
- end
79
-
80
- describe '#id' do
81
- subject { super().id }
82
- it { is_expected.to eq("with_api_access")}
83
- end
84
-
85
- describe '#scope_method' do
86
- subject { super().scope_method }
87
- it { is_expected.to eq(:with_api_access) }
88
- end
89
- end
90
-
91
- context "when a name and scope block" do
92
- let(:scope) { ActiveAdmin::Scope.new("My Scope"){|s| s } }
93
-
94
- describe '#name' do
95
- subject { super().name }
96
- it { is_expected.to eq("My Scope")}
97
- end
98
-
99
- describe '#id' do
100
- subject { super().id }
101
- it { is_expected.to eq("my_scope")}
102
- end
103
-
104
- describe '#scope_method' do
105
- subject { super().scope_method }
106
- it { is_expected.to eq(nil) }
107
- end
108
-
109
- describe '#scope_block' do
110
- subject { super().scope_block }
111
- it { is_expected.to be_a(Proc)}
112
- end
113
- end
114
-
115
- context "when a name has a space and lowercase" do
116
- let(:scope) { ActiveAdmin::Scope.new("my scope") }
117
-
118
- describe '#name' do
119
- subject { super().name }
120
- it { is_expected.to eq("my scope")}
121
- end
122
-
123
- describe '#id' do
124
- subject { super().id }
125
- it { is_expected.to eq("my_scope")}
126
- end
127
- end
128
-
129
- context "with a proc as the label" do
130
- it "should raise an exception if a second argument isn't provided" do
131
- expect{
132
- ActiveAdmin::Scope.new proc{ Date.today.strftime '%A' }
133
- }.to raise_error 'A string/symbol is required as the second argument if your label is a proc.'
134
- end
135
-
136
- it "should properly render the proc" do
137
- scope = ActiveAdmin::Scope.new proc{ Date.today.strftime '%A' }, :foobar
138
- expect(scope.name).to eq Date.today.strftime '%A'
139
- end
140
- end
141
-
142
- end # describe "creating a scope"
143
-
144
- describe "#display_if_block" do
145
- it "should return true by default" do
146
- scope = ActiveAdmin::Scope.new(:default)
147
- expect(scope.display_if_block.call).to eq true
148
- end
149
-
150
- it "should return the :if block if set" do
151
- scope = ActiveAdmin::Scope.new(:with_block, nil, if: proc{ false })
152
- expect(scope.display_if_block.call).to eq false
153
- end
154
- end
155
-
156
- describe "#default" do
157
- it "should accept a boolean" do
158
- scope = ActiveAdmin::Scope.new(:method, nil, default: true)
159
- expect(scope.default_block).to eq true
160
- end
161
-
162
- it "should default to a false #default_block" do
163
- scope = ActiveAdmin::Scope.new(:method, nil)
164
- expect(scope.default_block.call).to eq false
165
- end
166
-
167
- it "should store the :default proc" do
168
- scope = ActiveAdmin::Scope.new(:with_block, nil, default: proc{ true })
169
- expect(scope.default_block.call).to eq true
170
- end
171
- end
172
-
173
- describe "show_count" do
174
- it "should allow setting of show_count to prevent showing counts" do
175
- scope = ActiveAdmin::Scope.new(:default, nil, show_count: false)
176
- expect(scope.show_count).to eq false
177
- end
178
-
179
- it "should set show_count to true if not passed in" do
180
- scope = ActiveAdmin::Scope.new(:default)
181
- expect(scope.show_count).to eq true
182
- end
183
- end
184
-
185
- end