activeadmin 1.0.0.pre1 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +587 -939
  3. data/CODE_OF_CONDUCT.md +74 -0
  4. data/CONTRIBUTING.md +110 -59
  5. data/LICENSE +0 -5
  6. data/README.md +80 -61
  7. data/app/assets/javascripts/active_admin/base.js +517 -0
  8. data/app/assets/stylesheets/active_admin/_base.scss +31 -34
  9. data/app/assets/stylesheets/active_admin/_forms.scss +33 -35
  10. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  11. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  12. data/app/assets/stylesheets/active_admin/_normalize.scss +447 -0
  13. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  14. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -5
  15. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  16. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  17. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  18. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  19. data/app/assets/stylesheets/active_admin/components/_tables.scss +5 -3
  20. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  21. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -11
  22. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  23. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +1 -1
  25. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +9 -1
  26. data/app/assets/stylesheets/active_admin/print.scss +3 -4
  27. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  28. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -5
  29. data/app/javascript/active_admin/base.js +28 -0
  30. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  31. data/app/javascript/active_admin/ext/jquery.js +9 -0
  32. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  33. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  34. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  35. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  36. data/app/javascript/active_admin/initializers/filters.js +10 -0
  37. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  38. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  39. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  40. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  41. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  42. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  43. data/app/javascript/active_admin/lib/filters.js +39 -0
  44. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  45. data/app/javascript/active_admin/lib/per-page.js +38 -0
  46. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  47. data/app/javascript/active_admin/lib/utils.js +40 -0
  48. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  49. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  50. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  51. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  52. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  53. data/app/views/active_admin/devise/registrations/new.html.erb +3 -4
  54. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  55. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  56. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  57. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  58. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  59. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  60. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  61. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  63. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  64. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  65. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  66. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  67. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  68. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  69. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  70. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  71. data/app/views/layouts/active_admin_logged_out.html.erb +21 -7
  72. data/config/locales/ar.yml +62 -47
  73. data/config/locales/az.yml +138 -0
  74. data/config/locales/bg.yml +1 -3
  75. data/config/locales/bs.yml +1 -2
  76. data/config/locales/ca.yml +2 -4
  77. data/config/locales/cs.yml +1 -2
  78. data/config/locales/da.yml +45 -14
  79. data/config/locales/de-CH.yml +4 -3
  80. data/config/locales/de.yml +46 -3
  81. data/config/locales/el.yml +3 -4
  82. data/config/locales/en-CA.yml +139 -0
  83. data/config/locales/en-GB.yml +46 -5
  84. data/config/locales/en.yml +44 -9
  85. data/config/locales/eo.yml +145 -0
  86. data/config/locales/es-MX.yml +9 -6
  87. data/config/locales/es.yml +63 -14
  88. data/config/locales/fa.yml +1 -2
  89. data/config/locales/fi.yml +2 -3
  90. data/config/locales/fr.yml +36 -8
  91. data/config/locales/he.yml +53 -7
  92. data/config/locales/hr.yml +1 -2
  93. data/config/locales/hu.yml +6 -3
  94. data/config/locales/id.yml +135 -0
  95. data/config/locales/it.yml +49 -4
  96. data/config/locales/ja.yml +31 -7
  97. data/config/locales/ko.yml +66 -36
  98. data/config/locales/lt.yml +27 -6
  99. data/config/locales/lv.yml +3 -4
  100. data/config/locales/mk.yml +134 -0
  101. data/config/locales/nb.yml +22 -8
  102. data/config/locales/nl.yml +26 -3
  103. data/config/locales/pl.yml +75 -5
  104. data/config/locales/pt-BR.yml +24 -2
  105. data/config/locales/pt-PT.yml +1 -2
  106. data/config/locales/ro.yml +1 -2
  107. data/config/locales/ru.yml +21 -4
  108. data/config/locales/sk.yml +168 -0
  109. data/config/locales/sv-SE.yml +50 -8
  110. data/config/locales/tr.yml +92 -45
  111. data/config/locales/uk.yml +30 -16
  112. data/config/locales/vi.yml +53 -12
  113. data/config/locales/zh-CN.yml +44 -7
  114. data/config/locales/zh-TW.yml +42 -3
  115. data/docs/.gitignore +1 -0
  116. data/docs/0-installation.md +68 -18
  117. data/docs/1-general-configuration.md +88 -4
  118. data/docs/10-custom-pages.md +56 -2
  119. data/docs/11-decorators.md +20 -5
  120. data/docs/12-arbre-components.md +75 -11
  121. data/docs/13-authorization-adapter.md +73 -36
  122. data/docs/14-gotchas.md +64 -18
  123. data/docs/2-resource-customization.md +91 -23
  124. data/docs/3-index-pages/custom-index.md +5 -1
  125. data/docs/3-index-pages/index-as-block.md +3 -5
  126. data/docs/3-index-pages/index-as-blog.md +4 -6
  127. data/docs/3-index-pages/index-as-grid.md +3 -5
  128. data/docs/3-index-pages/index-as-table.md +46 -9
  129. data/docs/3-index-pages.md +73 -10
  130. data/docs/4-csv-format.md +35 -0
  131. data/docs/5-forms.md +96 -18
  132. data/docs/6-show-pages.md +13 -25
  133. data/docs/7-sidebars.md +13 -1
  134. data/docs/8-custom-actions.md +18 -1
  135. data/docs/9-batch-actions.md +9 -5
  136. data/docs/CNAME +1 -0
  137. data/docs/Gemfile +3 -0
  138. data/docs/Gemfile.lock +259 -0
  139. data/docs/_config.yml +4 -0
  140. data/docs/_includes/footer.html +8 -0
  141. data/docs/_includes/google-analytics.html +16 -0
  142. data/docs/_includes/head.html +7 -0
  143. data/docs/_includes/toc.html +98 -0
  144. data/docs/_includes/top-menu.html +17 -0
  145. data/docs/_layouts/default.html +21 -0
  146. data/docs/documentation.md +60 -0
  147. data/docs/images/activeadmin.png +0 -0
  148. data/docs/images/code-header.png +0 -0
  149. data/docs/images/divider.png +0 -0
  150. data/docs/images/features.png +0 -0
  151. data/docs/images/tidelift.svg +14 -0
  152. data/docs/index.html +226 -0
  153. data/docs/stylesheets/main.css +1205 -0
  154. data/lib/active_admin/abstract_view_factory.rb +13 -51
  155. data/lib/active_admin/application.rb +105 -138
  156. data/lib/active_admin/application_settings.rb +42 -0
  157. data/lib/active_admin/authorization_adapter.rb +4 -7
  158. data/lib/active_admin/base_controller/authorization.rb +16 -21
  159. data/lib/active_admin/base_controller/menu.rb +10 -10
  160. data/lib/active_admin/base_controller.rb +15 -11
  161. data/lib/active_admin/batch_actions/controller.rb +6 -7
  162. data/lib/active_admin/batch_actions/resource_extension.rb +15 -15
  163. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -4
  164. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -7
  165. data/lib/active_admin/batch_actions/views/selection_cells.rb +7 -6
  166. data/lib/active_admin/batch_actions.rb +0 -1
  167. data/lib/active_admin/callbacks.rb +2 -2
  168. data/lib/active_admin/cancan_adapter.rb +1 -1
  169. data/lib/active_admin/collection_decorator.rb +31 -0
  170. data/lib/active_admin/controller_action.rb +2 -1
  171. data/lib/active_admin/csv_builder.rb +30 -20
  172. data/lib/active_admin/dependency.rb +36 -29
  173. data/lib/active_admin/deprecation.rb +0 -25
  174. data/lib/active_admin/devise.rb +9 -9
  175. data/lib/active_admin/dsl.rb +5 -18
  176. data/lib/active_admin/dynamic_setting.rb +38 -0
  177. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  178. data/lib/active_admin/engine.rb +14 -7
  179. data/lib/active_admin/error.rb +6 -6
  180. data/lib/active_admin/filters/active.rb +29 -0
  181. data/lib/active_admin/filters/active_filter.rb +123 -0
  182. data/lib/active_admin/filters/active_sidebar.rb +54 -0
  183. data/lib/active_admin/filters/forms.rb +17 -10
  184. data/lib/active_admin/filters/formtastic_addons.rb +2 -7
  185. data/lib/active_admin/filters/resource_extension.rb +50 -14
  186. data/lib/active_admin/filters.rb +7 -5
  187. data/lib/active_admin/form_builder.rb +112 -67
  188. data/lib/active_admin/generators/boilerplate.rb +53 -0
  189. data/lib/active_admin/helpers/collection.rb +2 -0
  190. data/lib/active_admin/helpers/optional_display.rb +2 -2
  191. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -1
  192. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  193. data/lib/active_admin/inputs/datepicker_input.rb +13 -6
  194. data/lib/active_admin/inputs/filters/base/search_method_select.rb +9 -9
  195. data/lib/active_admin/inputs/filters/base.rb +3 -1
  196. data/lib/active_admin/inputs/filters/boolean_input.rb +1 -1
  197. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -1
  198. data/lib/active_admin/inputs/filters/date_picker_input.rb +13 -0
  199. data/lib/active_admin/inputs/filters/date_range_input.rb +25 -9
  200. data/lib/active_admin/inputs/filters/select_input.rb +8 -4
  201. data/lib/active_admin/inputs/filters/text_input.rb +25 -0
  202. data/lib/active_admin/inputs.rb +2 -0
  203. data/lib/active_admin/localizers/resource_localizer.rb +35 -0
  204. data/lib/active_admin/localizers.rb +11 -0
  205. data/lib/active_admin/menu.rb +13 -15
  206. data/lib/active_admin/menu_collection.rb +0 -2
  207. data/lib/active_admin/menu_item.rb +10 -38
  208. data/lib/active_admin/namespace.rb +51 -32
  209. data/lib/active_admin/namespace_settings.rb +126 -0
  210. data/lib/active_admin/order_clause.rb +30 -8
  211. data/lib/active_admin/orm/active_record/comments/comment.rb +6 -20
  212. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +44 -21
  213. data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
  214. data/lib/active_admin/orm/active_record/comments.rb +49 -29
  215. data/lib/active_admin/orm/active_record.rb +1 -1
  216. data/lib/active_admin/page.rb +24 -5
  217. data/lib/active_admin/page_controller.rb +2 -2
  218. data/lib/active_admin/page_dsl.rb +5 -1
  219. data/lib/active_admin/page_presenter.rb +2 -1
  220. data/lib/active_admin/pundit_adapter.rb +22 -9
  221. data/lib/active_admin/resource/action_items.rb +34 -12
  222. data/lib/active_admin/resource/attributes.rb +47 -0
  223. data/lib/active_admin/resource/belongs_to.rb +17 -4
  224. data/lib/active_admin/resource/controllers.rb +1 -1
  225. data/lib/active_admin/resource/menu.rb +9 -6
  226. data/lib/active_admin/resource/model.rb +15 -0
  227. data/lib/active_admin/resource/naming.rb +5 -5
  228. data/lib/active_admin/resource/ordering.rb +11 -0
  229. data/lib/active_admin/resource/page_presenters.rb +1 -1
  230. data/lib/active_admin/resource/pagination.rb +4 -0
  231. data/lib/active_admin/resource/routes.rb +56 -26
  232. data/lib/active_admin/resource/scope_to.rb +7 -7
  233. data/lib/active_admin/resource/scopes.rb +5 -3
  234. data/lib/active_admin/resource/sidebars.rb +2 -2
  235. data/lib/active_admin/resource.rb +80 -22
  236. data/lib/active_admin/resource_collection.rb +5 -3
  237. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  238. data/lib/active_admin/resource_controller/data_access.rb +56 -43
  239. data/lib/active_admin/resource_controller/decorators.rb +9 -31
  240. data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -0
  241. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  242. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  243. data/lib/active_admin/resource_controller/streaming.rb +12 -5
  244. data/lib/active_admin/resource_controller.rb +26 -10
  245. data/lib/active_admin/resource_dsl.rb +67 -21
  246. data/lib/active_admin/router.rb +90 -82
  247. data/lib/active_admin/scope.rb +21 -14
  248. data/lib/active_admin/settings_node.rb +19 -0
  249. data/lib/active_admin/sidebar_section.rb +6 -12
  250. data/lib/active_admin/version.rb +1 -1
  251. data/lib/active_admin/view_factory.rb +17 -18
  252. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
  253. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +5 -5
  254. data/lib/active_admin/view_helpers/display_helper.rb +51 -9
  255. data/lib/active_admin/view_helpers/download_format_links_helper.rb +14 -1
  256. data/lib/active_admin/view_helpers/fields_for.rb +4 -4
  257. data/lib/active_admin/view_helpers/form_helper.rb +2 -2
  258. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +11 -4
  259. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  260. data/lib/active_admin/view_helpers.rb +2 -2
  261. data/lib/active_admin/views/action_items.rb +1 -1
  262. data/lib/active_admin/views/components/active_admin_form.rb +45 -13
  263. data/lib/active_admin/views/components/attributes_table.rb +11 -29
  264. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  265. data/lib/active_admin/views/components/columns.rb +12 -7
  266. data/lib/active_admin/views/components/dropdown_menu.rb +11 -13
  267. data/lib/active_admin/views/components/index_list.rb +6 -5
  268. data/lib/active_admin/views/components/menu.rb +32 -0
  269. data/lib/active_admin/views/components/menu_item.rb +58 -0
  270. data/lib/active_admin/views/components/paginated_collection.rb +52 -33
  271. data/lib/active_admin/views/components/panel.rb +2 -4
  272. data/lib/active_admin/views/components/scopes.rb +20 -12
  273. data/lib/active_admin/views/components/sidebar.rb +13 -0
  274. data/lib/active_admin/views/components/sidebar_section.rb +6 -1
  275. data/lib/active_admin/views/components/site_title.rb +6 -7
  276. data/lib/active_admin/views/components/status_tag.rb +19 -23
  277. data/lib/active_admin/views/components/table_for.rb +31 -57
  278. data/lib/active_admin/views/components/tabs.rb +17 -5
  279. data/lib/active_admin/views/footer.rb +15 -4
  280. data/lib/active_admin/views/header.rb +3 -16
  281. data/lib/active_admin/views/index_as_blog.rb +3 -4
  282. data/lib/active_admin/views/index_as_grid.rb +28 -28
  283. data/lib/active_admin/views/index_as_table.rb +76 -28
  284. data/lib/active_admin/views/pages/base.rb +45 -58
  285. data/lib/active_admin/views/pages/form.rb +5 -2
  286. data/lib/active_admin/views/pages/index.rb +15 -13
  287. data/lib/active_admin/views/pages/layout.rb +1 -1
  288. data/lib/active_admin/views/pages/show.rb +9 -3
  289. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  290. data/lib/active_admin/views/title_bar.rb +6 -6
  291. data/lib/active_admin/views.rb +1 -1
  292. data/lib/active_admin.rb +69 -67
  293. data/lib/activeadmin.rb +1 -1
  294. data/lib/generators/active_admin/assets/assets_generator.rb +3 -3
  295. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  296. data/lib/generators/active_admin/assets/templates/{active_admin.css.scss → active_admin.scss} +3 -3
  297. data/lib/generators/active_admin/devise/devise_generator.rb +17 -26
  298. data/lib/generators/active_admin/install/install_generator.rb +18 -8
  299. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +107 -5
  300. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -3
  301. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  302. data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +2 -5
  303. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  304. data/lib/generators/active_admin/page/templates/page.rb +1 -1
  305. data/lib/generators/active_admin/resource/resource_generator.rb +8 -2
  306. data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
  307. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  308. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  309. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  310. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  311. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
  312. data/lib/ransack_ext.rb +11 -3
  313. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  314. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  315. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  316. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  317. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  318. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  319. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  320. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  321. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  322. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  323. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  324. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  325. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  326. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  327. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  328. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  329. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  330. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  331. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  332. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  333. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  334. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  335. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  336. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  337. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  338. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  339. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  340. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  341. metadata +182 -553
  342. data/.gitignore +0 -49
  343. data/.hound.yml +0 -11
  344. data/.travis.yml +0 -42
  345. data/.yardopts +0 -8
  346. data/Gemfile +0 -54
  347. data/Guardfile +0 -8
  348. data/Rakefile +0 -33
  349. data/activeadmin.gemspec +0 -28
  350. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  351. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  352. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  353. data/app/assets/images/active_admin/orderable.png +0 -0
  354. data/app/assets/javascripts/active_admin/application.js.coffee +0 -32
  355. data/app/assets/javascripts/active_admin/base.js.coffee +0 -14
  356. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  357. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  358. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  359. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -36
  360. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  361. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  362. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  363. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -37
  364. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -27
  365. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +0 -68
  366. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  367. data/app/assets/stylesheets/active_admin/components/_popovers.scss +0 -122
  368. data/app/assets/stylesheets/active_admin/mixins/_icons.scss +0 -20
  369. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  370. data/cucumber.yml +0 -3
  371. data/features/action_item.feature +0 -73
  372. data/features/authorization.feature +0 -64
  373. data/features/authorization_cancan.feature +0 -52
  374. data/features/authorization_pundit.feature +0 -37
  375. data/features/belongs_to.feature +0 -66
  376. data/features/breadcrumb.feature +0 -75
  377. data/features/comments/commenting.feature +0 -171
  378. data/features/comments/viewing_index.feature +0 -19
  379. data/features/dashboard.feature +0 -16
  380. data/features/decorators.feature +0 -41
  381. data/features/development_reloading.feature +0 -30
  382. data/features/edit_page.feature +0 -117
  383. data/features/favicon.feature +0 -20
  384. data/features/first_boot.feature +0 -16
  385. data/features/global_navigation.feature +0 -29
  386. data/features/i18n.feature +0 -43
  387. data/features/index/batch_actions.feature +0 -164
  388. data/features/index/filters.feature +0 -161
  389. data/features/index/format_as_csv.feature +0 -203
  390. data/features/index/formats.feature +0 -66
  391. data/features/index/index_as_block.feature +0 -15
  392. data/features/index/index_as_blog.feature +0 -69
  393. data/features/index/index_as_grid.feature +0 -45
  394. data/features/index/index_as_table.feature +0 -291
  395. data/features/index/index_blank_slate.feature +0 -83
  396. data/features/index/index_parameters.feature +0 -75
  397. data/features/index/index_scope_to.feature +0 -56
  398. data/features/index/index_scopes.feature +0 -251
  399. data/features/index/page_title.feature +0 -41
  400. data/features/index/pagination.feature +0 -59
  401. data/features/index/switch_index_view.feature +0 -73
  402. data/features/menu.feature +0 -53
  403. data/features/new_page.feature +0 -109
  404. data/features/registering_assets.feature +0 -35
  405. data/features/registering_pages.feature +0 -148
  406. data/features/registering_resources.feature +0 -33
  407. data/features/renamed_resource.feature +0 -32
  408. data/features/root_to.feature +0 -17
  409. data/features/show/default_content.feature +0 -43
  410. data/features/show/page_title.feature +0 -58
  411. data/features/show/tabs.feature +0 -27
  412. data/features/sidebar_sections.feature +0 -210
  413. data/features/site_title.feature +0 -47
  414. data/features/specifying_actions.feature +0 -93
  415. data/features/step_definitions/action_item_steps.rb +0 -7
  416. data/features/step_definitions/action_link_steps.rb +0 -20
  417. data/features/step_definitions/additional_web_steps.rb +0 -81
  418. data/features/step_definitions/asset_steps.rb +0 -15
  419. data/features/step_definitions/attribute_steps.rb +0 -18
  420. data/features/step_definitions/batch_action_steps.rb +0 -72
  421. data/features/step_definitions/blog_steps.rb +0 -3
  422. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  423. data/features/step_definitions/comment_steps.rb +0 -12
  424. data/features/step_definitions/configuration_steps.rb +0 -100
  425. data/features/step_definitions/dashboard_steps.rb +0 -15
  426. data/features/step_definitions/factory_steps.rb +0 -34
  427. data/features/step_definitions/filter_steps.rb +0 -39
  428. data/features/step_definitions/flash_steps.rb +0 -11
  429. data/features/step_definitions/format_steps.rb +0 -52
  430. data/features/step_definitions/i18n_steps.rb +0 -3
  431. data/features/step_definitions/index_scope_steps.rb +0 -21
  432. data/features/step_definitions/index_views_steps.rb +0 -3
  433. data/features/step_definitions/layout_steps.rb +0 -3
  434. data/features/step_definitions/member_link_steps.rb +0 -7
  435. data/features/step_definitions/menu_steps.rb +0 -11
  436. data/features/step_definitions/pagination_steps.rb +0 -7
  437. data/features/step_definitions/sidebar_steps.rb +0 -13
  438. data/features/step_definitions/site_title_steps.rb +0 -17
  439. data/features/step_definitions/symbol_leak_steps.rb +0 -3
  440. data/features/step_definitions/tab_steps.rb +0 -8
  441. data/features/step_definitions/table_steps.rb +0 -119
  442. data/features/step_definitions/user_steps.rb +0 -45
  443. data/features/step_definitions/web_steps.rb +0 -85
  444. data/features/sti_resource.feature +0 -65
  445. data/features/strong_parameters.feature +0 -73
  446. data/features/support/env.rb +0 -145
  447. data/features/support/paths.rb +0 -71
  448. data/features/support/selectors.rb +0 -45
  449. data/features/symbol_leak.feature +0 -35
  450. data/features/users/logging_in.feature +0 -34
  451. data/features/users/logging_out.feature +0 -13
  452. data/features/users/resetting_password.feature +0 -34
  453. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +0 -28
  454. data/lib/active_admin/event.rb +0 -33
  455. data/lib/active_admin/helpers/settings.rb +0 -115
  456. data/lib/active_admin/iconic/icons.rb +0 -142
  457. data/lib/active_admin/iconic.rb +0 -53
  458. data/lib/active_admin/view_helpers/icon_helper.rb +0 -12
  459. data/lib/active_admin/views/components/action_list_popover.rb +0 -29
  460. data/lib/active_admin/views/components/popover.rb +0 -27
  461. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  462. data/lib/generators/active_admin/resource/templates/admin.rb +0 -18
  463. data/script/local +0 -44
  464. data/script/travis_cache +0 -107
  465. data/script/use_rails +0 -53
  466. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  467. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  468. data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +0 -82
  469. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  470. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  471. data/spec/javascripts/fixtures/flashes.html +0 -2
  472. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  473. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  474. data/spec/javascripts/support/jasmine.yml +0 -74
  475. data/spec/javascripts/support/jasmine_config.rb +0 -23
  476. data/spec/javascripts/support/jasmine_runner.rb +0 -32
  477. data/spec/rails_helper.rb +0 -154
  478. data/spec/requests/default_namespace_spec.rb +0 -61
  479. data/spec/requests/javascript_spec.rb +0 -20
  480. data/spec/requests/memory_spec.rb +0 -23
  481. data/spec/requests/stylesheets_spec.rb +0 -18
  482. data/spec/spec_helper.rb +0 -17
  483. data/spec/support/deferred_garbage_collection.rb +0 -19
  484. data/spec/support/detect_rails_version.rb +0 -34
  485. data/spec/support/integration_example_group.rb +0 -31
  486. data/spec/support/jslint.yml +0 -80
  487. data/spec/support/rails_template.rb +0 -138
  488. data/spec/support/rails_template_with_data.rb +0 -59
  489. data/spec/support/templates/admin/stores.rb +0 -9
  490. data/spec/support/templates/cucumber.rb +0 -24
  491. data/spec/support/templates/cucumber_with_reloading.rb +0 -5
  492. data/spec/support/templates/en.yml +0 -8
  493. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  494. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  495. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  496. data/spec/support/templates/policies/application_policy.rb +0 -45
  497. data/spec/support/templates/policies/category_policy.rb +0 -7
  498. data/spec/support/templates/policies/post_policy.rb +0 -15
  499. data/spec/support/templates/policies/store_policy.rb +0 -11
  500. data/spec/support/templates/policies/user_policy.rb +0 -11
  501. data/spec/support/templates/post_decorator.rb +0 -11
  502. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  503. data/spec/unit/action_builder_spec.rb +0 -132
  504. data/spec/unit/active_admin_spec.rb +0 -11
  505. data/spec/unit/application_spec.rb +0 -140
  506. data/spec/unit/asset_registration_spec.rb +0 -52
  507. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  508. data/spec/unit/authorization/controller_authorization_spec.rb +0 -39
  509. data/spec/unit/authorization/index_overriding_spec.rb +0 -22
  510. data/spec/unit/auto_link_spec.rb +0 -69
  511. data/spec/unit/batch_actions/resource_spec.rb +0 -92
  512. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  513. data/spec/unit/belongs_to_spec.rb +0 -51
  514. data/spec/unit/cancan_adapter_spec.rb +0 -43
  515. data/spec/unit/comments_spec.rb +0 -166
  516. data/spec/unit/component_spec.rb +0 -18
  517. data/spec/unit/config_shared_examples.rb +0 -59
  518. data/spec/unit/controller_filters_spec.rb +0 -44
  519. data/spec/unit/csv_builder_spec.rb +0 -244
  520. data/spec/unit/dependency_spec.rb +0 -135
  521. data/spec/unit/devise_spec.rb +0 -96
  522. data/spec/unit/dsl_spec.rb +0 -122
  523. data/spec/unit/event_spec.rb +0 -47
  524. data/spec/unit/filters/filter_form_builder_spec.rb +0 -433
  525. data/spec/unit/filters/resource_spec.rb +0 -121
  526. data/spec/unit/form_builder_spec.rb +0 -752
  527. data/spec/unit/generators/install_spec.rb +0 -23
  528. data/spec/unit/helpers/collection_spec.rb +0 -65
  529. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  530. data/spec/unit/helpers/settings_spec.rb +0 -30
  531. data/spec/unit/i18n_spec.rb +0 -12
  532. data/spec/unit/menu_collection_spec.rb +0 -62
  533. data/spec/unit/menu_item_spec.rb +0 -143
  534. data/spec/unit/menu_spec.rb +0 -71
  535. data/spec/unit/namespace/authorization_spec.rb +0 -27
  536. data/spec/unit/namespace/register_page_spec.rb +0 -74
  537. data/spec/unit/namespace/register_resource_spec.rb +0 -161
  538. data/spec/unit/namespace_spec.rb +0 -103
  539. data/spec/unit/order_clause_spec.rb +0 -81
  540. data/spec/unit/page_controller_spec.rb +0 -5
  541. data/spec/unit/page_spec.rb +0 -78
  542. data/spec/unit/pretty_format_spec.rb +0 -63
  543. data/spec/unit/pundit_adapter_spec.rb +0 -98
  544. data/spec/unit/resource/action_items_spec.rb +0 -65
  545. data/spec/unit/resource/includes_spec.rb +0 -21
  546. data/spec/unit/resource/menu_spec.rb +0 -18
  547. data/spec/unit/resource/naming_spec.rb +0 -122
  548. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  549. data/spec/unit/resource/pagination_spec.rb +0 -38
  550. data/spec/unit/resource/routes_spec.rb +0 -73
  551. data/spec/unit/resource/scopes_spec.rb +0 -50
  552. data/spec/unit/resource/sidebars_spec.rb +0 -43
  553. data/spec/unit/resource_collection_spec.rb +0 -158
  554. data/spec/unit/resource_controller/data_access_spec.rb +0 -140
  555. data/spec/unit/resource_controller/decorators_spec.rb +0 -83
  556. data/spec/unit/resource_controller/sidebars_spec.rb +0 -45
  557. data/spec/unit/resource_controller_spec.rb +0 -269
  558. data/spec/unit/resource_registration_spec.rb +0 -56
  559. data/spec/unit/resource_spec.rb +0 -278
  560. data/spec/unit/routing_spec.rb +0 -180
  561. data/spec/unit/scope_spec.rb +0 -190
  562. data/spec/unit/settings_spec.rb +0 -118
  563. data/spec/unit/view_factory_spec.rb +0 -21
  564. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
  565. data/spec/unit/view_helpers/display_name_spec.rb +0 -69
  566. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  567. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  568. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  569. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  570. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  571. data/spec/unit/views/components/action_list_popover_spec.rb +0 -40
  572. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  573. data/spec/unit/views/components/batch_action_popover_spec.rb +0 -47
  574. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  575. data/spec/unit/views/components/columns_spec.rb +0 -172
  576. data/spec/unit/views/components/index_list_spec.rb +0 -35
  577. data/spec/unit/views/components/index_table_for_spec.rb +0 -46
  578. data/spec/unit/views/components/paginated_collection_spec.rb +0 -236
  579. data/spec/unit/views/components/panel_spec.rb +0 -62
  580. data/spec/unit/views/components/popover_spec.rb +0 -33
  581. data/spec/unit/views/components/sidebar_section_spec.rb +0 -47
  582. data/spec/unit/views/components/site_title_spec.rb +0 -78
  583. data/spec/unit/views/components/status_tag_spec.rb +0 -235
  584. data/spec/unit/views/components/table_for_spec.rb +0 -384
  585. data/spec/unit/views/components/tabs_spec.rb +0 -39
  586. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -47
  587. data/spec/unit/views/pages/form_spec.rb +0 -42
  588. data/spec/unit/views/pages/index_spec.rb +0 -60
  589. data/spec/unit/views/pages/layout_spec.rb +0 -59
  590. data/spec/unit/views/pages/show_spec.rb +0 -33
  591. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  592. data/tasks/docs.rake +0 -37
  593. data/tasks/parallel_tests.rake +0 -66
  594. data/tasks/test.rake +0 -83
  595. data/tasks/yard.rake +0 -9
