activeadmin 1.3.0 → 2.13.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (582) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +764 -135
  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 +524 -0
  7. data/app/assets/stylesheets/active_admin/_base.scss +53 -37
  8. data/app/assets/stylesheets/active_admin/_forms.scss +3 -25
  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 +25 -123
  12. data/app/assets/stylesheets/active_admin/{print.scss → _print.scss} +2 -2
  13. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  14. data/app/assets/stylesheets/active_admin/components/_date_picker.scss +1 -2
  15. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +0 -1
  16. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  17. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -5
  18. data/app/assets/stylesheets/active_admin/components/_tables.scss +1 -2
  19. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  20. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -8
  21. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  22. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +17 -0
  23. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  24. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -1
  25. data/app/javascript/active_admin/base.js +28 -0
  26. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  27. data/app/javascript/active_admin/ext/jquery.js +9 -0
  28. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  29. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  30. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  31. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  32. data/app/javascript/active_admin/initializers/filters.js +10 -0
  33. data/app/javascript/active_admin/initializers/has-many.js +98 -0
  34. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  35. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  36. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  37. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  38. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  39. data/app/javascript/active_admin/lib/filters.js +39 -0
  40. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  41. data/app/javascript/active_admin/lib/per-page.js +38 -0
  42. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  43. data/app/javascript/active_admin/lib/utils.js +40 -0
  44. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  45. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  46. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  47. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  48. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  49. data/app/views/active_admin/devise/registrations/new.html.erb +2 -3
  50. data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
  51. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  52. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  53. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  54. data/app/views/active_admin/page/index.html.arb +1 -0
  55. data/app/views/active_admin/resource/edit.html.arb +1 -0
  56. data/app/views/active_admin/resource/index.html.arb +1 -0
  57. data/app/views/active_admin/resource/new.html.arb +1 -0
  58. data/app/views/active_admin/resource/show.html.arb +1 -0
  59. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  60. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  61. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  63. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  64. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  65. data/app/views/layouts/active_admin.html.arb +1 -0
  66. data/app/views/layouts/active_admin_logged_out.html.erb +17 -7
  67. data/config/locales/ar.yml +9 -8
  68. data/config/locales/az.yml +138 -0
  69. data/config/locales/bg.yml +1 -1
  70. data/config/locales/bs.yml +1 -0
  71. data/config/locales/ca.yml +1 -1
  72. data/config/locales/cs.yml +1 -0
  73. data/config/locales/da.yml +1 -0
  74. data/config/locales/de-CH.yml +1 -0
  75. data/config/locales/de.yml +29 -0
  76. data/config/locales/el.yml +1 -0
  77. data/config/locales/en-CA.yml +4 -3
  78. data/config/locales/en-GB.yml +4 -3
  79. data/config/locales/en.yml +23 -4
  80. data/config/locales/eo.yml +1 -0
  81. data/config/locales/es-MX.yml +3 -1
  82. data/config/locales/es.yml +26 -6
  83. data/config/locales/fa.yml +1 -0
  84. data/config/locales/fi.yml +2 -1
  85. data/config/locales/fr.yml +6 -5
  86. data/config/locales/he.yml +1 -1
  87. data/config/locales/hr.yml +1 -0
  88. data/config/locales/hu.yml +5 -0
  89. data/config/locales/id.yml +1 -0
  90. data/config/locales/it.yml +23 -0
  91. data/config/locales/ja.yml +4 -3
  92. data/config/locales/ko.yml +2 -1
  93. data/config/locales/lt.yml +3 -2
  94. data/config/locales/lv.yml +3 -2
  95. data/config/locales/mk.yml +134 -0
  96. data/config/locales/nb.yml +16 -5
  97. data/config/locales/nl.yml +13 -1
  98. data/config/locales/pl.yml +72 -3
  99. data/config/locales/pt-BR.yml +1 -0
  100. data/config/locales/pt-PT.yml +1 -0
  101. data/config/locales/ro.yml +4 -2
  102. data/config/locales/ru.yml +3 -0
  103. data/config/locales/sk.yml +60 -0
  104. data/config/locales/sv-SE.yml +1 -0
  105. data/config/locales/tr.yml +10 -0
  106. data/config/locales/uk.yml +3 -0
  107. data/config/locales/vi.yml +7 -5
  108. data/config/locales/zh-CN.yml +34 -5
  109. data/config/locales/zh-TW.yml +1 -0
  110. data/docs/.gitignore +1 -0
  111. data/docs/0-installation.md +29 -5
  112. data/docs/1-general-configuration.md +36 -1
  113. data/docs/10-custom-pages.md +14 -0
  114. data/docs/11-decorators.md +16 -5
  115. data/docs/12-arbre-components.md +41 -1
  116. data/docs/13-authorization-adapter.md +41 -22
  117. data/docs/2-resource-customization.md +19 -5
  118. data/docs/3-index-pages/custom-index.md +1 -1
  119. data/docs/3-index-pages/index-as-blog.md +1 -1
  120. data/docs/3-index-pages/index-as-table.md +12 -5
  121. data/docs/3-index-pages.md +18 -1
  122. data/docs/5-forms.md +25 -5
  123. data/docs/6-show-pages.md +12 -0
  124. data/docs/8-custom-actions.md +12 -1
  125. data/docs/9-batch-actions.md +2 -2
  126. data/docs/CNAME +1 -1
  127. data/docs/Gemfile +4 -2
  128. data/docs/Gemfile.lock +283 -0
  129. data/docs/_config.yml +3 -1
  130. data/docs/_includes/toc.html +1 -1
  131. data/docs/_includes/top-menu.html +9 -1
  132. data/docs/documentation.md +2 -2
  133. data/docs/images/tidelift.svg +14 -0
  134. data/docs/index.html +110 -9
  135. data/docs/stylesheets/main.css +55 -2
  136. data/lib/active_admin/abstract_view_factory.rb +14 -51
  137. data/lib/active_admin/application.rb +65 -172
  138. data/lib/active_admin/application_settings.rb +43 -0
  139. data/lib/active_admin/asset_registration.rb +1 -8
  140. data/lib/active_admin/authorization_adapter.rb +4 -3
  141. data/lib/active_admin/base_controller/authorization.rb +18 -18
  142. data/lib/active_admin/base_controller/menu.rb +1 -0
  143. data/lib/active_admin/base_controller.rb +12 -11
  144. data/lib/active_admin/batch_actions/controller.rb +6 -5
  145. data/lib/active_admin/batch_actions/resource_extension.rb +16 -10
  146. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -3
  147. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +7 -6
  148. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -3
  149. data/lib/active_admin/batch_actions.rb +1 -0
  150. data/lib/active_admin/callbacks.rb +2 -1
  151. data/lib/active_admin/cancan_adapter.rb +2 -1
  152. data/lib/active_admin/collection_decorator.rb +32 -0
  153. data/lib/active_admin/component.rb +1 -0
  154. data/lib/active_admin/controller_action.rb +3 -1
  155. data/lib/active_admin/csv_builder.rb +15 -23
  156. data/lib/active_admin/dependency.rb +14 -77
  157. data/lib/active_admin/deprecation.rb +1 -25
  158. data/lib/active_admin/devise.rb +16 -5
  159. data/lib/active_admin/dsl.rb +3 -9
  160. data/lib/active_admin/dynamic_setting.rb +39 -0
  161. data/lib/active_admin/dynamic_settings_node.rb +29 -0
  162. data/lib/active_admin/engine.rb +16 -7
  163. data/lib/active_admin/error.rb +5 -4
  164. data/lib/active_admin/filters/active.rb +2 -1
  165. data/lib/active_admin/filters/active_filter.rb +12 -11
  166. data/lib/active_admin/filters/active_sidebar.rb +8 -30
  167. data/lib/active_admin/filters/dsl.rb +1 -0
  168. data/lib/active_admin/filters/forms.rb +13 -9
  169. data/lib/active_admin/filters/formtastic_addons.rb +3 -7
  170. data/lib/active_admin/filters/resource_extension.rb +30 -5
  171. data/lib/active_admin/filters.rb +8 -7
  172. data/lib/active_admin/form_builder.rb +110 -70
  173. data/lib/active_admin/generators/boilerplate.rb +13 -4
  174. data/lib/active_admin/helpers/collection.rb +2 -0
  175. data/lib/active_admin/helpers/i18n.rb +1 -0
  176. data/lib/active_admin/helpers/optional_display.rb +3 -2
  177. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -0
  178. data/lib/active_admin/helpers/scope_chain.rb +2 -0
  179. data/lib/active_admin/inputs/datepicker_input.rb +10 -2
  180. data/lib/active_admin/inputs/filters/base/search_method_select.rb +7 -6
  181. data/lib/active_admin/inputs/filters/base.rb +2 -1
  182. data/lib/active_admin/inputs/filters/boolean_input.rb +2 -1
  183. data/lib/active_admin/inputs/filters/check_boxes_input.rb +2 -1
  184. data/lib/active_admin/inputs/filters/date_picker_input.rb +1 -0
  185. data/lib/active_admin/inputs/filters/date_range_input.rb +16 -12
  186. data/lib/active_admin/inputs/filters/numeric_input.rb +1 -0
  187. data/lib/active_admin/inputs/filters/select_input.rb +3 -2
  188. data/lib/active_admin/inputs/filters/string_input.rb +1 -0
  189. data/lib/active_admin/inputs/filters/text_input.rb +1 -0
  190. data/lib/active_admin/inputs.rb +1 -0
  191. data/lib/active_admin/localizers/resource_localizer.rb +4 -3
  192. data/lib/active_admin/localizers.rb +2 -1
  193. data/lib/active_admin/menu.rb +9 -11
  194. data/lib/active_admin/menu_collection.rb +1 -0
  195. data/lib/active_admin/menu_item.rb +11 -38
  196. data/lib/active_admin/namespace.rb +33 -20
  197. data/lib/active_admin/namespace_settings.rb +127 -0
  198. data/lib/active_admin/order_clause.rb +3 -2
  199. data/lib/active_admin/orm/active_record/comments/comment.rb +5 -4
  200. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -0
  201. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -0
  202. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +1 -0
  203. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +30 -24
  204. data/lib/active_admin/orm/active_record/comments/views.rb +3 -2
  205. data/lib/active_admin/orm/active_record/comments.rb +35 -23
  206. data/lib/active_admin/orm/active_record.rb +2 -1
  207. data/lib/active_admin/orm/mongoid.rb +1 -0
  208. data/lib/active_admin/page.rb +2 -1
  209. data/lib/active_admin/page_controller.rb +1 -0
  210. data/lib/active_admin/page_dsl.rb +2 -1
  211. data/lib/active_admin/page_presenter.rb +3 -1
  212. data/lib/active_admin/pundit_adapter.rb +73 -16
  213. data/lib/active_admin/resource/action_items.rb +12 -6
  214. data/lib/active_admin/resource/attributes.rb +9 -5
  215. data/lib/active_admin/resource/belongs_to.rb +9 -3
  216. data/lib/active_admin/resource/controllers.rb +2 -1
  217. data/lib/active_admin/resource/includes.rb +1 -0
  218. data/lib/active_admin/resource/menu.rb +6 -5
  219. data/lib/active_admin/resource/model.rb +16 -0
  220. data/lib/active_admin/resource/naming.rb +6 -5
  221. data/lib/active_admin/resource/ordering.rb +1 -0
  222. data/lib/active_admin/resource/page_presenters.rb +1 -0
  223. data/lib/active_admin/resource/pagination.rb +1 -0
  224. data/lib/active_admin/resource/routes.rb +26 -14
  225. data/lib/active_admin/resource/scope_to.rb +8 -7
  226. data/lib/active_admin/resource/scopes.rb +4 -3
  227. data/lib/active_admin/resource/sidebars.rb +3 -2
  228. data/lib/active_admin/resource.rb +37 -22
  229. data/lib/active_admin/resource_collection.rb +3 -2
  230. data/lib/active_admin/resource_controller/action_builder.rb +11 -0
  231. data/lib/active_admin/resource_controller/data_access.rb +31 -5
  232. data/lib/active_admin/resource_controller/decorators.rb +10 -31
  233. data/lib/active_admin/resource_controller/polymorphic_routes.rb +38 -0
  234. data/lib/active_admin/resource_controller/resource_class_methods.rb +3 -0
  235. data/lib/active_admin/resource_controller/scoping.rb +2 -1
  236. data/lib/active_admin/resource_controller/sidebars.rb +1 -0
  237. data/lib/active_admin/resource_controller/streaming.rb +9 -7
  238. data/lib/active_admin/resource_controller.rb +14 -10
  239. data/lib/active_admin/resource_dsl.rb +16 -28
  240. data/lib/active_admin/router.rb +91 -84
  241. data/lib/active_admin/scope.rb +20 -11
  242. data/lib/active_admin/settings_node.rb +20 -0
  243. data/lib/active_admin/sidebar_section.rb +4 -1
  244. data/lib/active_admin/version.rb +2 -1
  245. data/lib/active_admin/view_factory.rb +18 -17
  246. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +1 -0
  247. data/lib/active_admin/view_helpers/auto_link_helper.rb +1 -0
  248. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +6 -5
  249. data/lib/active_admin/view_helpers/display_helper.rb +25 -8
  250. data/lib/active_admin/view_helpers/download_format_links_helper.rb +3 -1
  251. data/lib/active_admin/view_helpers/fields_for.rb +3 -2
  252. data/lib/active_admin/view_helpers/flash_helper.rb +1 -0
  253. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  254. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +4 -0
  255. data/lib/active_admin/view_helpers/scope_name_helper.rb +1 -0
  256. data/lib/active_admin/view_helpers/sidebar_helper.rb +1 -0
  257. data/lib/active_admin/view_helpers/title_helper.rb +1 -0
  258. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -0
  259. data/lib/active_admin/view_helpers.rb +2 -1
  260. data/lib/active_admin/views/action_items.rb +1 -0
  261. data/lib/active_admin/views/components/active_admin_form.rb +14 -8
  262. data/lib/active_admin/views/components/active_filters_sidebar_content.rb +59 -0
  263. data/lib/active_admin/views/components/attributes_table.rb +9 -8
  264. data/lib/active_admin/views/components/blank_slate.rb +2 -1
  265. data/lib/active_admin/views/components/columns.rb +1 -0
  266. data/lib/active_admin/views/components/dropdown_menu.rb +7 -9
  267. data/lib/active_admin/views/components/index_list.rb +4 -3
  268. data/lib/active_admin/views/components/menu.rb +33 -0
  269. data/lib/active_admin/views/components/menu_item.rb +59 -0
  270. data/lib/active_admin/views/components/paginated_collection.rb +22 -20
  271. data/lib/active_admin/views/components/panel.rb +2 -1
  272. data/lib/active_admin/views/components/scopes.rb +18 -8
  273. data/lib/active_admin/views/components/sidebar.rb +14 -0
  274. data/lib/active_admin/views/components/sidebar_section.rb +1 -3
  275. data/lib/active_admin/views/components/site_title.rb +7 -7
  276. data/lib/active_admin/views/components/status_tag.rb +14 -26
  277. data/lib/active_admin/views/components/table_for.rb +22 -29
  278. data/lib/active_admin/views/components/tabs.rb +18 -5
  279. data/lib/active_admin/views/components/unsupported_browser.rb +1 -0
  280. data/lib/active_admin/views/footer.rb +6 -8
  281. data/lib/active_admin/views/header.rb +4 -15
  282. data/lib/active_admin/views/index_as_block.rb +1 -0
  283. data/lib/active_admin/views/index_as_blog.rb +3 -2
  284. data/lib/active_admin/views/index_as_grid.rb +27 -26
  285. data/lib/active_admin/views/index_as_table.rb +34 -25
  286. data/lib/active_admin/views/pages/base.rb +44 -60
  287. data/lib/active_admin/views/pages/form.rb +1 -0
  288. data/lib/active_admin/views/pages/index.rb +16 -13
  289. data/lib/active_admin/views/pages/layout.rb +1 -0
  290. data/lib/active_admin/views/pages/page.rb +1 -0
  291. data/lib/active_admin/views/pages/show.rb +1 -0
  292. data/lib/active_admin/views/tabbed_navigation.rb +5 -59
  293. data/lib/active_admin/views/title_bar.rb +2 -1
  294. data/lib/active_admin/views.rb +2 -1
  295. data/lib/active_admin.rb +68 -63
  296. data/lib/activeadmin.rb +2 -1
  297. data/lib/generators/active_admin/assets/assets_generator.rb +3 -2
  298. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  299. data/lib/generators/active_admin/assets/templates/active_admin.scss +2 -2
  300. data/lib/generators/active_admin/devise/devise_generator.rb +6 -5
  301. data/lib/generators/active_admin/install/install_generator.rb +19 -8
  302. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +45 -3
  303. data/lib/generators/active_admin/install/templates/dashboard.rb +3 -3
  304. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb.erb +1 -15
  305. data/lib/generators/active_admin/page/page_generator.rb +2 -1
  306. data/lib/generators/active_admin/page/templates/page.rb +1 -0
  307. data/lib/generators/active_admin/resource/resource_generator.rb +4 -3
  308. data/lib/generators/active_admin/resource/templates/admin.rb.erb +40 -37
  309. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  310. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  311. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  312. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  313. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +27 -0
  314. data/lib/ransack_ext.rb +10 -9
  315. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  316. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  317. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  318. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +274 -283
  319. metadata +126 -558
  320. data/.github/ISSUE_TEMPLATE.md +0 -20
  321. data/.gitignore +0 -49
  322. data/.mdlrc +0 -1
  323. data/.rubocop.yml +0 -76
  324. data/.simplecov +0 -13
  325. data/.travis.yml +0 -51
  326. data/.yardopts +0 -7
  327. data/Gemfile +0 -58
  328. data/Rakefile +0 -54
  329. data/activeadmin.gemspec +0 -32
  330. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  331. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  332. data/app/assets/images/active_admin/orderable.png +0 -0
  333. data/app/assets/javascripts/active_admin/base.js.coffee +0 -13
  334. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  335. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  336. data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +0 -11
  337. data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +0 -14
  338. data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +0 -26
  339. data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +0 -7
  340. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -42
  341. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -46
  342. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -104
  343. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  344. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  345. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -45
  346. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -46
  347. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -22
  348. data/codecov.yml +0 -25
  349. data/config/i18n-tasks.yml +0 -26
  350. data/config/mdl_style.rb +0 -9
  351. data/cucumber.yml +0 -3
  352. data/features/action_item.feature +0 -73
  353. data/features/authorization.feature +0 -64
  354. data/features/authorization_cancan.feature +0 -52
  355. data/features/authorization_pundit.feature +0 -37
  356. data/features/belongs_to.feature +0 -124
  357. data/features/breadcrumb.feature +0 -75
  358. data/features/comments/commenting.feature +0 -178
  359. data/features/comments/viewing_index.feature +0 -19
  360. data/features/create_another.feature +0 -55
  361. data/features/dashboard.feature +0 -16
  362. data/features/decorators.feature +0 -43
  363. data/features/development_reloading.feature +0 -28
  364. data/features/edit_page.feature +0 -116
  365. data/features/favicon.feature +0 -20
  366. data/features/first_boot.feature +0 -16
  367. data/features/footer.feature +0 -28
  368. data/features/global_navigation.feature +0 -29
  369. data/features/i18n.feature +0 -55
  370. data/features/index/batch_actions.feature +0 -218
  371. data/features/index/filters.feature +0 -250
  372. data/features/index/format_as_csv.feature +0 -220
  373. data/features/index/formats.feature +0 -88
  374. data/features/index/index_as_block.feature +0 -15
  375. data/features/index/index_as_blog.feature +0 -69
  376. data/features/index/index_as_grid.feature +0 -45
  377. data/features/index/index_as_table.feature +0 -291
  378. data/features/index/index_blank_slate.feature +0 -83
  379. data/features/index/index_parameters.feature +0 -75
  380. data/features/index/index_scope_to.feature +0 -56
  381. data/features/index/index_scopes.feature +0 -285
  382. data/features/index/page_title.feature +0 -41
  383. data/features/index/pagination.feature +0 -63
  384. data/features/index/switch_index_view.feature +0 -73
  385. data/features/menu.feature +0 -72
  386. data/features/meta_tags.feature +0 -21
  387. data/features/new_page.feature +0 -136
  388. data/features/registering_assets.feature +0 -38
  389. data/features/registering_pages.feature +0 -237
  390. data/features/registering_resources.feature +0 -33
  391. data/features/renamed_resource.feature +0 -30
  392. data/features/root_to.feature +0 -17
  393. data/features/show/attributes_table_title.feature +0 -54
  394. data/features/show/columns.feature +0 -40
  395. data/features/show/default_content.feature +0 -44
  396. data/features/show/page_title.feature +0 -58
  397. data/features/show/tabs.feature +0 -33
  398. data/features/sidebar_sections.feature +0 -210
  399. data/features/site_title.feature +0 -47
  400. data/features/specifying_actions.feature +0 -118
  401. data/features/step_definitions/action_item_steps.rb +0 -7
  402. data/features/step_definitions/action_link_steps.rb +0 -19
  403. data/features/step_definitions/additional_web_steps.rb +0 -81
  404. data/features/step_definitions/asset_steps.rb +0 -15
  405. data/features/step_definitions/attribute_steps.rb +0 -18
  406. data/features/step_definitions/attributes_table_title_steps.rb +0 -11
  407. data/features/step_definitions/batch_action_steps.rb +0 -81
  408. data/features/step_definitions/blog_steps.rb +0 -3
  409. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  410. data/features/step_definitions/column_steps.rb +0 -8
  411. data/features/step_definitions/comment_steps.rb +0 -32
  412. data/features/step_definitions/configuration_steps.rb +0 -100
  413. data/features/step_definitions/dashboard_steps.rb +0 -15
  414. data/features/step_definitions/factory_steps.rb +0 -35
  415. data/features/step_definitions/filter_steps.rb +0 -47
  416. data/features/step_definitions/flash_steps.rb +0 -11
  417. data/features/step_definitions/footer_steps.rb +0 -11
  418. data/features/step_definitions/format_steps.rb +0 -56
  419. data/features/step_definitions/i18n_steps.rb +0 -11
  420. data/features/step_definitions/index_scope_steps.rb +0 -29
  421. data/features/step_definitions/index_views_steps.rb +0 -3
  422. data/features/step_definitions/layout_steps.rb +0 -3
  423. data/features/step_definitions/member_link_steps.rb +0 -7
  424. data/features/step_definitions/menu_steps.rb +0 -11
  425. data/features/step_definitions/meta_tag_steps.rb +0 -3
  426. data/features/step_definitions/pagination_steps.rb +0 -15
  427. data/features/step_definitions/sidebar_steps.rb +0 -11
  428. data/features/step_definitions/site_title_steps.rb +0 -17
  429. data/features/step_definitions/tab_steps.rb +0 -8
  430. data/features/step_definitions/table_steps.rb +0 -116
  431. data/features/step_definitions/user_steps.rb +0 -52
  432. data/features/step_definitions/web_steps.rb +0 -86
  433. data/features/sti_resource.feature +0 -65
  434. data/features/strong_parameters.feature +0 -69
  435. data/features/support/env.rb +0 -122
  436. data/features/support/paths.rb +0 -73
  437. data/features/support/regular_env.rb +0 -7
  438. data/features/support/reload_env.rb +0 -7
  439. data/features/support/selectors.rb +0 -45
  440. data/features/users/logging_in.feature +0 -36
  441. data/features/users/logging_out.feature +0 -13
  442. data/features/users/resetting_password.feature +0 -34
  443. data/gemfiles/rails_42.gemfile +0 -10
  444. data/gemfiles/rails_50.gemfile +0 -10
  445. data/gemfiles/rails_51.gemfile +0 -10
  446. data/gemfiles/rails_52.gemfile +0 -11
  447. data/lib/active_admin/event.rb +0 -24
  448. data/lib/active_admin/helpers/output_safety_helper.rb +0 -35
  449. data/lib/active_admin/helpers/settings.rb +0 -114
  450. data/lib/active_admin/reloader.rb +0 -25
  451. data/lib/bug_report_templates/active_admin_master.rb +0 -112
  452. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  453. data/spec/bug_report_templates_spec.rb +0 -26
  454. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  455. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  456. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  457. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  458. data/spec/javascripts/fixtures/flashes.html +0 -2
  459. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  460. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  461. data/spec/javascripts/support/jasmine.yml +0 -74
  462. data/spec/javascripts/support/jasmine_runner.rb +0 -19
  463. data/spec/rails_helper.rb +0 -59
  464. data/spec/requests/default_namespace_spec.rb +0 -81
  465. data/spec/requests/memory_spec.rb +0 -25
  466. data/spec/requests/stylesheets_spec.rb +0 -18
  467. data/spec/spec_helper.rb +0 -1
  468. data/spec/support/active_admin_integration_spec_helper.rb +0 -73
  469. data/spec/support/active_admin_request_helpers.rb +0 -39
  470. data/spec/support/rails_template.rb +0 -153
  471. data/spec/support/rails_template_with_data.rb +0 -327
  472. data/spec/support/templates/admin/stores.rb +0 -7
  473. data/spec/support/templates/en.yml +0 -8
  474. data/spec/support/templates/manifest.js +0 -3
  475. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  476. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  477. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  478. data/spec/support/templates/policies/application_policy.rb +0 -44
  479. data/spec/support/templates/policies/category_policy.rb +0 -7
  480. data/spec/support/templates/policies/post_policy.rb +0 -15
  481. data/spec/support/templates/policies/store_policy.rb +0 -11
  482. data/spec/support/templates/policies/user_policy.rb +0 -11
  483. data/spec/support/templates/post_decorator.rb +0 -24
  484. data/spec/unit/abstract_view_factory_spec.rb +0 -78
  485. data/spec/unit/action_builder_spec.rb +0 -158
  486. data/spec/unit/active_admin_spec.rb +0 -11
  487. data/spec/unit/application_spec.rb +0 -184
  488. data/spec/unit/asset_registration_spec.rb +0 -81
  489. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  490. data/spec/unit/authorization/controller_authorization_spec.rb +0 -43
  491. data/spec/unit/authorization/index_overriding_spec.rb +0 -23
  492. data/spec/unit/auto_link_spec.rb +0 -93
  493. data/spec/unit/batch_actions/resource_spec.rb +0 -84
  494. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  495. data/spec/unit/belongs_to_spec.rb +0 -76
  496. data/spec/unit/cancan_adapter_spec.rb +0 -43
  497. data/spec/unit/comments_spec.rb +0 -176
  498. data/spec/unit/component_spec.rb +0 -18
  499. data/spec/unit/config_shared_examples.rb +0 -59
  500. data/spec/unit/controller_filters_spec.rb +0 -41
  501. data/spec/unit/csv_builder_spec.rb +0 -313
  502. data/spec/unit/dependency_spec.rb +0 -135
  503. data/spec/unit/devise_spec.rb +0 -110
  504. data/spec/unit/dsl_spec.rb +0 -120
  505. data/spec/unit/filters/active_filter_spec.rb +0 -189
  506. data/spec/unit/filters/active_spec.rb +0 -24
  507. data/spec/unit/filters/filter_form_builder_spec.rb +0 -524
  508. data/spec/unit/filters/resource_spec.rb +0 -128
  509. data/spec/unit/form_builder_spec.rb +0 -990
  510. data/spec/unit/generators/install_spec.rb +0 -31
  511. data/spec/unit/helpers/collection_spec.rb +0 -68
  512. data/spec/unit/helpers/output_safety_helper_spec.rb +0 -79
  513. data/spec/unit/helpers/scope_chain_spec.rb +0 -35
  514. data/spec/unit/helpers/settings_spec.rb +0 -30
  515. data/spec/unit/i18n_spec.rb +0 -29
  516. data/spec/unit/localizers/resource_localizer_spec.rb +0 -36
  517. data/spec/unit/menu_collection_spec.rb +0 -62
  518. data/spec/unit/menu_item_spec.rb +0 -141
  519. data/spec/unit/menu_spec.rb +0 -71
  520. data/spec/unit/namespace/authorization_spec.rb +0 -27
  521. data/spec/unit/namespace/register_page_spec.rb +0 -99
  522. data/spec/unit/namespace/register_resource_spec.rb +0 -162
  523. data/spec/unit/namespace_spec.rb +0 -124
  524. data/spec/unit/order_clause_spec.rb +0 -81
  525. data/spec/unit/page_controller_spec.rb +0 -5
  526. data/spec/unit/page_spec.rb +0 -128
  527. data/spec/unit/pretty_format_spec.rb +0 -82
  528. data/spec/unit/pundit_adapter_spec.rb +0 -98
  529. data/spec/unit/resource/action_items_spec.rb +0 -69
  530. data/spec/unit/resource/attributes_spec.rb +0 -49
  531. data/spec/unit/resource/includes_spec.rb +0 -21
  532. data/spec/unit/resource/menu_spec.rb +0 -18
  533. data/spec/unit/resource/naming_spec.rb +0 -122
  534. data/spec/unit/resource/ordering_spec.rb +0 -35
  535. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  536. data/spec/unit/resource/pagination_spec.rb +0 -38
  537. data/spec/unit/resource/routes_spec.rb +0 -125
  538. data/spec/unit/resource/scopes_spec.rb +0 -50
  539. data/spec/unit/resource/sidebars_spec.rb +0 -43
  540. data/spec/unit/resource_collection_spec.rb +0 -175
  541. data/spec/unit/resource_controller/data_access_spec.rb +0 -234
  542. data/spec/unit/resource_controller/decorators_spec.rb +0 -94
  543. data/spec/unit/resource_controller/sidebars_spec.rb +0 -37
  544. data/spec/unit/resource_controller_spec.rb +0 -273
  545. data/spec/unit/resource_registration_spec.rb +0 -61
  546. data/spec/unit/resource_spec.rb +0 -320
  547. data/spec/unit/routing_spec.rb +0 -211
  548. data/spec/unit/scope_spec.rb +0 -209
  549. data/spec/unit/settings_spec.rb +0 -117
  550. data/spec/unit/view_factory_spec.rb +0 -19
  551. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -253
  552. data/spec/unit/view_helpers/display_helper_spec.rb +0 -203
  553. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  554. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  555. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -24
  556. data/spec/unit/view_helpers/form_helper_spec.rb +0 -42
  557. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -138
  558. data/spec/unit/views/components/attributes_table_spec.rb +0 -271
  559. data/spec/unit/views/components/batch_action_selector_spec.rb +0 -43
  560. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  561. data/spec/unit/views/components/columns_spec.rb +0 -187
  562. data/spec/unit/views/components/index_list_spec.rb +0 -49
  563. data/spec/unit/views/components/index_table_for_spec.rb +0 -127
  564. data/spec/unit/views/components/paginated_collection_spec.rb +0 -249
  565. data/spec/unit/views/components/panel_spec.rb +0 -58
  566. data/spec/unit/views/components/sidebar_section_spec.rb +0 -68
  567. data/spec/unit/views/components/site_title_spec.rb +0 -76
  568. data/spec/unit/views/components/status_tag_spec.rb +0 -265
  569. data/spec/unit/views/components/table_for_spec.rb +0 -436
  570. data/spec/unit/views/components/tabs_spec.rb +0 -67
  571. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -41
  572. data/spec/unit/views/index_as_blog_spec.rb +0 -76
  573. data/spec/unit/views/pages/form_spec.rb +0 -54
  574. data/spec/unit/views/pages/index_spec.rb +0 -60
  575. data/spec/unit/views/pages/layout_spec.rb +0 -59
  576. data/spec/unit/views/pages/show_spec.rb +0 -32
  577. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  578. data/tasks/docs.rake +0 -64
  579. data/tasks/lint.rake +0 -21
  580. data/tasks/local.rake +0 -25
  581. data/tasks/parallel_tests.rake +0 -66
  582. 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