activeadmin 1.3.1 → 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 (531) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +589 -136
  3. data/CODE_OF_CONDUCT.md +64 -12
  4. data/CONTRIBUTING.md +83 -61
  5. data/README.md +73 -19
  6. data/app/assets/javascripts/active_admin/base.js +517 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +29 -29
  8. data/app/assets/stylesheets/active_admin/_forms.scss +3 -15
  9. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  10. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  11. data/{vendor → app}/assets/stylesheets/active_admin/_normalize.scss +0 -0
  12. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  14. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  15. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  16. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  17. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  18. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  19. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +8 -0
  20. data/app/assets/stylesheets/active_admin/print.scss +2 -2
  21. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  22. data/app/javascript/active_admin/base.js +28 -0
  23. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  24. data/app/javascript/active_admin/ext/jquery.js +9 -0
  25. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  26. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  27. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  28. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  29. data/app/javascript/active_admin/initializers/filters.js +10 -0
  30. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  31. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  32. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  33. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  34. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  35. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  36. data/app/javascript/active_admin/lib/filters.js +39 -0
  37. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  38. data/app/javascript/active_admin/lib/per-page.js +38 -0
  39. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  40. data/app/javascript/active_admin/lib/utils.js +40 -0
  41. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  42. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  43. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  44. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  45. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  46. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  47. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  48. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  49. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  50. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  51. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  52. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  53. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  54. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  55. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  56. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  57. data/config/locales/ar.yml +9 -8
  58. data/config/locales/az.yml +138 -0
  59. data/config/locales/bg.yml +1 -1
  60. data/config/locales/bs.yml +1 -0
  61. data/config/locales/ca.yml +1 -1
  62. data/config/locales/cs.yml +1 -0
  63. data/config/locales/da.yml +1 -0
  64. data/config/locales/de-CH.yml +1 -0
  65. data/config/locales/de.yml +29 -0
  66. data/config/locales/el.yml +1 -0
  67. data/config/locales/en-CA.yml +4 -3
  68. data/config/locales/en-GB.yml +4 -3
  69. data/config/locales/en.yml +23 -4
  70. data/config/locales/eo.yml +1 -0
  71. data/config/locales/es-MX.yml +3 -1
  72. data/config/locales/es.yml +26 -6
  73. data/config/locales/fa.yml +1 -0
  74. data/config/locales/fi.yml +2 -1
  75. data/config/locales/fr.yml +6 -5
  76. data/config/locales/he.yml +1 -1
  77. data/config/locales/hr.yml +1 -0
  78. data/config/locales/hu.yml +5 -0
  79. data/config/locales/id.yml +1 -0
  80. data/config/locales/it.yml +23 -0
  81. data/config/locales/ja.yml +4 -3
  82. data/config/locales/ko.yml +1 -0
  83. data/config/locales/lt.yml +3 -2
  84. data/config/locales/lv.yml +3 -2
  85. data/config/locales/mk.yml +134 -0
  86. data/config/locales/nb.yml +16 -5
  87. data/config/locales/nl.yml +12 -0
  88. data/config/locales/pl.yml +72 -3
  89. data/config/locales/pt-BR.yml +1 -0
  90. data/config/locales/pt-PT.yml +1 -0
  91. data/config/locales/ro.yml +1 -0
  92. data/config/locales/ru.yml +3 -0
  93. data/config/locales/sk.yml +60 -0
  94. data/config/locales/sv-SE.yml +1 -0
  95. data/config/locales/tr.yml +10 -0
  96. data/config/locales/uk.yml +3 -0
  97. data/config/locales/vi.yml +7 -5
  98. data/config/locales/zh-CN.yml +34 -5
  99. data/config/locales/zh-TW.yml +1 -0
  100. data/docs/.gitignore +1 -0
  101. data/docs/0-installation.md +28 -4
  102. data/docs/1-general-configuration.md +36 -1
  103. data/docs/10-custom-pages.md +14 -0
  104. data/docs/11-decorators.md +16 -5
  105. data/docs/12-arbre-components.md +41 -1
  106. data/docs/13-authorization-adapter.md +41 -22
  107. data/docs/2-resource-customization.md +19 -5
  108. data/docs/3-index-pages/custom-index.md +1 -1
  109. data/docs/3-index-pages/index-as-blog.md +1 -1
  110. data/docs/3-index-pages/index-as-table.md +12 -5
  111. data/docs/3-index-pages.md +18 -1
  112. data/docs/5-forms.md +22 -3
  113. data/docs/6-show-pages.md +12 -0
  114. data/docs/8-custom-actions.md +11 -0
  115. data/docs/9-batch-actions.md +2 -2
  116. data/docs/CNAME +1 -1
  117. data/docs/Gemfile +3 -2
  118. data/docs/Gemfile.lock +259 -0
  119. data/docs/_config.yml +3 -1
  120. data/docs/_includes/toc.html +1 -1
  121. data/docs/_includes/top-menu.html +9 -1
  122. data/docs/documentation.md +2 -2
  123. data/docs/images/tidelift.svg +14 -0
  124. data/docs/index.html +110 -9
  125. data/docs/stylesheets/main.css +55 -2
  126. data/lib/active_admin/abstract_view_factory.rb +13 -51
  127. data/lib/active_admin/application.rb +59 -166
  128. data/lib/active_admin/application_settings.rb +42 -0
  129. data/lib/active_admin/asset_registration.rb +0 -8
  130. data/lib/active_admin/authorization_adapter.rb +3 -3
  131. data/lib/active_admin/base_controller/authorization.rb +16 -17
  132. data/lib/active_admin/base_controller.rb +10 -10
  133. data/lib/active_admin/batch_actions/controller.rb +5 -5
  134. data/lib/active_admin/batch_actions/resource_extension.rb +15 -10
  135. data/lib/active_admin/batch_actions/views/batch_action_form.rb +3 -3
  136. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +6 -6
  137. data/lib/active_admin/batch_actions/views/selection_cells.rb +3 -3
  138. data/lib/active_admin/callbacks.rb +1 -1
  139. data/lib/active_admin/cancan_adapter.rb +1 -1
  140. data/lib/active_admin/collection_decorator.rb +31 -0
  141. data/lib/active_admin/controller_action.rb +2 -1
  142. data/lib/active_admin/csv_builder.rb +14 -9
  143. data/lib/active_admin/dependency.rb +13 -77
  144. data/lib/active_admin/deprecation.rb +0 -25
  145. data/lib/active_admin/devise.rb +5 -5
  146. data/lib/active_admin/dsl.rb +2 -9
  147. data/lib/active_admin/dynamic_setting.rb +38 -0
  148. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  149. data/lib/active_admin/engine.rb +14 -7
  150. data/lib/active_admin/error.rb +4 -4
  151. data/lib/active_admin/filters/active.rb +1 -1
  152. data/lib/active_admin/filters/active_filter.rb +11 -11
  153. data/lib/active_admin/filters/active_sidebar.rb +9 -5
  154. data/lib/active_admin/filters/forms.rb +12 -9
  155. data/lib/active_admin/filters/formtastic_addons.rb +2 -7
  156. data/lib/active_admin/filters/resource_extension.rb +29 -5
  157. data/lib/active_admin/filters.rb +7 -7
  158. data/lib/active_admin/form_builder.rb +109 -70
  159. data/lib/active_admin/generators/boilerplate.rb +12 -4
  160. data/lib/active_admin/helpers/optional_display.rb +2 -2
  161. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  162. data/lib/active_admin/inputs/datepicker_input.rb +9 -2
  163. data/lib/active_admin/inputs/filters/base/search_method_select.rb +6 -6
  164. data/lib/active_admin/inputs/filters/base.rb +1 -1
  165. data/lib/active_admin/inputs/filters/boolean_input.rb +1 -1
  166. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -1
  167. data/lib/active_admin/inputs/filters/date_range_input.rb +15 -12
  168. data/lib/active_admin/inputs/filters/select_input.rb +2 -2
  169. data/lib/active_admin/localizers/resource_localizer.rb +3 -3
  170. data/lib/active_admin/localizers.rb +1 -1
  171. data/lib/active_admin/menu.rb +8 -11
  172. data/lib/active_admin/menu_item.rb +10 -38
  173. data/lib/active_admin/namespace.rb +30 -18
  174. data/lib/active_admin/namespace_settings.rb +126 -0
  175. data/lib/active_admin/order_clause.rb +2 -2
  176. data/lib/active_admin/orm/active_record/comments/comment.rb +4 -4
  177. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +29 -24
  178. data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
  179. data/lib/active_admin/orm/active_record/comments.rb +34 -23
  180. data/lib/active_admin/orm/active_record.rb +1 -1
  181. data/lib/active_admin/page.rb +1 -1
  182. data/lib/active_admin/page_dsl.rb +1 -1
  183. data/lib/active_admin/page_presenter.rb +2 -1
  184. data/lib/active_admin/pundit_adapter.rb +22 -9
  185. data/lib/active_admin/resource/action_items.rb +11 -6
  186. data/lib/active_admin/resource/attributes.rb +8 -5
  187. data/lib/active_admin/resource/belongs_to.rb +8 -3
  188. data/lib/active_admin/resource/controllers.rb +1 -1
  189. data/lib/active_admin/resource/menu.rb +5 -5
  190. data/lib/active_admin/resource/model.rb +15 -0
  191. data/lib/active_admin/resource/naming.rb +5 -5
  192. data/lib/active_admin/resource/routes.rb +25 -14
  193. data/lib/active_admin/resource/scope_to.rb +7 -7
  194. data/lib/active_admin/resource/scopes.rb +3 -3
  195. data/lib/active_admin/resource/sidebars.rb +2 -2
  196. data/lib/active_admin/resource.rb +34 -20
  197. data/lib/active_admin/resource_collection.rb +2 -2
  198. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  199. data/lib/active_admin/resource_controller/data_access.rb +1 -1
  200. data/lib/active_admin/resource_controller/decorators.rb +9 -31
  201. data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -0
  202. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  203. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  204. data/lib/active_admin/resource_controller/streaming.rb +7 -6
  205. data/lib/active_admin/resource_controller.rb +13 -10
  206. data/lib/active_admin/resource_dsl.rb +11 -9
  207. data/lib/active_admin/router.rb +90 -84
  208. data/lib/active_admin/scope.rb +19 -11
  209. data/lib/active_admin/settings_node.rb +19 -0
  210. data/lib/active_admin/sidebar_section.rb +3 -1
  211. data/lib/active_admin/version.rb +1 -1
  212. data/lib/active_admin/view_factory.rb +17 -17
  213. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +5 -5
  214. data/lib/active_admin/view_helpers/display_helper.rb +16 -7
  215. data/lib/active_admin/view_helpers/download_format_links_helper.rb +2 -1
  216. data/lib/active_admin/view_helpers/fields_for.rb +2 -2
  217. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +3 -0
  218. data/lib/active_admin/view_helpers.rb +1 -1
  219. data/lib/active_admin/views/components/active_admin_form.rb +12 -7
  220. data/lib/active_admin/views/components/attributes_table.rb +8 -8
  221. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  222. data/lib/active_admin/views/components/dropdown_menu.rb +8 -8
  223. data/lib/active_admin/views/components/index_list.rb +3 -3
  224. data/lib/active_admin/views/components/menu.rb +32 -0
  225. data/lib/active_admin/views/components/menu_item.rb +58 -0
  226. data/lib/active_admin/views/components/paginated_collection.rb +21 -20
  227. data/lib/active_admin/views/components/panel.rb +1 -1
  228. data/lib/active_admin/views/components/scopes.rb +17 -8
  229. data/lib/active_admin/views/components/sidebar.rb +13 -0
  230. data/lib/active_admin/views/components/sidebar_section.rb +0 -3
  231. data/lib/active_admin/views/components/site_title.rb +6 -7
  232. data/lib/active_admin/views/components/status_tag.rb +13 -26
  233. data/lib/active_admin/views/components/table_for.rb +21 -29
  234. data/lib/active_admin/views/components/tabs.rb +17 -5
  235. data/lib/active_admin/views/footer.rb +5 -8
  236. data/lib/active_admin/views/header.rb +3 -15
  237. data/lib/active_admin/views/index_as_blog.rb +2 -2
  238. data/lib/active_admin/views/index_as_grid.rb +26 -26
  239. data/lib/active_admin/views/index_as_table.rb +33 -25
  240. data/lib/active_admin/views/pages/base.rb +40 -59
  241. data/lib/active_admin/views/pages/index.rb +15 -13
  242. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  243. data/lib/active_admin/views/title_bar.rb +1 -1
  244. data/lib/active_admin/views.rb +1 -1
  245. data/lib/active_admin.rb +67 -63
  246. data/lib/activeadmin.rb +1 -1
  247. data/lib/generators/active_admin/assets/assets_generator.rb +2 -2
  248. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  249. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  250. data/lib/generators/active_admin/devise/devise_generator.rb +5 -5
  251. data/lib/generators/active_admin/install/install_generator.rb +18 -8
  252. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  253. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  254. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  255. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  256. data/lib/generators/active_admin/resource/resource_generator.rb +3 -3
  257. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  258. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  259. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  260. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  261. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  262. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
  263. data/lib/ransack_ext.rb +9 -9
  264. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  265. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  266. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  267. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  268. metadata +120 -553
  269. data/.github/ISSUE_TEMPLATE.md +0 -20
  270. data/.gitignore +0 -49
  271. data/.mdlrc +0 -1
  272. data/.rubocop.yml +0 -76
  273. data/.simplecov +0 -13
  274. data/.travis.yml +0 -51
  275. data/.yardopts +0 -7
  276. data/Gemfile +0 -58
  277. data/Rakefile +0 -54
  278. data/activeadmin.gemspec +0 -32
  279. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  280. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  281. data/app/assets/images/active_admin/orderable.png +0 -0
  282. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  283. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  284. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  285. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  286. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  287. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  288. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  289. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  290. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  291. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  292. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  293. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  294. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  295. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  296. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  297. data/codecov.yml +0 -25
  298. data/config/i18n-tasks.yml +0 -26
  299. data/config/mdl_style.rb +0 -9
  300. data/cucumber.yml +0 -3
  301. data/features/action_item.feature +0 -73
  302. data/features/authorization.feature +0 -64
  303. data/features/authorization_cancan.feature +0 -52
  304. data/features/authorization_pundit.feature +0 -37
  305. data/features/belongs_to.feature +0 -124
  306. data/features/breadcrumb.feature +0 -75
  307. data/features/comments/commenting.feature +0 -178
  308. data/features/comments/viewing_index.feature +0 -19
  309. data/features/create_another.feature +0 -55
  310. data/features/dashboard.feature +0 -16
  311. data/features/decorators.feature +0 -43
  312. data/features/development_reloading.feature +0 -28
  313. data/features/edit_page.feature +0 -116
  314. data/features/favicon.feature +0 -20
  315. data/features/first_boot.feature +0 -16
  316. data/features/footer.feature +0 -28
  317. data/features/global_navigation.feature +0 -29
  318. data/features/i18n.feature +0 -55
  319. data/features/index/batch_actions.feature +0 -218
  320. data/features/index/filters.feature +0 -250
  321. data/features/index/format_as_csv.feature +0 -220
  322. data/features/index/formats.feature +0 -88
  323. data/features/index/index_as_block.feature +0 -15
  324. data/features/index/index_as_blog.feature +0 -69
  325. data/features/index/index_as_grid.feature +0 -45
  326. data/features/index/index_as_table.feature +0 -291
  327. data/features/index/index_blank_slate.feature +0 -83
  328. data/features/index/index_parameters.feature +0 -75
  329. data/features/index/index_scope_to.feature +0 -56
  330. data/features/index/index_scopes.feature +0 -285
  331. data/features/index/page_title.feature +0 -41
  332. data/features/index/pagination.feature +0 -63
  333. data/features/index/switch_index_view.feature +0 -73
  334. data/features/menu.feature +0 -72
  335. data/features/meta_tags.feature +0 -21
  336. data/features/new_page.feature +0 -136
  337. data/features/registering_assets.feature +0 -38
  338. data/features/registering_pages.feature +0 -237
  339. data/features/registering_resources.feature +0 -33
  340. data/features/renamed_resource.feature +0 -30
  341. data/features/root_to.feature +0 -17
  342. data/features/show/attributes_table_title.feature +0 -54
  343. data/features/show/columns.feature +0 -40
  344. data/features/show/default_content.feature +0 -44
  345. data/features/show/page_title.feature +0 -58
  346. data/features/show/tabs.feature +0 -33
  347. data/features/sidebar_sections.feature +0 -210
  348. data/features/site_title.feature +0 -47
  349. data/features/specifying_actions.feature +0 -118
  350. data/features/step_definitions/action_item_steps.rb +0 -7
  351. data/features/step_definitions/action_link_steps.rb +0 -19
  352. data/features/step_definitions/additional_web_steps.rb +0 -81
  353. data/features/step_definitions/asset_steps.rb +0 -15
  354. data/features/step_definitions/attribute_steps.rb +0 -18
  355. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  356. data/features/step_definitions/batch_action_steps.rb +0 -81
  357. data/features/step_definitions/blog_steps.rb +0 -3
  358. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  359. data/features/step_definitions/column_steps.rb +0 -8
  360. data/features/step_definitions/comment_steps.rb +0 -32
  361. data/features/step_definitions/configuration_steps.rb +0 -100
  362. data/features/step_definitions/dashboard_steps.rb +0 -15
  363. data/features/step_definitions/factory_steps.rb +0 -35
  364. data/features/step_definitions/filter_steps.rb +0 -47
  365. data/features/step_definitions/flash_steps.rb +0 -11
  366. data/features/step_definitions/footer_steps.rb +0 -11
  367. data/features/step_definitions/format_steps.rb +0 -56
  368. data/features/step_definitions/i18n_steps.rb +0 -11
  369. data/features/step_definitions/index_scope_steps.rb +0 -29
  370. data/features/step_definitions/index_views_steps.rb +0 -3
  371. data/features/step_definitions/layout_steps.rb +0 -3
  372. data/features/step_definitions/member_link_steps.rb +0 -7
  373. data/features/step_definitions/menu_steps.rb +0 -11
  374. data/features/step_definitions/meta_tag_steps.rb +0 -3
  375. data/features/step_definitions/pagination_steps.rb +0 -15
  376. data/features/step_definitions/sidebar_steps.rb +0 -11
  377. data/features/step_definitions/site_title_steps.rb +0 -17
  378. data/features/step_definitions/tab_steps.rb +0 -8
  379. data/features/step_definitions/table_steps.rb +0 -116
  380. data/features/step_definitions/user_steps.rb +0 -52
  381. data/features/step_definitions/web_steps.rb +0 -86
  382. data/features/sti_resource.feature +0 -65
  383. data/features/strong_parameters.feature +0 -69
  384. data/features/support/env.rb +0 -122
  385. data/features/support/paths.rb +0 -73
  386. data/features/support/regular_env.rb +0 -7
  387. data/features/support/reload_env.rb +0 -7
  388. data/features/support/selectors.rb +0 -45
  389. data/features/users/logging_in.feature +0 -36
  390. data/features/users/logging_out.feature +0 -13
  391. data/features/users/resetting_password.feature +0 -34
  392. data/gemfiles/rails_42.gemfile +0 -10
  393. data/gemfiles/rails_50.gemfile +0 -10
  394. data/gemfiles/rails_51.gemfile +0 -10
  395. data/gemfiles/rails_52.gemfile +0 -11
  396. data/lib/active_admin/event.rb +0 -24
  397. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  398. data/lib/active_admin/helpers/settings.rb +0 -114
  399. data/lib/active_admin/reloader.rb +0 -25
  400. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  401. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  402. data/spec/bug_report_templates_spec.rb +0 -26
  403. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  404. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  405. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  406. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  407. data/spec/javascripts/fixtures/flashes.html +0 -2
  408. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  409. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  410. data/spec/javascripts/support/jasmine.yml +0 -74
  411. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  412. data/spec/rails_helper.rb +0 -59
  413. data/spec/requests/default_namespace_spec.rb +0 -81
  414. data/spec/requests/memory_spec.rb +0 -25
  415. data/spec/requests/stylesheets_spec.rb +0 -18
  416. data/spec/spec_helper.rb +0 -1
  417. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  418. data/spec/support/active_admin_request_helpers.rb +0 -39
  419. data/spec/support/rails_template.rb +0 -153
  420. data/spec/support/rails_template_with_data.rb +0 -327
  421. data/spec/support/templates/admin/stores.rb +0 -7
  422. data/spec/support/templates/en.yml +0 -8
  423. data/spec/support/templates/manifest.js +0 -3
  424. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  425. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  426. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  427. data/spec/support/templates/policies/application_policy.rb +0 -44
  428. data/spec/support/templates/policies/category_policy.rb +0 -7
  429. data/spec/support/templates/policies/post_policy.rb +0 -15
  430. data/spec/support/templates/policies/store_policy.rb +0 -11
  431. data/spec/support/templates/policies/user_policy.rb +0 -11
  432. data/spec/support/templates/post_decorator.rb +0 -24
  433. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  434. data/spec/unit/action_builder_spec.rb +0 -158
  435. data/spec/unit/active_admin_spec.rb +0 -11
  436. data/spec/unit/application_spec.rb +0 -184
  437. data/spec/unit/asset_registration_spec.rb +0 -81
  438. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  439. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  440. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  441. data/spec/unit/auto_link_spec.rb +0 -93
  442. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  443. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  444. data/spec/unit/belongs_to_spec.rb +0 -76
  445. data/spec/unit/cancan_adapter_spec.rb +0 -43
  446. data/spec/unit/comments_spec.rb +0 -176
  447. data/spec/unit/component_spec.rb +0 -18
  448. data/spec/unit/config_shared_examples.rb +0 -59
  449. data/spec/unit/controller_filters_spec.rb +0 -41
  450. data/spec/unit/csv_builder_spec.rb +0 -313
  451. data/spec/unit/dependency_spec.rb +0 -135
  452. data/spec/unit/devise_spec.rb +0 -110
  453. data/spec/unit/dsl_spec.rb +0 -120
  454. data/spec/unit/filters/active_filter_spec.rb +0 -189
  455. data/spec/unit/filters/active_spec.rb +0 -24
  456. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  457. data/spec/unit/filters/resource_spec.rb +0 -128
  458. data/spec/unit/form_builder_spec.rb +0 -990
  459. data/spec/unit/generators/install_spec.rb +0 -31
  460. data/spec/unit/helpers/collection_spec.rb +0 -68
  461. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  462. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  463. data/spec/unit/helpers/settings_spec.rb +0 -30
  464. data/spec/unit/i18n_spec.rb +0 -29
  465. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  466. data/spec/unit/menu_collection_spec.rb +0 -62
  467. data/spec/unit/menu_item_spec.rb +0 -141
  468. data/spec/unit/menu_spec.rb +0 -71
  469. data/spec/unit/namespace/authorization_spec.rb +0 -27
  470. data/spec/unit/namespace/register_page_spec.rb +0 -99
  471. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  472. data/spec/unit/namespace_spec.rb +0 -124
  473. data/spec/unit/order_clause_spec.rb +0 -81
  474. data/spec/unit/page_controller_spec.rb +0 -5
  475. data/spec/unit/page_spec.rb +0 -128
  476. data/spec/unit/pretty_format_spec.rb +0 -82
  477. data/spec/unit/pundit_adapter_spec.rb +0 -98
  478. data/spec/unit/resource/action_items_spec.rb +0 -69
  479. data/spec/unit/resource/attributes_spec.rb +0 -49
  480. data/spec/unit/resource/includes_spec.rb +0 -21
  481. data/spec/unit/resource/menu_spec.rb +0 -18
  482. data/spec/unit/resource/naming_spec.rb +0 -122
  483. data/spec/unit/resource/ordering_spec.rb +0 -35
  484. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  485. data/spec/unit/resource/pagination_spec.rb +0 -38
  486. data/spec/unit/resource/routes_spec.rb +0 -125
  487. data/spec/unit/resource/scopes_spec.rb +0 -50
  488. data/spec/unit/resource/sidebars_spec.rb +0 -43
  489. data/spec/unit/resource_collection_spec.rb +0 -175
  490. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  491. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  492. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  493. data/spec/unit/resource_controller_spec.rb +0 -273
  494. data/spec/unit/resource_registration_spec.rb +0 -61
  495. data/spec/unit/resource_spec.rb +0 -320
  496. data/spec/unit/routing_spec.rb +0 -211
  497. data/spec/unit/scope_spec.rb +0 -209
  498. data/spec/unit/settings_spec.rb +0 -117
  499. data/spec/unit/view_factory_spec.rb +0 -19
  500. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  501. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  502. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  503. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  504. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  505. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  506. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  507. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  508. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  509. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  510. data/spec/unit/views/components/columns_spec.rb +0 -187
  511. data/spec/unit/views/components/index_list_spec.rb +0 -49
  512. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  513. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  514. data/spec/unit/views/components/panel_spec.rb +0 -58
  515. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  516. data/spec/unit/views/components/site_title_spec.rb +0 -76
  517. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  518. data/spec/unit/views/components/table_for_spec.rb +0 -436
  519. data/spec/unit/views/components/tabs_spec.rb +0 -67
  520. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  521. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  522. data/spec/unit/views/pages/form_spec.rb +0 -54
  523. data/spec/unit/views/pages/index_spec.rb +0 -60
  524. data/spec/unit/views/pages/layout_spec.rb +0 -59
  525. data/spec/unit/views/pages/show_spec.rb +0 -32
  526. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  527. data/tasks/docs.rake +0 -64
  528. data/tasks/lint.rake +0 -21
  529. data/tasks/local.rake +0 -25
  530. data/tasks/parallel_tests.rake +0 -66
  531. data/tasks/test.rake +0 -29
