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,122 +0,0 @@
1
- # -*- coding: UTF-8 -*-
2
-
3
- require 'rails_helper'
4
-
5
- module ActiveAdmin
6
- describe Resource, "Naming" do
7
-
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
- module ::Mock class Resource < ActiveRecord::Base; end; end
18
- module NoActiveModel class Resource; end; end
19
-
20
- describe "singular resource name" do
21
- context "when class" do
22
- it "should be the underscored singular resource name" do
23
- expect(config.resource_name.singular).to eq "category"
24
- end
25
- end
26
- context "when a class in a module" do
27
- it "should underscore the module and the class" do
28
- expect(Resource.new(namespace, Mock::Resource).resource_name.singular).to eq "mock_resource"
29
- end
30
- end
31
- context "when you pass the 'as' option" do
32
- it "should underscore the passed through string" do
33
- expect(config(as: "Blog Category").resource_name.singular).to eq "blog_category"
34
- end
35
- end
36
- end
37
-
38
- describe "resource label" do
39
- it "should return a pretty name" do
40
- expect(config.resource_label).to eq "Category"
41
- end
42
-
43
- it "should return the plural version" do
44
- expect(config.plural_resource_label).to eq "Categories"
45
- end
46
-
47
- context "when the :as option is given" do
48
- it "should return the custom name" do
49
- expect(config(as: "My Category").resource_label).to eq "My Category"
50
- end
51
- end
52
-
53
- context "when a class in a module" do
54
- it "should include the module and the class" do
55
- expect(Resource.new(namespace, Mock::Resource).resource_label).to eq "Mock Resource"
56
- end
57
-
58
- it "should include the module and the pluralized class" do
59
- expect(Resource.new(namespace, Mock::Resource).plural_resource_label).to eq "Mock Resources"
60
- end
61
- end
62
-
63
- describe "I18n integration" do
64
- describe "singular label" do
65
- it "should return the titleized model_name.human" do
66
- expect(config.resource_name).to receive(:translate).and_return "Da category"
67
-
68
- expect(config.resource_label).to eq "Da category"
69
- end
70
- end
71
-
72
- describe "plural label" do
73
- it "should return the titleized plural version defined by i18n if available" do
74
- expect(config.resource_name).to receive(:translate).at_least(:once).and_return "Da categories"
75
- expect(config.plural_resource_label).to eq "Da categories"
76
- end
77
- end
78
-
79
- describe "plural label with not default locale" do
80
- it "should return the titleized plural version defined by i18n with custom :count if available" do
81
- expect(config.resource_name).to receive(:translate).at_least(:once).and_return "Категории"
82
- expect(config.plural_resource_label(count: 3)).to eq "Категории"
83
- end
84
- end
85
-
86
- context "when the :as option is given" do
87
- describe "singular label" do
88
- it "should translate the custom name" do
89
- config = config(as: 'My Category')
90
- expect(config.resource_name).to receive(:translate).and_return "Translated category"
91
- expect(config.resource_label).to eq "Translated category"
92
- end
93
- end
94
-
95
- describe "plural label" do
96
- it "should translate the custom name" do
97
- config = config(as: 'My Category')
98
- expect(config.resource_name).to receive(:translate).at_least(:once).and_return "Translated categories"
99
- expect(config.plural_resource_label).to eq "Translated categories"
100
- end
101
- end
102
- end
103
-
104
- end
105
- end
106
-
107
- describe "duplicate resource names" do
108
- let(:resource_name) { config.resource_name }
109
- let(:duplicate_resource_name) { Resource.new(namespace, Category).resource_name }
110
-
111
- [:==, :===, :eql?].each do |method|
112
- it "are equivalent when compared with #{method}" do
113
- expect(resource_name.public_send(method, duplicate_resource_name)).to be_truthy
114
- end
115
- end
116
-
117
- it "have identical hash values" do
118
- expect(resource_name.hash).to eq duplicate_resource_name.hash
119
- end
120
- end
121
- end
122
- end
@@ -1,44 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Resource::PagePresenters do
4
-
5
- let(:namespace){ ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin) }
6
- let(:resource){ namespace.register(Post) }
7
-
8
- it "should have an empty set of configs on initialize" do
9
- expect(resource.page_presenters).to eq ({})
10
- end
11
-
12
- it "should add a show page presenter" do
13
- page_presenter = ActiveAdmin::PagePresenter.new
14
- resource.set_page_presenter(:show, page_presenter)
15
- expect(resource.page_presenters[:show]).to eq page_presenter
16
- end
17
-
18
- it "should add an index page presenter" do
19
- page_presenter = ActiveAdmin::PagePresenter.new({as: :table})
20
- resource.set_page_presenter(:index, page_presenter)
21
- expect(resource.page_presenters[:index].default).to eq page_presenter
22
- end
23
-
24
- describe "#get_page_presenter" do
25
-
26
- it "should return a page config when set" do
27
- page_presenter = ActiveAdmin::PagePresenter.new
28
- resource.set_page_presenter(:index, page_presenter)
29
- expect(resource.get_page_presenter(:index)).to eq page_presenter
30
- end
31
-
32
- it "should return a specific index page config when set" do
33
- page_presenter = ActiveAdmin::PagePresenter.new
34
- resource.set_page_presenter(:index, page_presenter)
35
- expect(resource.get_page_presenter(:index, "table")).to eq page_presenter
36
- end
37
-
38
- it "should return nil when no page config set" do
39
- expect(resource.get_page_presenter(:index)).to eq nil
40
- end
41
-
42
- end
43
-
44
- end
@@ -1,38 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module ActiveAdmin
4
- describe Resource, "Pagination" do
5
-
6
- before { load_defaults! }
7
-
8
- let(:application){ ActiveAdmin::Application.new }
9
- let(:namespace){ Namespace.new(application, :admin) }
10
-
11
- def config(options = {})
12
- @config ||= Resource.new(namespace, Category, options)
13
- end
14
-
15
- describe "#paginate" do
16
- it "should default to true" do
17
- expect(config.paginate).to eq true
18
- end
19
-
20
- it "should be settable to false" do
21
- config.paginate = false
22
- expect(config.paginate).to eq false
23
- end
24
- end
25
-
26
- describe "#per_page" do
27
- it "should default to namespace.default_per_page" do
28
- expect(namespace).to receive(:default_per_page).and_return(5)
29
- expect(config.per_page).to eq 5
30
- end
31
-
32
- it "should be settable" do
33
- config.per_page = 5
34
- expect(config.per_page).to eq 5
35
- end
36
- end
37
- end
38
- end
@@ -1,73 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module ActiveAdmin
4
- describe Resource::Routes do
5
- before { load_defaults! }
6
-
7
- describe "route names" do
8
- context "when in the admin namespace" do
9
- let!(:config) { ActiveAdmin.register Category }
10
- let(:category) { Category.new { |c| c.id = 123 } }
11
-
12
- it "should return the route prefix" do
13
- expect(config.route_prefix).to eq 'admin'
14
- end
15
-
16
- it "should return the route collection path" do
17
- expect(config.route_collection_path).to eq '/admin/categories'
18
- end
19
-
20
- it "should return the route instance path" do
21
- expect(config.route_instance_path(category)).to eq '/admin/categories/123'
22
- end
23
- end
24
-
25
- context "when in the root namespace" do
26
- let!(:config) { ActiveAdmin.register Category, namespace: false }
27
- it "should have a nil route_prefix" do
28
- expect(config.route_prefix).to be_nil
29
- end
30
-
31
- it "should generate a correct route" do
32
- reload_routes!
33
- expect(config.route_collection_path).to eq "/categories"
34
- end
35
- end
36
-
37
- context "when registering a plural resource" do
38
- class ::News; def self.has_many(*); end end
39
- let!(:config) { ActiveAdmin.register News }
40
- before{ reload_routes! }
41
-
42
- it "should return the plural route with _index" do
43
- expect(config.route_collection_path).to eq "/admin/news"
44
- end
45
- end
46
-
47
- context "when the resource belongs to another resource" do
48
- let! :config do
49
- ActiveAdmin.register Post do
50
- belongs_to :category
51
- end
52
- end
53
-
54
- let :post do
55
- Post.new do |p|
56
- p.id = 3
57
- p.category = Category.new{ |c| c.id = 1 }
58
- end
59
- end
60
-
61
- before{ reload_routes! }
62
-
63
- it "should nest the collection path" do
64
- expect(config.route_collection_path(category_id: 1)).to eq "/admin/categories/1/posts"
65
- end
66
-
67
- it "should nest the instance path" do
68
- expect(config.route_instance_path(post)).to eq "/admin/categories/1/posts/3"
69
- end
70
- end
71
- end
72
- end
73
- end
@@ -1,50 +0,0 @@
1
- require 'rails_helper'
2
-
3
- module ActiveAdmin
4
- describe Resource, "Scopes" do
5
-
6
- before { load_defaults! }
7
-
8
- let(:application){ ActiveAdmin::Application.new }
9
- let(:namespace){ Namespace.new(application, :admin) }
10
-
11
- def config(options = {})
12
- @config ||= Resource.new(namespace, Category, options)
13
- end
14
-
15
- describe "adding a scope" do
16
-
17
- it "should add a scope" do
18
- config.scope :published
19
- expect(config.scopes.first).to be_a(ActiveAdmin::Scope)
20
- expect(config.scopes.first.name).to eq "Published"
21
- end
22
-
23
- it "should retrive a scope by its id" do
24
- config.scope :published
25
- expect(config.get_scope_by_id(:published).name).to eq "Published"
26
- end
27
-
28
- it "should retrieve a string scope with spaces by its id without conflicts" do
29
- aspace_1 = config.scope "a space"
30
- aspace_2 = config.scope "as pace"
31
- expect(config.get_scope_by_id(aspace_1.id).name).to eq "a space"
32
- expect(config.get_scope_by_id(aspace_2.id).name).to eq "as pace"
33
- end
34
-
35
- it "should not add a scope with the same name twice" do
36
- config.scope :published
37
- config.scope :published
38
- expect(config.scopes.size).to eq 1
39
- end
40
-
41
- it "should update a scope with the same id" do
42
- config.scope :published
43
- expect(config.scopes.first.scope_block).to be_nil
44
- config.scope(:published){ }
45
- expect(config.scopes.first.scope_block).to_not be_nil
46
- end
47
-
48
- end
49
- end
50
- end
@@ -1,43 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Resource::Sidebars do
4
-
5
- let(:resource) do
6
- namespace = ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin)
7
- namespace.register(Post)
8
- end
9
-
10
- let(:sidebar) { ActiveAdmin::SidebarSection.new(:help) }
11
-
12
- describe "adding a new sidebar section" do
13
-
14
- before do
15
- resource.clear_sidebar_sections!
16
- resource.sidebar_sections << sidebar
17
- end
18
-
19
- it "should add a sidebar section" do
20
- expect(resource.sidebar_sections.size).to eq(1)
21
- end
22
-
23
- end
24
-
25
- describe "retrieving sections for a controller action" do
26
-
27
- let(:only_index){ ActiveAdmin::SidebarSection.new(:help, only: :index) }
28
- let(:only_show){ ActiveAdmin::SidebarSection.new(:help, only: :show) }
29
-
30
- before do
31
- resource.clear_sidebar_sections!
32
- resource.sidebar_sections << only_index
33
- resource.sidebar_sections << only_show
34
- end
35
-
36
- it "should only return the relevant action items" do
37
- expect(resource.sidebar_sections.size).to eq(2)
38
- expect(resource.sidebar_sections_for("index")).to eq [only_index]
39
- end
40
-
41
- end
42
-
43
- end
@@ -1,158 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/resource_collection'
3
-
4
- describe ActiveAdmin::ResourceCollection do
5
- let(:application) { ActiveAdmin::Application.new }
6
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
7
- let(:collection) { ActiveAdmin::ResourceCollection.new }
8
- let(:resource) { double resource_name: "MyResource" }
9
-
10
- it { is_expected.to respond_to :[] }
11
- it { is_expected.to respond_to :add }
12
- it { is_expected.to respond_to :each }
13
- it { is_expected.to respond_to :has_key? }
14
- it { is_expected.to respond_to :keys }
15
- it { is_expected.to respond_to :values }
16
- it { is_expected.to respond_to :size }
17
- it { is_expected.to respond_to :to_a }
18
-
19
- it "should have no resources when new" do
20
- expect(collection).to be_empty
21
- end
22
-
23
- it "should be enumerable" do
24
- collection.add(resource)
25
- collection.each{ |r| expect(r).to eq resource }
26
- end
27
-
28
- it "should return the available keys" do
29
- collection.add resource
30
- expect(collection.keys).to eq [resource.resource_name]
31
- end
32
-
33
- describe "#add" do
34
- it "should return the resource" do
35
- expect(collection.add(resource)).to eq resource
36
- end
37
-
38
- it "should add a new resource" do
39
- collection.add(resource)
40
- expect(collection.values).to eq [resource]
41
- end
42
-
43
- it "should be available by name" do
44
- collection.add(resource)
45
- expect(collection[resource.resource_name]).to eq resource
46
- end
47
-
48
- it "shouldn't happen twice" do
49
- collection.add(resource); collection.add(resource)
50
- expect(collection.values).to eq [resource]
51
- end
52
-
53
- it "shouldn't allow a resource name mismatch to occur" do
54
- expect {
55
- ActiveAdmin.register Category
56
- ActiveAdmin.register Post, as: "Category"
57
- }.to raise_error ActiveAdmin::ResourceCollection::ConfigMismatch
58
- end
59
-
60
- it "shouldn't allow a Page/Resource mismatch to occur" do
61
- expect {
62
- ActiveAdmin.register User
63
- ActiveAdmin.register_page 'User'
64
- }.to raise_error ActiveAdmin::ResourceCollection::IncorrectClass
65
- end
66
-
67
- describe "should store both renamed and non-renamed resources" do
68
- let(:resource) { ActiveAdmin::Resource.new namespace, Category }
69
- let(:renamed) { ActiveAdmin::Resource.new namespace, Category, as: "Subcategory" }
70
-
71
- it "when the renamed version is added first" do
72
- collection.add renamed
73
- collection.add resource
74
- expect(collection.values).to include(resource, renamed)
75
- end
76
-
77
- it "when the renamed version is added last" do
78
- collection.add resource
79
- collection.add renamed
80
- expect(collection.values).to include(resource, renamed)
81
- end
82
- end
83
- end
84
-
85
- describe "#[]" do
86
- let(:resource) { ActiveAdmin::Resource.new namespace, resource_class }
87
- let(:inherited_resource) { ActiveAdmin::Resource.new namespace, inherited_resource_class }
88
-
89
- let(:resource_class) { User }
90
- let(:inherited_resource_class) { Publisher }
91
- let(:unregistered_class) { Category }
92
-
93
- context "with resources" do
94
- before do
95
- collection.add resource
96
- collection.add inherited_resource
97
- end
98
-
99
- it "should find resource by class" do
100
- expect(collection[resource_class]).to eq resource
101
- end
102
-
103
- it "should find resource by class string" do
104
- expect(collection[resource_class.to_s]).to eq resource
105
- end
106
-
107
- it "should find inherited resource by class" do
108
- expect(collection[inherited_resource_class]).to eq inherited_resource
109
- end
110
-
111
- it "should find inherited resource by class string" do
112
- expect(collection[inherited_resource_class.to_s]).to eq inherited_resource
113
- end
114
-
115
- it "should return nil when the resource_class does not respond to base_class and it is not in the collection" do
116
- expect(collection[double]).to eq nil
117
- end
118
-
119
- it "should return nil when a resource class is NOT in the collection" do
120
- expect(collection[unregistered_class]).to eq nil
121
- end
122
- end
123
-
124
- context "without inherited resources" do
125
- before do
126
- collection.add resource
127
- end
128
-
129
- it "should find resource by inherited class" do
130
- expect(collection[inherited_resource_class]).to eq resource
131
- end
132
- end
133
-
134
- context "with a renamed resource" do
135
- let(:renamed_resource) { ActiveAdmin::Resource.new namespace, resource_class, as: name }
136
- let(:name) { "Administrators" }
137
-
138
- before do
139
- collection.add renamed_resource
140
- end
141
-
142
- it "should find resource by class" do
143
- expect(collection[resource_class]).to eq renamed_resource
144
- end
145
-
146
- it "should find resource by class string" do
147
- expect(collection[resource_class.to_s]).to eq renamed_resource
148
- end
149
-
150
- it "should find resource by name" do
151
- expect(collection[name]).to eq renamed_resource
152
- end
153
- end
154
- end
155
-
156
- skip "specs for subclasses of Page and Resource"
157
-
158
- end
@@ -1,140 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::ResourceController::DataAccess do
4
- let(:params) do
5
- {}
6
- end
7
-
8
- let(:controller) do
9
- rc = Admin::PostsController.new
10
- allow(rc).to receive(:params) do
11
- params
12
- end
13
- rc
14
- end
15
-
16
- describe "searching" do
17
- let(:params) {{ q: {} }}
18
- it "should call the search method" do
19
- chain = double "ChainObj"
20
- expect(chain).to receive(:ransack).with(params[:q]).once.and_return(Post.ransack)
21
- controller.send :apply_filtering, chain
22
- end
23
- end
24
-
25
- describe "sorting" do
26
-
27
- context "valid clause" do
28
- let(:params) {{ order: "id_asc" }}
29
-
30
- it "reorders chain" do
31
- chain = double "ChainObj"
32
- expect(chain).to receive(:reorder).with('"posts"."id" asc').once.and_return(Post.search)
33
- controller.send :apply_sorting, chain
34
- end
35
- end
36
-
37
- context "invalid clause" do
38
- let(:params) {{ order: "_asc" }}
39
-
40
- it "returns chain untouched" do
41
- chain = double "ChainObj"
42
- expect(chain).not_to receive(:reorder)
43
- expect(controller.send(:apply_sorting, chain)).to eq chain
44
- end
45
- end
46
-
47
- end
48
-
49
- describe "scoping" do
50
-
51
- context "when no current scope" do
52
- it "should set collection_before_scope to the chain and return the chain" do
53
- chain = double "ChainObj"
54
- expect(controller.send(:apply_scoping, chain)).to eq chain
55
- expect(controller.send(:collection_before_scope)).to eq chain
56
- end
57
- end
58
-
59
- context "when current scope" do
60
- it "should set collection_before_scope to the chain and return the scoped chain" do
61
- chain = double "ChainObj"
62
- scoped_chain = double "ScopedChain"
63
- current_scope = double "CurrentScope"
64
- allow(controller).to receive(:current_scope) { current_scope }
65
-
66
- expect(controller).to receive(:scope_chain).with(current_scope, chain) { scoped_chain }
67
- expect(controller.send(:apply_scoping, chain)).to eq scoped_chain
68
- expect(controller.send(:collection_before_scope)).to eq chain
69
- end
70
- end
71
- end
72
-
73
- describe "includes" do
74
- context "with no includes" do
75
- it "should return the chain" do
76
- chain = double "ChainObj"
77
- expect(controller.send(:apply_includes, chain)).to eq chain
78
- end
79
- end
80
-
81
- context "with includes" do
82
- it "should return the chain with the includes" do
83
- chain = double "ChainObj"
84
- chain_with_includes = double "ChainObjWithIncludes"
85
- expect(chain).to receive(:includes).with(:taggings, :author).and_return(chain_with_includes)
86
- expect(controller.send(:active_admin_config)).to receive(:includes).twice.and_return([:taggings, :author])
87
- expect(controller.send(:apply_includes, chain)).to eq chain_with_includes
88
- end
89
- end
90
- end
91
-
92
- describe "find_collection" do
93
- let(:appliers) do
94
- ActiveAdmin::ResourceController::DataAccess::COLLECTION_APPLIES
95
- end
96
- let(:scoped_collection) do
97
- double "ScopedCollectionChain"
98
- end
99
- before do
100
- allow(controller).to receive(:scoped_collection).
101
- and_return(scoped_collection)
102
- end
103
-
104
- it "should return chain with all appliers " do
105
- appliers.each do |applier|
106
- expect(controller).to receive("apply_#{applier}").
107
- with(scoped_collection).
108
- once.
109
- and_return(scoped_collection)
110
- end
111
- expect(controller).to receive(:collection_applies).
112
- with({}).and_call_original.once
113
- controller.send :find_collection
114
- end
115
-
116
- describe "collection_applies" do
117
- context "excepting appliers" do
118
- let(:options) do
119
- { except:
120
- [:authorization_scope, :filtering, :scoping, :collection_decorator]
121
- }
122
- end
123
-
124
- it "should except appliers" do
125
- expect(controller.send :collection_applies, options).
126
- to eq([:sorting, :includes, :pagination])
127
- end
128
- end
129
-
130
- context "specifying only needed appliers" do
131
- let(:options) do
132
- { only: [:filtering, :scoping] }
133
- end
134
- it "should except appliers" do
135
- expect(controller.send :collection_applies, options).to eq(options[:only])
136
- end
137
- end
138
- end
139
- end
140
- end