@@ -1,278 +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 be_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 be_nil
84
- config.belongs_to :posts
85
- expect(config.belongs_to_config).to_not be_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 be_truthy }
222
- end
223
-
224
- context "when set to false" do
225
- before { config.breadcrumb = false }
226
- it { is_expected.to be_falsey }
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
- allow(Post).to receive(:find_by_id).with('12345') { post }
236
- end
237
-
238
- it 'can find the resource' do
239
- expect(resource.find_resource('12345')).to eq post
240
- end
241
-
242
- context 'with a decorator' do
243
- let(:resource) { namespace.register(Post) { decorate_with PostDecorator } }
244
- it 'decorates the resource' do
245
- expect(resource.find_resource('12345')).to eq PostDecorator.new(post)
246
- end
247
- end
248
-
249
- context 'when using a nonstandard primary key' do
250
- let(:different_post) { double }
251
- before do
252
- allow(Post).to receive(:primary_key).and_return 'something_else'
253
- allow(Post).to receive(:find_by_something_else).with('55555') { different_post }
254
- end
255
-
256
- it 'can find the post by the custom primary key' do
257
- expect(resource.find_resource('55555')).to eq different_post
258
- end
259
- end
260
-
261
- context 'when using controller finder' do
262
- let(:resource) do
263
- namespace.register(Post) do
264
- controller do
265
- defaults finder: :find_by_title!
266
- end
267
- end
268
- end
269
-
270
- it 'can find the post by controller finder' do
271
- allow(Post).to receive(:find_by_title!).with('title-name').and_return(post)
272
-
273
- expect(resource.find_resource('title-name')).to eq post
274
- end
275
- end
276
- end
277
- end
278
- end
@@ -1,180 +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
- it "should only have the namespaces necessary for route testing" do
13
- expect(ActiveAdmin.application.namespaces.names).to eq [:admin, :root]
14
- end
15
-
16
- it "should route to the admin dashboard" do
17
- expect(get('/admin')).to route_to 'admin/dashboard#index'
18
- end
19
-
20
- describe "root path helper" do
21
- context "when in admin namespace" do
22
- it "should be admin_root_path" do
23
- expect(admin_root_path).to eq "/admin"
24
- end
25
- end
26
- end
27
-
28
- describe "standard resources" do
29
- context "when in admin namespace" do
30
- it "should route the index path" do
31
- expect(admin_posts_path).to eq "/admin/posts"
32
- end
33
-
34
- it "should route the show path" do
35
- expect(admin_post_path(1)).to eq "/admin/posts/1"
36
- end
37
-
38
- it "should route the new path" do
39
- expect(new_admin_post_path).to eq "/admin/posts/new"
40
- end
41
-
42
- it "should route the edit path" do
43
- expect(edit_admin_post_path(1)).to eq "/admin/posts/1/edit"
44
- end
45
- end
46
-
47
- context "when in root namespace" do
48
- before(:each) do
49
- load_resources { ActiveAdmin.register(Post, namespace: false) }
50
- end
51
-
52
- it "should route the index path" do
53
- expect(posts_path).to eq "/posts"
54
- end
55
-
56
- it "should route the show path" do
57
- expect(post_path(1)).to eq "/posts/1"
58
- end
59
-
60
- it "should route the new path" do
61
- expect(new_post_path).to eq "/posts/new"
62
- end
63
-
64
- it "should route the edit path" do
65
- expect(edit_post_path(1)).to eq "/posts/1/edit"
66
- end
67
- end
68
-
69
- context "with member action" do
70
- context "without an http verb" do
71
- before do
72
- load_resources do
73
- ActiveAdmin.register(Post){ member_action "do_something" }
74
- end
75
- end
76
-
77
- it "should default to GET" do
78
- expect({get: "/admin/posts/1/do_something"}).to be_routable
79
- expect({post: "/admin/posts/1/do_something"}).to_not be_routable
80
- end
81
- end
82
-
83
- context "with one http verb" do
84
- before do
85
- load_resources do
86
- ActiveAdmin.register(Post){ member_action "do_something", method: :post }
87
- end
88
- end
89
-
90
- it "should properly route" do
91
- expect({post: "/admin/posts/1/do_something"}).to be_routable
92
- end
93
- end
94
-
95
- context "with two http verbs" do
96
- before do
97
- load_resources do
98
- ActiveAdmin.register(Post){ member_action "do_something", method: [:put, :delete] }
99
- end
100
- end
101
-
102
- it "should properly route the first verb" do
103
- expect({put: "/admin/posts/1/do_something"}).to be_routable
104
- end
105
-
106
- it "should properly route the second verb" do
107
- expect({delete: "/admin/posts/1/do_something"}).to be_routable
108
- end
109
- end
110
- end
111
- end
112
-
113
- describe "belongs to resource" do
114
- it "should route the nested index path" do
115
- expect(admin_user_posts_path(1)).to eq "/admin/users/1/posts"
116
- end
117
-
118
- it "should route the nested show path" do
119
- expect(admin_user_post_path(1,2)).to eq "/admin/users/1/posts/2"
120
- end
121
-
122
- it "should route the nested new path" do
123
- expect(new_admin_user_post_path(1)).to eq "/admin/users/1/posts/new"
124
- end
125
-
126
- it "should route the nested edit path" do
127
- expect(edit_admin_user_post_path(1,2)).to eq "/admin/users/1/posts/2/edit"
128
- end
129
-
130
- context "with collection action" do
131
- before do
132
- load_resources do
133
- ActiveAdmin.register(Post) do
134
- belongs_to :user, optional: true
135
- end
136
- ActiveAdmin.register(User) do
137
- collection_action "do_something"
138
- end
139
- end
140
- end
141
-
142
- it "should properly route the collection action" do
143
- expect({ get: "/admin/users/do_something" }).to \
144
- route_to({ controller: 'admin/users', action: 'do_something'})
145
- end
146
- end
147
- end
148
-
149
- describe "page" do
150
- context "when default namespace" do
151
- before(:each) do
152
- load_resources { ActiveAdmin.register_page("Chocolate I lØve You!") }
153
- end
154
-
155
- it "should route to the page under /admin" do
156
- expect(admin_chocolate_i_love_you_path).to eq "/admin/chocolate_i_love_you"
157
- end
158
-
159
- context "when in the root namespace" do
160
- before(:each) do
161
- load_resources { ActiveAdmin.register_page("Chocolate I lØve You!", namespace: false) }
162
- end
163
-
164
- it "should route to page under /" do
165
- expect(chocolate_i_love_you_path).to eq "/chocolate_i_love_you"
166
- end
167
- end
168
-
169
- context "when singular page name" do
170
- before(:each) do
171
- load_resources { ActiveAdmin.register_page("Log") }
172
- end
173
-
174
- it "should not inject _index_ into the route name" do
175
- expect(admin_log_path).to eq "/admin/log"
176
- end
177
- end
178
- end
179
- end
180
- end
@@ -1,190 +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 be_nil }
64
- end
65
-
66
- describe '#scope_block' do
67
- subject { super().scope_block }
68
- it { is_expected.to be_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{ ActiveAdmin::Scope.new proc{ Date.today.strftime '%A' }
132
- }.to raise_error
133
- end
134
-
135
- it "should properly render the proc" do
136
- scope = ActiveAdmin::Scope.new proc{ Date.today.strftime '%A' }, :foobar
137
- expect(scope.name).to eq Date.today.strftime '%A'
138
- end
139
- end
140
-
141
- end # describe "creating a scope"
142
-
143
- describe "#display_if_block" do
144
-
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
-
155
- end
156
-
157
- describe "#default" do
158
-
159
- it "should accept a boolean" do
160
- scope = ActiveAdmin::Scope.new(:method, nil, default: true)
161
- expect(scope.default_block).to eq true
162
- end
163
-
164
- it "should default to a false #default_block" do
165
- scope = ActiveAdmin::Scope.new(:method, nil)
166
- expect(scope.default_block.call).to eq false
167
- end
168
-
169
- it "should store the :default proc" do
170
- scope = ActiveAdmin::Scope.new(:with_block, nil, default: proc{ true })
171
- expect(scope.default_block.call).to eq true
172
- end
173
-
174
- end
175
-
176
- describe "show_count" do
177
-
178
- it "should allow setting of show_count to prevent showing counts" do
179
- scope = ActiveAdmin::Scope.new(:default, nil, show_count: false)
180
- expect(scope.show_count).to eq false
181
- end
182
-
183
- it "should set show_count to true if not passed in" do
184
- scope = ActiveAdmin::Scope.new(:default)
185
- expect(scope.show_count).to eq true
186
- end
187
-
188
- end
189
-
190
- end