@@ -1,31 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe "AA installation" do
4
- context "should create" do
5
-
6
- it "active_admin.scss" do
7
- path = Rails.root + "app/assets/stylesheets/active_admin.scss"
8
-
9
- expect(File.exist?(path)).to eq true
10
- end
11
-
12
- it "active_admin.js.coffee" do
13
- path = Rails.root + "app/assets/javascripts/active_admin.js.coffee"
14
-
15
- expect(File.exist?(path)).to eq true
16
- end
17
-
18
- it "the dashboard" do
19
- path = Rails.root + "app/admin/dashboard.rb"
20
-
21
- expect(File.exist?(path)).to eq true
22
- end
23
-
24
- it "the initializer" do
25
- path = Rails.root + "config/initializers/active_admin.rb"
26
-
27
- expect(File.exist?(path)).to eq true
28
- end
29
-
30
- end
31
- end
@@ -1,68 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Helpers::Collection do
4
-
5
- include ActiveAdmin::Helpers::Collection
6
-
7
- before do
8
- Post.create!(title: "A post")
9
- Post.create!(title: "A post")
10
- Post.create!(title: "An other post")
11
- end
12
-
13
- describe "#collection_size" do
14
- it "should return the collection size for an ActiveRecord class" do
15
- expect(collection_size(Post.where(nil))).to eq 3
16
- end
17
-
18
- it "should return the collection size for an ActiveRecord::Relation" do
19
- expect(collection_size(Post.where(title: "A post"))).to eq 2
20
- end
21
-
22
- it "should return the collection size for a collection with group by" do
23
- expect(collection_size(Post.group(:title))).to eq 2
24
- end
25
-
26
- it "should return the collection size for a collection with group by, select and custom order" do
27
- expect(collection_size(Post.select("title, count(*) as nb_posts").group(:title).order("nb_posts"))).to eq 2
28
- end
29
-
30
- it "should return the collection size for an Array" do
31
- expect(collection_size(Post.where(title: "A post").to_a)).to eq 2
32
- end
33
-
34
- it "should take the defined collection by default" do
35
- def collection; Post.where(nil); end
36
-
37
- expect(collection_size).to eq 3
38
-
39
- def collection; Post.where(title: "An other post"); end
40
-
41
- expect(collection_size).to eq 1
42
-
43
- def collection; Post.where(title: "A post").to_a end
44
-
45
- expect(collection_size).to eq 2
46
- end
47
- end
48
-
49
- describe "#collection_is_empty?" do
50
- it "should return true when the collection is empty" do
51
- expect(collection_is_empty?(Post.where(title: "Non existing post"))).to eq true
52
- end
53
-
54
- it "should return false when the collection is not empty" do
55
- expect(collection_is_empty?(Post.where(title: "A post"))).to eq false
56
- end
57
-
58
- it "should take the defined collection by default" do
59
- def collection; Post.where(nil); end
60
-
61
- expect(collection_is_empty?).to eq false
62
-
63
- def collection; Post.where(title: "Non existing post"); end
64
-
65
- expect(collection_is_empty?).to eq true
66
- end
67
- end
68
- end
@@ -1,79 +0,0 @@
1
- require 'rails_helper'
2
-
3
- # Adapted from Rails 5 to support Rails 4.
4
- # https://github.com/rails/rails/blob/9c35bf2a6a27431c6aa283db781c19f61c5155be/actionview/test/template/output_safety_helper_test.rb
5
- RSpec.describe ActiveAdmin::OutputSafetyHelper, type: :view do
6
- include described_class
7
-
8
- before do
9
- @string = "hello"
10
- end
11
-
12
- describe "to_sentence" do
13
- it "escapes non-html_safe values" do
14
- actual = to_sentence(%w(< > & ' "))
15
- assert actual.html_safe?
16
- assert_equal("&lt;, &gt;, &amp;, &#39;, and &quot;", actual)
17
-
18
- actual = to_sentence(%w(<script>))
19
- assert actual.html_safe?
20
- assert_equal("&lt;script&gt;", actual)
21
- end
22
-
23
- it "does not double escape if single value is html_safe" do
24
- assert_equal("&lt;script&gt;", to_sentence([ERB::Util.html_escape("<script>")]))
25
- assert_equal("&lt;script&gt;", to_sentence(["&lt;script&gt;".html_safe]))
26
- assert_equal("&amp;lt;script&amp;gt;", to_sentence(["&lt;script&gt;"]))
27
- end
28
-
29
- it "checks connector words for html safety" do
30
- assert_equal "one & two, and three", to_sentence(["one", "two", "three"], words_connector: " & ".html_safe)
31
- assert_equal "one & two", to_sentence(["one", "two"], two_words_connector: " & ".html_safe)
32
- assert_equal "one, two &lt;script&gt;alert(1)&lt;/script&gt; three", to_sentence(["one", "two", "three"], last_word_connector: " <script>alert(1)</script> ")
33
- end
34
-
35
- it "does not escape html_safe values" do
36
- ptag = content_tag("p") do
37
- safe_join(["<marquee>shady stuff</marquee>", tag("br")])
38
- end
39
- url = "https://example.com"
40
- expected = %(<a href="#{url}">#{url}</a> and <p>&lt;marquee&gt;shady stuff&lt;/marquee&gt;<br /></p>)
41
- actual = to_sentence([link_to(url, url), ptag])
42
- assert actual.html_safe?
43
- assert_equal(expected, actual)
44
- end
45
-
46
- it "handles blank strings" do
47
- actual = to_sentence(["", "two", "three"])
48
- assert actual.html_safe?
49
- assert_equal ", two, and three", actual
50
- end
51
-
52
- it "handles nil values" do
53
- actual = to_sentence([nil, "two", "three"])
54
- assert actual.html_safe?
55
- assert_equal ", two, and three", actual
56
- end
57
-
58
- it "still supports ActiveSupports Array#to_sentence arguments" do
59
- assert_equal "one two, and three", to_sentence(["one", "two", "three"], words_connector: " ")
60
- assert_equal "one & two, and three", to_sentence(["one", "two", "three"], words_connector: " & ".html_safe)
61
- assert_equal "onetwo, and three", to_sentence(["one", "two", "three"], words_connector: nil)
62
- assert_equal "one, two, and also three", to_sentence(["one", "two", "three"], last_word_connector: ", and also ")
63
- assert_equal "one, twothree", to_sentence(["one", "two", "three"], last_word_connector: nil)
64
- assert_equal "one, two three", to_sentence(["one", "two", "three"], last_word_connector: " ")
65
- assert_equal "one, two and three", to_sentence(["one", "two", "three"], last_word_connector: " and ")
66
- end
67
-
68
- it "is not affected by $," do
69
- separator_was = $,
70
- $, = "|"
71
- begin
72
- assert_equal "one and two", to_sentence(["one", "two"])
73
- assert_equal "one, two, and three", to_sentence(["one", "two", "three"])
74
- ensure
75
- $, = separator_was
76
- end
77
- end
78
- end
79
- end
@@ -1,35 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::ScopeChain do
4
-
5
- include ActiveAdmin::ScopeChain
6
-
7
- describe "#scope_chain" do
8
- let(:relation) { double }
9
-
10
- context "when Scope has a scope method" do
11
- let(:scope) { ActiveAdmin::Scope.new :published }
12
-
13
- it "should call the method on the relation and return it" do
14
- expect(relation).to receive(:published).and_return(:scoped_relation)
15
- expect(scope_chain(scope, relation)).to eq :scoped_relation
16
- end
17
- end
18
-
19
- context "when Scope has the scope method method ':all'" do
20
- let(:scope) { ActiveAdmin::Scope.new :all }
21
-
22
- it "should return the relation" do
23
- expect(scope_chain(scope, relation)).to eq relation
24
- end
25
- end
26
-
27
- context "when Scope has a name and a scope block" do
28
- let(:scope) { ActiveAdmin::Scope.new("My Scope"){|s| :scoped_relation } }
29
-
30
- it "should instance_exec the block and return it" do
31
- expect(scope_chain(scope, relation)).to eq :scoped_relation
32
- end
33
- end
34
- end
35
- end
@@ -1,30 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/helpers/settings'
3
-
4
- RSpec.describe ActiveAdmin::Settings do
5
-
6
- # A Class with settings module included
7
- let(:klass) do
8
- Class.new do
9
- include ActiveAdmin::Settings
10
- end
11
- end
12
-
13
- it "should add a new setting with a default" do
14
- klass.setting :my_setting, "Hello World"
15
- expect(klass.default_settings[:my_setting]).to eq "Hello World"
16
- end
17
-
18
- it "should initialize the defaults" do
19
- klass.setting :my_setting, "Hello World"
20
- expect(klass.new.my_setting).to eq "Hello World"
21
- end
22
-
23
- it "should support settings of nil" do
24
- klass.setting :my_setting, :some_val
25
- inst = klass.new
26
- inst.my_setting = nil
27
- expect(inst.my_setting).to eq nil
28
- end
29
-
30
- end
@@ -1,29 +0,0 @@
1
- require 'rails_helper'
2
- require 'i18n/tasks'
3
-
4
- Dir.glob('config/locales/*.yml') do |locale_file|
5
- RSpec.describe locale_file do
6
- it { is_expected.to be_parseable }
7
- it { is_expected.to have_one_top_level_namespace }
8
- it { is_expected.to be_named_like_top_level_namespace }
9
- it { is_expected.to_not have_legacy_interpolations }
10
- it { is_expected.to have_a_valid_locale }
11
- it { is_expected.to be_a_subset_of 'config/locales/en.yml' }
12
- end
13
- end
14
-
15
- RSpec.describe 'I18n' do
16
- let(:i18n) { I18n::Tasks::BaseTask.new }
17
- let(:unused_keys) { i18n.unused_keys }
18
-
19
- let(:failure_msg) do
20
- <<-MSG.squish
21
- #{unused_keys.leaves.count} unused i18n keys, run `i18n-tasks unused' to
22
- show them
23
- MSG
24
- end
25
-
26
- it 'does not have unused keys' do
27
- expect(unused_keys).to be_empty, failure_msg
28
- end
29
- end
@@ -1,36 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.shared_examples_for "ActiveAdmin::Localizers::ResourceLocalizer" do
4
- it "should use proper translation" do
5
- string = ActiveAdmin::Localizers::ResourceLocalizer.t(action, model: model, model_name: model_name)
6
- expect(string).to eq translation
7
- end
8
-
9
- it "should accessible via ActiveAdmin::Localizers" do
10
- resource = double(resource_label: model, resource_name: double(i18n_key: model_name))
11
- localizer = ActiveAdmin::Localizers.resource(resource)
12
- expect(localizer.t(action)).to eq translation
13
- end
14
- end
15
-
16
- RSpec.describe ActiveAdmin::Localizers::ResourceLocalizer do
17
- let(:action) { 'new_model' }
18
- let(:model) { 'Comment' }
19
- let(:model_name) { 'comment' }
20
-
21
- it_behaves_like "ActiveAdmin::Localizers::ResourceLocalizer" do
22
- let(:translation) { 'New Comment' }
23
- end
24
-
25
- describe "model action specified" do
26
- around do |example|
27
- with_translation active_admin: {resources: {comment: {new_model: 'Write comment'}}} do
28
- example.call
29
- end
30
- end
31
-
32
- it_behaves_like "ActiveAdmin::Localizers::ResourceLocalizer" do
33
- let(:translation) { 'Write comment' }
34
- end
35
- end
36
- end
@@ -1,62 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::MenuCollection do
4
-
5
- let(:menus) { ActiveAdmin::MenuCollection.new }
6
-
7
- describe "#add" do
8
-
9
- it "should initialize a new menu when first item" do
10
- menus.add :default, label: "Hello World"
11
-
12
- expect(menus.fetch(:default).items.size).to eq 1
13
- expect(menus.fetch(:default)["Hello World"]).to be_an_instance_of(ActiveAdmin::MenuItem)
14
- end
15
-
16
- it "should add items to an existing menu" do
17
- menus.add :default, label: "Hello World"
18
- menus.add :default, label: "Hello World Again"
19
-
20
- expect(menus.fetch(:default).items.size).to eq 2
21
- end
22
-
23
- end
24
-
25
- describe "#clear!" do
26
-
27
- it "should remove all menus" do
28
- menus.add :default, label: "Hello World"
29
-
30
- menus.clear!
31
-
32
- expect {
33
- menus.fetch(:non_default_menu)
34
- }.to raise_error(ActiveAdmin::NoMenuError)
35
-
36
- end
37
-
38
- end
39
-
40
- describe "#on_build" do
41
-
42
- it "runs a callback when fetching a menu" do
43
- menus.on_build do |m|
44
- m.add :default, label: "Hello World"
45
- end
46
-
47
- expect(menus.fetch(:default)["Hello World"]).to_not eq nil
48
- end
49
-
50
- it "re-runs the callbacks when the menu is cleared" do
51
- menus.on_build do |m|
52
- m.add :default, label: "Hello World"
53
- end
54
-
55
- expect(menus.fetch(:default)["Hello World"]).to_not eq nil
56
- menus.clear!
57
- expect(menus.fetch(:default)["Hello World"]).to_not eq nil
58
- end
59
-
60
- end
61
-
62
- end
@@ -1,141 +0,0 @@
1
- require 'active_admin/menu'
2
- require 'active_admin/menu_item'
3
-
4
- module ActiveAdmin
5
- RSpec.describe MenuItem do
6
-
7
- it "should have a label" do
8
- item = MenuItem.new(label: "Dashboard")
9
- expect(item.label).to eq "Dashboard"
10
- end
11
-
12
- it "should have a url" do
13
- item = MenuItem.new(url: "/admin")
14
- expect(item.url).to eq "/admin"
15
- end
16
-
17
- it "should have a priority of 10 by default" do
18
- item = MenuItem.new
19
- expect(item.priority).to eq 10
20
- end
21
-
22
- context "conditional display" do
23
- it "should store a Proc internally and evaluate it when requested" do
24
- item = MenuItem.new
25
- expect(item.instance_variable_get(:@should_display)).to be_a Proc
26
- expect(item.display?).to_not be_a Proc
27
- end
28
-
29
- it "should show the item by default" do
30
- expect(MenuItem.new.display?).to eq true
31
- end
32
-
33
- it "should hide the item" do
34
- expect(MenuItem.new(if: proc{false}).display?).to eq false
35
- end
36
- end
37
-
38
- it "should default to an empty hash for html_options" do
39
- item = MenuItem.new
40
- expect(item.html_options).to be_empty
41
- end
42
-
43
- it "should accept an options hash for link_to" do
44
- item = MenuItem.new html_options: { target: :blank }
45
- expect(item.html_options).to include(target: :blank)
46
- end
47
-
48
- context "with no items" do
49
- it "should be empty" do
50
- item = MenuItem.new
51
- expect(item.items).to be_empty
52
- end
53
-
54
- it "should accept new children" do
55
- item = MenuItem.new label: "Dashboard"
56
- item.add label: "My Child Dashboard"
57
- expect(item.items.first).to be_a MenuItem
58
- expect(item.items.first.label).to eq "My Child Dashboard"
59
- end
60
- end
61
-
62
- context "with many children" do
63
- let(:item) do
64
- i = MenuItem.new(label: "Dashboard")
65
- i.add label: "Blog"
66
- i.add label: "Cars"
67
- i.add label: "Users", priority: 1
68
- i.add label: "Settings", priority: 2
69
- i.add label: "Analytics", priority: 44
70
- i
71
- end
72
-
73
- it "should contain 5 submenu items" do
74
- expect(item.items.count).to eq 5
75
- end
76
-
77
- it "should give access to the menu item as an array" do
78
- expect(item['Blog'].label).to eq 'Blog'
79
- end
80
-
81
- it "should sort items based on priority and name" do
82
- expect(item.items[0].label).to eq 'Users'
83
- expect(item.items[1].label).to eq 'Settings'
84
- expect(item.items[2].label).to eq 'Blog'
85
- expect(item.items[3].label).to eq 'Cars'
86
- expect(item.items[4].label).to eq 'Analytics'
87
- end
88
-
89
- it "children should hold a reference to their parent" do
90
- expect(item["Blog"].parent).to eq item
91
- end
92
- end
93
-
94
- describe "accessing ancestory" do
95
- let(:item){ MenuItem.new label: "Blog" }
96
-
97
- context "with no parent" do
98
- it "should return an empty array" do
99
- expect(item.ancestors).to eq []
100
- end
101
- end
102
-
103
- context "with one parent" do
104
- let(:sub_item) do
105
- item.add label: "Create New"
106
- item["Create New"]
107
- end
108
- it "should return an array with the parent" do
109
- expect(sub_item.ancestors).to eq [item]
110
- end
111
- end
112
-
113
- context "with many parents" do
114
- before(:each) do
115
- c1 = {label: "C1"}
116
- c2 = {label: "C2"}
117
- c3 = {label: "C3"}
118
-
119
- item.add(c1).add(c2).add(c3)
120
-
121
- item
122
- end
123
- let(:sub_item){ item["C1"]["C2"]["C3"] }
124
- it "should return an array with the parents in reverse order" do
125
- expect(sub_item.ancestors).to eq [item["C1"]["C2"], item["C1"], item]
126
- end
127
- end
128
- end # accessing ancestory
129
-
130
- describe "#id" do
131
- it "should be normalized" do
132
- expect(MenuItem.new(id: "Foo Bar").id).to eq "foo_bar"
133
- end
134
-
135
- it "should not accept Procs" do
136
- expect{ MenuItem.new(id: proc{"Dynamic"}).id }.to raise_error TypeError
137
- end
138
- end
139
-
140
- end
141
- end
@@ -1,71 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/menu'
3
- require 'active_admin/menu_item'
4
-
5
- include ActiveAdmin
6
-
7
- RSpec.describe ActiveAdmin::Menu do
8
-
9
- context "with no items" do
10
- it "should have an empty item collection" do
11
- menu = Menu.new
12
- expect(menu.items).to be_empty
13
- end
14
-
15
- it "should accept new items" do
16
- menu = Menu.new
17
- menu.add label: "Dashboard"
18
- expect(menu.items.first.label).to eq "Dashboard"
19
- end
20
- end
21
-
22
- context "with many items" do
23
- let(:menu) do
24
- Menu.new do |m|
25
- m.add label: "Dashboard"
26
- m.add label: "Blog"
27
- end
28
- end
29
-
30
- it "should give access to the menu item as an array" do
31
- expect(menu['Dashboard'].label).to eq 'Dashboard'
32
- end
33
- end
34
-
35
- describe "adding items with children" do
36
- it "should add an empty item if the parent does not exist" do
37
- menu = Menu.new
38
- menu.add parent: "Admin", label: "Users"
39
-
40
- expect(menu["Admin"]["Users"]).to be_an_instance_of(ActiveAdmin::MenuItem)
41
- end
42
-
43
- it "should add a child to a parent if it exists" do
44
- menu = Menu.new
45
- menu.add parent: "Admin", label: "Users"
46
- menu.add parent: "Admin", label: "Projects"
47
-
48
- expect(menu["Admin"]["Projects"]).to be_an_instance_of(ActiveAdmin::MenuItem)
49
- end
50
-
51
- it "should assign children regardless of resource file load order" do
52
- menu = Menu.new
53
- menu.add parent: "Users", label: "Posts"
54
- menu.add label: "Users", url: "/some/url"
55
-
56
- expect(menu["Users"].url).to eq "/some/url"
57
- expect(menu["Users"]["Posts"]).to be_a ActiveAdmin::MenuItem
58
- end
59
- end
60
-
61
- describe "sorting items" do
62
- it "should sort children by the result of their label proc" do
63
- menu = Menu.new
64
- menu.add label: proc{ "G" }, id: "not related 1"
65
- menu.add label: proc{ "B" }, id: "not related 2"
66
- menu.add label: proc{ "A" }, id: "not related 3"
67
-
68
- expect(menu.items.map(&:label)).to eq %w[A B G]
69
- end
70
- end
71
- end
@@ -1,27 +0,0 @@
1
- require 'rails_helper'
2
-
3
- RSpec.describe ActiveAdmin::Resource, "authorization" do
4
-
5
- let(:app){ ActiveAdmin::Application.new }
6
- let(:namespace){ ActiveAdmin::Namespace.new(app, :admin) }
7
- let(:auth){ double }
8
-
9
- describe "authorization_adapter" do
10
-
11
- it "should return AuthorizationAdapter by default" do
12
- expect(app.authorization_adapter).to eq ActiveAdmin::AuthorizationAdapter
13
- expect(namespace.authorization_adapter).to eq ActiveAdmin::AuthorizationAdapter
14
- end
15
-
16
- it "should be settable on the namespace" do
17
- namespace.authorization_adapter = auth
18
- expect(namespace.authorization_adapter).to eq auth
19
- end
20
-
21
- it "should be settable on the application" do
22
- app.authorization_adapter = auth
23
- expect(app.authorization_adapter).to eq auth
24
- end
25
-
26
- end
27
- end