activeadmin 1.0.0.pre1 → 2.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG.md +587 -939
  3. data/CODE_OF_CONDUCT.md +74 -0
  4. data/CONTRIBUTING.md +110 -59
  5. data/LICENSE +0 -5
  6. data/README.md +80 -61
  7. data/app/assets/javascripts/active_admin/base.js +517 -0
  8. data/app/assets/stylesheets/active_admin/_base.scss +31 -34
  9. data/app/assets/stylesheets/active_admin/_forms.scss +33 -35
  10. data/app/assets/stylesheets/active_admin/_header.scss +40 -8
  11. data/app/assets/stylesheets/active_admin/_mixins.scss +1 -1
  12. data/app/assets/stylesheets/active_admin/_normalize.scss +447 -0
  13. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
  14. data/app/assets/stylesheets/active_admin/components/_buttons.scss +0 -5
  15. data/app/assets/stylesheets/active_admin/components/_comments.scss +2 -2
  16. data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
  17. data/app/assets/stylesheets/active_admin/components/_scopes.scss +3 -0
  18. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +0 -4
  19. data/app/assets/stylesheets/active_admin/components/_tables.scss +5 -3
  20. data/app/assets/stylesheets/active_admin/components/_tabs.scss +1 -1
  21. data/app/assets/stylesheets/active_admin/mixins/_all.scss +8 -11
  22. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +1 -1
  23. data/app/assets/stylesheets/active_admin/mixins/_sections.scss +0 -1
  24. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +1 -1
  25. data/app/assets/stylesheets/active_admin/mixins/_variables.scss +9 -1
  26. data/app/assets/stylesheets/active_admin/print.scss +3 -4
  27. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +1 -1
  28. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +0 -5
  29. data/app/javascript/active_admin/base.js +28 -0
  30. data/app/javascript/active_admin/ext/jquery-ui.js +7 -0
  31. data/app/javascript/active_admin/ext/jquery.js +9 -0
  32. data/app/javascript/active_admin/initializers/batch-actions.js +61 -0
  33. data/app/javascript/active_admin/initializers/checkbox-toggler.js +3 -0
  34. data/app/javascript/active_admin/initializers/datepicker.js +16 -0
  35. data/app/javascript/active_admin/initializers/dropdown-menu.js +9 -0
  36. data/app/javascript/active_admin/initializers/filters.js +10 -0
  37. data/app/javascript/active_admin/initializers/has-many.js +95 -0
  38. data/app/javascript/active_admin/initializers/per-page.js +13 -0
  39. data/app/javascript/active_admin/initializers/table-checkbox-toggler.js +3 -0
  40. data/app/javascript/active_admin/initializers/tabs.js +6 -0
  41. data/app/javascript/active_admin/lib/checkbox-toggler.js +49 -0
  42. data/app/javascript/active_admin/lib/dropdown-menu.js +116 -0
  43. data/app/javascript/active_admin/lib/filters.js +39 -0
  44. data/app/javascript/active_admin/lib/modal-dialog.js +63 -0
  45. data/app/javascript/active_admin/lib/per-page.js +38 -0
  46. data/app/javascript/active_admin/lib/table-checkbox-toggler.js +38 -0
  47. data/app/javascript/active_admin/lib/utils.js +40 -0
  48. data/app/views/active_admin/devise/confirmations/new.html.erb +2 -2
  49. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  50. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +2 -2
  51. data/app/views/active_admin/devise/passwords/edit.html.erb +2 -2
  52. data/app/views/active_admin/devise/passwords/new.html.erb +2 -2
  53. data/app/views/active_admin/devise/registrations/new.html.erb +3 -4
  54. data/app/views/active_admin/devise/sessions/new.html.erb +2 -2
  55. data/app/views/active_admin/devise/shared/_error_messages.html.erb +15 -0
  56. data/app/views/active_admin/devise/shared/_links.erb +12 -6
  57. data/app/views/active_admin/devise/unlocks/new.html.erb +2 -2
  58. data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
  59. data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
  60. data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
  61. data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
  62. data/app/views/kaminari/active_admin/_page.html.erb +12 -0
  63. data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
  64. data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
  65. data/app/views/kaminari/active_admin_countless/_first_page.html.erb +11 -0
  66. data/app/views/kaminari/active_admin_countless/_gap.html.erb +8 -0
  67. data/app/views/kaminari/active_admin_countless/_next_page.html.erb +11 -0
  68. data/app/views/kaminari/active_admin_countless/_page.html.erb +12 -0
  69. data/app/views/kaminari/active_admin_countless/_paginator.html.erb +24 -0
  70. data/app/views/kaminari/active_admin_countless/_prev_page.html.erb +11 -0
  71. data/app/views/layouts/active_admin_logged_out.html.erb +21 -7
  72. data/config/locales/ar.yml +62 -47
  73. data/config/locales/az.yml +138 -0
  74. data/config/locales/bg.yml +1 -3
  75. data/config/locales/bs.yml +1 -2
  76. data/config/locales/ca.yml +2 -4
  77. data/config/locales/cs.yml +1 -2
  78. data/config/locales/da.yml +45 -14
  79. data/config/locales/de-CH.yml +4 -3
  80. data/config/locales/de.yml +46 -3
  81. data/config/locales/el.yml +3 -4
  82. data/config/locales/en-CA.yml +139 -0
  83. data/config/locales/en-GB.yml +46 -5
  84. data/config/locales/en.yml +44 -9
  85. data/config/locales/eo.yml +145 -0
  86. data/config/locales/es-MX.yml +9 -6
  87. data/config/locales/es.yml +63 -14
  88. data/config/locales/fa.yml +1 -2
  89. data/config/locales/fi.yml +2 -3
  90. data/config/locales/fr.yml +36 -8
  91. data/config/locales/he.yml +53 -7
  92. data/config/locales/hr.yml +1 -2
  93. data/config/locales/hu.yml +6 -3
  94. data/config/locales/id.yml +135 -0
  95. data/config/locales/it.yml +49 -4
  96. data/config/locales/ja.yml +31 -7
  97. data/config/locales/ko.yml +66 -36
  98. data/config/locales/lt.yml +27 -6
  99. data/config/locales/lv.yml +3 -4
  100. data/config/locales/mk.yml +134 -0
  101. data/config/locales/nb.yml +22 -8
  102. data/config/locales/nl.yml +26 -3
  103. data/config/locales/pl.yml +75 -5
  104. data/config/locales/pt-BR.yml +24 -2
  105. data/config/locales/pt-PT.yml +1 -2
  106. data/config/locales/ro.yml +1 -2
  107. data/config/locales/ru.yml +21 -4
  108. data/config/locales/sk.yml +168 -0
  109. data/config/locales/sv-SE.yml +50 -8
  110. data/config/locales/tr.yml +92 -45
  111. data/config/locales/uk.yml +30 -16
  112. data/config/locales/vi.yml +53 -12
  113. data/config/locales/zh-CN.yml +44 -7
  114. data/config/locales/zh-TW.yml +42 -3
  115. data/docs/.gitignore +1 -0
  116. data/docs/0-installation.md +68 -18
  117. data/docs/1-general-configuration.md +88 -4
  118. data/docs/10-custom-pages.md +56 -2
  119. data/docs/11-decorators.md +20 -5
  120. data/docs/12-arbre-components.md +75 -11
  121. data/docs/13-authorization-adapter.md +73 -36
  122. data/docs/14-gotchas.md +64 -18
  123. data/docs/2-resource-customization.md +91 -23
  124. data/docs/3-index-pages/custom-index.md +5 -1
  125. data/docs/3-index-pages/index-as-block.md +3 -5
  126. data/docs/3-index-pages/index-as-blog.md +4 -6
  127. data/docs/3-index-pages/index-as-grid.md +3 -5
  128. data/docs/3-index-pages/index-as-table.md +46 -9
  129. data/docs/3-index-pages.md +73 -10
  130. data/docs/4-csv-format.md +35 -0
  131. data/docs/5-forms.md +96 -18
  132. data/docs/6-show-pages.md +13 -25
  133. data/docs/7-sidebars.md +13 -1
  134. data/docs/8-custom-actions.md +18 -1
  135. data/docs/9-batch-actions.md +9 -5
  136. data/docs/CNAME +1 -0
  137. data/docs/Gemfile +3 -0
  138. data/docs/Gemfile.lock +259 -0
  139. data/docs/_config.yml +4 -0
  140. data/docs/_includes/footer.html +8 -0
  141. data/docs/_includes/google-analytics.html +16 -0
  142. data/docs/_includes/head.html +7 -0
  143. data/docs/_includes/toc.html +98 -0
  144. data/docs/_includes/top-menu.html +17 -0
  145. data/docs/_layouts/default.html +21 -0
  146. data/docs/documentation.md +60 -0
  147. data/docs/images/activeadmin.png +0 -0
  148. data/docs/images/code-header.png +0 -0
  149. data/docs/images/divider.png +0 -0
  150. data/docs/images/features.png +0 -0
  151. data/docs/images/tidelift.svg +14 -0
  152. data/docs/index.html +226 -0
  153. data/docs/stylesheets/main.css +1205 -0
  154. data/lib/active_admin/abstract_view_factory.rb +13 -51
  155. data/lib/active_admin/application.rb +105 -138
  156. data/lib/active_admin/application_settings.rb +42 -0
  157. data/lib/active_admin/authorization_adapter.rb +4 -7
  158. data/lib/active_admin/base_controller/authorization.rb +16 -21
  159. data/lib/active_admin/base_controller/menu.rb +10 -10
  160. data/lib/active_admin/base_controller.rb +15 -11
  161. data/lib/active_admin/batch_actions/controller.rb +6 -7
  162. data/lib/active_admin/batch_actions/resource_extension.rb +15 -15
  163. data/lib/active_admin/batch_actions/views/batch_action_form.rb +4 -4
  164. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -7
  165. data/lib/active_admin/batch_actions/views/selection_cells.rb +7 -6
  166. data/lib/active_admin/batch_actions.rb +0 -1
  167. data/lib/active_admin/callbacks.rb +2 -2
  168. data/lib/active_admin/cancan_adapter.rb +1 -1
  169. data/lib/active_admin/collection_decorator.rb +31 -0
  170. data/lib/active_admin/controller_action.rb +2 -1
  171. data/lib/active_admin/csv_builder.rb +30 -20
  172. data/lib/active_admin/dependency.rb +36 -29
  173. data/lib/active_admin/deprecation.rb +0 -25
  174. data/lib/active_admin/devise.rb +9 -9
  175. data/lib/active_admin/dsl.rb +5 -18
  176. data/lib/active_admin/dynamic_setting.rb +38 -0
  177. data/lib/active_admin/dynamic_settings_node.rb +28 -0
  178. data/lib/active_admin/engine.rb +14 -7
  179. data/lib/active_admin/error.rb +6 -6
  180. data/lib/active_admin/filters/active.rb +29 -0
  181. data/lib/active_admin/filters/active_filter.rb +123 -0
  182. data/lib/active_admin/filters/active_sidebar.rb +54 -0
  183. data/lib/active_admin/filters/forms.rb +17 -10
  184. data/lib/active_admin/filters/formtastic_addons.rb +2 -7
  185. data/lib/active_admin/filters/resource_extension.rb +50 -14
  186. data/lib/active_admin/filters.rb +7 -5
  187. data/lib/active_admin/form_builder.rb +112 -67
  188. data/lib/active_admin/generators/boilerplate.rb +53 -0
  189. data/lib/active_admin/helpers/collection.rb +2 -0
  190. data/lib/active_admin/helpers/optional_display.rb +2 -2
  191. data/lib/active_admin/helpers/routes/url_helpers.rb +1 -1
  192. data/lib/active_admin/helpers/scope_chain.rb +1 -0
  193. data/lib/active_admin/inputs/datepicker_input.rb +13 -6
  194. data/lib/active_admin/inputs/filters/base/search_method_select.rb +9 -9
  195. data/lib/active_admin/inputs/filters/base.rb +3 -1
  196. data/lib/active_admin/inputs/filters/boolean_input.rb +1 -1
  197. data/lib/active_admin/inputs/filters/check_boxes_input.rb +1 -1
  198. data/lib/active_admin/inputs/filters/date_picker_input.rb +13 -0
  199. data/lib/active_admin/inputs/filters/date_range_input.rb +25 -9
  200. data/lib/active_admin/inputs/filters/select_input.rb +8 -4
  201. data/lib/active_admin/inputs/filters/text_input.rb +25 -0
  202. data/lib/active_admin/inputs.rb +2 -0
  203. data/lib/active_admin/localizers/resource_localizer.rb +35 -0
  204. data/lib/active_admin/localizers.rb +11 -0
  205. data/lib/active_admin/menu.rb +13 -15
  206. data/lib/active_admin/menu_collection.rb +0 -2
  207. data/lib/active_admin/menu_item.rb +10 -38
  208. data/lib/active_admin/namespace.rb +51 -32
  209. data/lib/active_admin/namespace_settings.rb +126 -0
  210. data/lib/active_admin/order_clause.rb +30 -8
  211. data/lib/active_admin/orm/active_record/comments/comment.rb +6 -20
  212. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +44 -21
  213. data/lib/active_admin/orm/active_record/comments/views.rb +2 -2
  214. data/lib/active_admin/orm/active_record/comments.rb +49 -29
  215. data/lib/active_admin/orm/active_record.rb +1 -1
  216. data/lib/active_admin/page.rb +24 -5
  217. data/lib/active_admin/page_controller.rb +2 -2
  218. data/lib/active_admin/page_dsl.rb +5 -1
  219. data/lib/active_admin/page_presenter.rb +2 -1
  220. data/lib/active_admin/pundit_adapter.rb +22 -9
  221. data/lib/active_admin/resource/action_items.rb +34 -12
  222. data/lib/active_admin/resource/attributes.rb +47 -0
  223. data/lib/active_admin/resource/belongs_to.rb +17 -4
  224. data/lib/active_admin/resource/controllers.rb +1 -1
  225. data/lib/active_admin/resource/menu.rb +9 -6
  226. data/lib/active_admin/resource/model.rb +15 -0
  227. data/lib/active_admin/resource/naming.rb +5 -5
  228. data/lib/active_admin/resource/ordering.rb +11 -0
  229. data/lib/active_admin/resource/page_presenters.rb +1 -1
  230. data/lib/active_admin/resource/pagination.rb +4 -0
  231. data/lib/active_admin/resource/routes.rb +56 -26
  232. data/lib/active_admin/resource/scope_to.rb +7 -7
  233. data/lib/active_admin/resource/scopes.rb +5 -3
  234. data/lib/active_admin/resource/sidebars.rb +2 -2
  235. data/lib/active_admin/resource.rb +80 -22
  236. data/lib/active_admin/resource_collection.rb +5 -3
  237. data/lib/active_admin/resource_controller/action_builder.rb +10 -0
  238. data/lib/active_admin/resource_controller/data_access.rb +56 -43
  239. data/lib/active_admin/resource_controller/decorators.rb +9 -31
  240. data/lib/active_admin/resource_controller/polymorphic_routes.rb +37 -0
  241. data/lib/active_admin/resource_controller/resource_class_methods.rb +2 -0
  242. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  243. data/lib/active_admin/resource_controller/streaming.rb +12 -5
  244. data/lib/active_admin/resource_controller.rb +26 -10
  245. data/lib/active_admin/resource_dsl.rb +67 -21
  246. data/lib/active_admin/router.rb +90 -82
  247. data/lib/active_admin/scope.rb +21 -14
  248. data/lib/active_admin/settings_node.rb +19 -0
  249. data/lib/active_admin/sidebar_section.rb +6 -12
  250. data/lib/active_admin/version.rb +1 -1
  251. data/lib/active_admin/view_factory.rb +17 -18
  252. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -2
  253. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +5 -5
  254. data/lib/active_admin/view_helpers/display_helper.rb +51 -9
  255. data/lib/active_admin/view_helpers/download_format_links_helper.rb +14 -1
  256. data/lib/active_admin/view_helpers/fields_for.rb +4 -4
  257. data/lib/active_admin/view_helpers/form_helper.rb +2 -2
  258. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +11 -4
  259. data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
  260. data/lib/active_admin/view_helpers.rb +2 -2
  261. data/lib/active_admin/views/action_items.rb +1 -1
  262. data/lib/active_admin/views/components/active_admin_form.rb +45 -13
  263. data/lib/active_admin/views/components/attributes_table.rb +11 -29
  264. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  265. data/lib/active_admin/views/components/columns.rb +12 -7
  266. data/lib/active_admin/views/components/dropdown_menu.rb +11 -13
  267. data/lib/active_admin/views/components/index_list.rb +6 -5
  268. data/lib/active_admin/views/components/menu.rb +32 -0
  269. data/lib/active_admin/views/components/menu_item.rb +58 -0
  270. data/lib/active_admin/views/components/paginated_collection.rb +52 -33
  271. data/lib/active_admin/views/components/panel.rb +2 -4
  272. data/lib/active_admin/views/components/scopes.rb +20 -12
  273. data/lib/active_admin/views/components/sidebar.rb +13 -0
  274. data/lib/active_admin/views/components/sidebar_section.rb +6 -1
  275. data/lib/active_admin/views/components/site_title.rb +6 -7
  276. data/lib/active_admin/views/components/status_tag.rb +19 -23
  277. data/lib/active_admin/views/components/table_for.rb +31 -57
  278. data/lib/active_admin/views/components/tabs.rb +17 -5
  279. data/lib/active_admin/views/footer.rb +15 -4
  280. data/lib/active_admin/views/header.rb +3 -16
  281. data/lib/active_admin/views/index_as_blog.rb +3 -4
  282. data/lib/active_admin/views/index_as_grid.rb +28 -28
  283. data/lib/active_admin/views/index_as_table.rb +76 -28
  284. data/lib/active_admin/views/pages/base.rb +45 -58
  285. data/lib/active_admin/views/pages/form.rb +5 -2
  286. data/lib/active_admin/views/pages/index.rb +15 -13
  287. data/lib/active_admin/views/pages/layout.rb +1 -1
  288. data/lib/active_admin/views/pages/show.rb +9 -3
  289. data/lib/active_admin/views/tabbed_navigation.rb +4 -59
  290. data/lib/active_admin/views/title_bar.rb +6 -6
  291. data/lib/active_admin/views.rb +1 -1
  292. data/lib/active_admin.rb +69 -67
  293. data/lib/activeadmin.rb +1 -1
  294. data/lib/generators/active_admin/assets/assets_generator.rb +3 -3
  295. data/lib/generators/active_admin/assets/templates/active_admin.js +1 -0
  296. data/lib/generators/active_admin/assets/templates/{active_admin.css.scss → active_admin.scss} +3 -3
  297. data/lib/generators/active_admin/devise/devise_generator.rb +17 -26
  298. data/lib/generators/active_admin/install/install_generator.rb +18 -8
  299. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +107 -5
  300. data/lib/generators/active_admin/install/templates/{admin_user.rb.erb → admin_users.rb.erb} +1 -3
  301. data/lib/generators/active_admin/install/templates/dashboard.rb +2 -3
  302. data/lib/generators/active_admin/install/templates/migrations/{create_active_admin_comments.rb → create_active_admin_comments.rb.erb} +2 -5
  303. data/lib/generators/active_admin/page/page_generator.rb +1 -1
  304. data/lib/generators/active_admin/page/templates/page.rb +1 -1
  305. data/lib/generators/active_admin/resource/resource_generator.rb +8 -2
  306. data/lib/generators/active_admin/resource/templates/admin.rb.erb +46 -0
  307. data/lib/generators/active_admin/webpacker/plugins/jquery.js +7 -0
  308. data/lib/generators/active_admin/webpacker/templates/active_admin.js +5 -0
  309. data/lib/generators/active_admin/webpacker/templates/active_admin.scss +17 -0
  310. data/lib/generators/active_admin/webpacker/templates/print.scss +2 -0
  311. data/lib/generators/active_admin/webpacker/webpacker_generator.rb +26 -0
  312. data/lib/ransack_ext.rb +11 -3
  313. data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
  314. data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
  315. data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
  316. data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
  317. data/vendor/assets/javascripts/jquery-ui/form-reset-mixin.js +80 -0
  318. data/vendor/assets/javascripts/jquery-ui/form.js +22 -0
  319. data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
  320. data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
  321. data/vendor/assets/javascripts/jquery-ui/labels.js +65 -0
  322. data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
  323. data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
  324. data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
  325. data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
  326. data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
  327. data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
  328. data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
  329. data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
  330. data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
  331. data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
  332. data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +291 -0
  333. data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
  334. data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
  335. data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
  336. data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
  337. data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
  338. data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
  339. data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
  340. data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
  341. metadata +182 -553
  342. data/.gitignore +0 -49
  343. data/.hound.yml +0 -11
  344. data/.travis.yml +0 -42
  345. data/.yardopts +0 -8
  346. data/Gemfile +0 -54
  347. data/Guardfile +0 -8
  348. data/Rakefile +0 -33
  349. data/activeadmin.gemspec +0 -28
  350. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  351. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  352. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  353. data/app/assets/images/active_admin/orderable.png +0 -0
  354. data/app/assets/javascripts/active_admin/application.js.coffee +0 -32
  355. data/app/assets/javascripts/active_admin/base.js.coffee +0 -14
  356. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +0 -6
  357. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +0 -7
  358. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +0 -39
  359. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +0 -36
  360. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +0 -101
  361. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +0 -19
  362. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +0 -79
  363. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +0 -37
  364. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +0 -27
  365. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +0 -68
  366. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +0 -24
  367. data/app/assets/stylesheets/active_admin/components/_popovers.scss +0 -122
  368. data/app/assets/stylesheets/active_admin/mixins/_icons.scss +0 -20
  369. data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
  370. data/cucumber.yml +0 -3
  371. data/features/action_item.feature +0 -73
  372. data/features/authorization.feature +0 -64
  373. data/features/authorization_cancan.feature +0 -52
  374. data/features/authorization_pundit.feature +0 -37
  375. data/features/belongs_to.feature +0 -66
  376. data/features/breadcrumb.feature +0 -75
  377. data/features/comments/commenting.feature +0 -171
  378. data/features/comments/viewing_index.feature +0 -19
  379. data/features/dashboard.feature +0 -16
  380. data/features/decorators.feature +0 -41
  381. data/features/development_reloading.feature +0 -30
  382. data/features/edit_page.feature +0 -117
  383. data/features/favicon.feature +0 -20
  384. data/features/first_boot.feature +0 -16
  385. data/features/global_navigation.feature +0 -29
  386. data/features/i18n.feature +0 -43
  387. data/features/index/batch_actions.feature +0 -164
  388. data/features/index/filters.feature +0 -161
  389. data/features/index/format_as_csv.feature +0 -203
  390. data/features/index/formats.feature +0 -66
  391. data/features/index/index_as_block.feature +0 -15
  392. data/features/index/index_as_blog.feature +0 -69
  393. data/features/index/index_as_grid.feature +0 -45
  394. data/features/index/index_as_table.feature +0 -291
  395. data/features/index/index_blank_slate.feature +0 -83
  396. data/features/index/index_parameters.feature +0 -75
  397. data/features/index/index_scope_to.feature +0 -56
  398. data/features/index/index_scopes.feature +0 -251
  399. data/features/index/page_title.feature +0 -41
  400. data/features/index/pagination.feature +0 -59
  401. data/features/index/switch_index_view.feature +0 -73
  402. data/features/menu.feature +0 -53
  403. data/features/new_page.feature +0 -109
  404. data/features/registering_assets.feature +0 -35
  405. data/features/registering_pages.feature +0 -148
  406. data/features/registering_resources.feature +0 -33
  407. data/features/renamed_resource.feature +0 -32
  408. data/features/root_to.feature +0 -17
  409. data/features/show/default_content.feature +0 -43
  410. data/features/show/page_title.feature +0 -58
  411. data/features/show/tabs.feature +0 -27
  412. data/features/sidebar_sections.feature +0 -210
  413. data/features/site_title.feature +0 -47
  414. data/features/specifying_actions.feature +0 -93
  415. data/features/step_definitions/action_item_steps.rb +0 -7
  416. data/features/step_definitions/action_link_steps.rb +0 -20
  417. data/features/step_definitions/additional_web_steps.rb +0 -81
  418. data/features/step_definitions/asset_steps.rb +0 -15
  419. data/features/step_definitions/attribute_steps.rb +0 -18
  420. data/features/step_definitions/batch_action_steps.rb +0 -72
  421. data/features/step_definitions/blog_steps.rb +0 -3
  422. data/features/step_definitions/breadcrumb_steps.rb +0 -3
  423. data/features/step_definitions/comment_steps.rb +0 -12
  424. data/features/step_definitions/configuration_steps.rb +0 -100
  425. data/features/step_definitions/dashboard_steps.rb +0 -15
  426. data/features/step_definitions/factory_steps.rb +0 -34
  427. data/features/step_definitions/filter_steps.rb +0 -39
  428. data/features/step_definitions/flash_steps.rb +0 -11
  429. data/features/step_definitions/format_steps.rb +0 -52
  430. data/features/step_definitions/i18n_steps.rb +0 -3
  431. data/features/step_definitions/index_scope_steps.rb +0 -21
  432. data/features/step_definitions/index_views_steps.rb +0 -3
  433. data/features/step_definitions/layout_steps.rb +0 -3
  434. data/features/step_definitions/member_link_steps.rb +0 -7
  435. data/features/step_definitions/menu_steps.rb +0 -11
  436. data/features/step_definitions/pagination_steps.rb +0 -7
  437. data/features/step_definitions/sidebar_steps.rb +0 -13
  438. data/features/step_definitions/site_title_steps.rb +0 -17
  439. data/features/step_definitions/symbol_leak_steps.rb +0 -3
  440. data/features/step_definitions/tab_steps.rb +0 -8
  441. data/features/step_definitions/table_steps.rb +0 -119
  442. data/features/step_definitions/user_steps.rb +0 -45
  443. data/features/step_definitions/web_steps.rb +0 -85
  444. data/features/sti_resource.feature +0 -65
  445. data/features/strong_parameters.feature +0 -73
  446. data/features/support/env.rb +0 -145
  447. data/features/support/paths.rb +0 -71
  448. data/features/support/selectors.rb +0 -45
  449. data/features/symbol_leak.feature +0 -35
  450. data/features/users/logging_in.feature +0 -34
  451. data/features/users/logging_out.feature +0 -13
  452. data/features/users/resetting_password.feature +0 -34
  453. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +0 -28
  454. data/lib/active_admin/event.rb +0 -33
  455. data/lib/active_admin/helpers/settings.rb +0 -115
  456. data/lib/active_admin/iconic/icons.rb +0 -142
  457. data/lib/active_admin/iconic.rb +0 -53
  458. data/lib/active_admin/view_helpers/icon_helper.rb +0 -12
  459. data/lib/active_admin/views/components/action_list_popover.rb +0 -29
  460. data/lib/active_admin/views/components/popover.rb +0 -27
  461. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +0 -1
  462. data/lib/generators/active_admin/resource/templates/admin.rb +0 -18
  463. data/script/local +0 -44
  464. data/script/travis_cache +0 -107
  465. data/script/use_rails +0 -53
  466. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +0 -50
  467. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +0 -25
  468. data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +0 -82
  469. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +0 -34
  470. data/spec/javascripts/fixtures/checkboxes.html +0 -9
  471. data/spec/javascripts/fixtures/flashes.html +0 -2
  472. data/spec/javascripts/fixtures/table_checkboxes.html +0 -17
  473. data/spec/javascripts/helpers/SpecHelper.js +0 -3
  474. data/spec/javascripts/support/jasmine.yml +0 -74
  475. data/spec/javascripts/support/jasmine_config.rb +0 -23
  476. data/spec/javascripts/support/jasmine_runner.rb +0 -32
  477. data/spec/rails_helper.rb +0 -154
  478. data/spec/requests/default_namespace_spec.rb +0 -61
  479. data/spec/requests/javascript_spec.rb +0 -20
  480. data/spec/requests/memory_spec.rb +0 -23
  481. data/spec/requests/stylesheets_spec.rb +0 -18
  482. data/spec/spec_helper.rb +0 -17
  483. data/spec/support/deferred_garbage_collection.rb +0 -19
  484. data/spec/support/detect_rails_version.rb +0 -34
  485. data/spec/support/integration_example_group.rb +0 -31
  486. data/spec/support/jslint.yml +0 -80
  487. data/spec/support/rails_template.rb +0 -138
  488. data/spec/support/rails_template_with_data.rb +0 -59
  489. data/spec/support/templates/admin/stores.rb +0 -9
  490. data/spec/support/templates/cucumber.rb +0 -24
  491. data/spec/support/templates/cucumber_with_reloading.rb +0 -5
  492. data/spec/support/templates/en.yml +0 -8
  493. data/spec/support/templates/policies/active_admin/comment_policy.rb +0 -9
  494. data/spec/support/templates/policies/active_admin/page_policy.rb +0 -18
  495. data/spec/support/templates/policies/admin_user_policy.rb +0 -11
  496. data/spec/support/templates/policies/application_policy.rb +0 -45
  497. data/spec/support/templates/policies/category_policy.rb +0 -7
  498. data/spec/support/templates/policies/post_policy.rb +0 -15
  499. data/spec/support/templates/policies/store_policy.rb +0 -11
  500. data/spec/support/templates/policies/user_policy.rb +0 -11
  501. data/spec/support/templates/post_decorator.rb +0 -11
  502. data/spec/unit/abstract_view_factory_spec.rb +0 -79
  503. data/spec/unit/action_builder_spec.rb +0 -132
  504. data/spec/unit/active_admin_spec.rb +0 -11
  505. data/spec/unit/application_spec.rb +0 -140
  506. data/spec/unit/asset_registration_spec.rb +0 -52
  507. data/spec/unit/authorization/authorization_adapter_spec.rb +0 -61
  508. data/spec/unit/authorization/controller_authorization_spec.rb +0 -39
  509. data/spec/unit/authorization/index_overriding_spec.rb +0 -22
  510. data/spec/unit/auto_link_spec.rb +0 -69
  511. data/spec/unit/batch_actions/resource_spec.rb +0 -92
  512. data/spec/unit/batch_actions/settings_spec.rb +0 -61
  513. data/spec/unit/belongs_to_spec.rb +0 -51
  514. data/spec/unit/cancan_adapter_spec.rb +0 -43
  515. data/spec/unit/comments_spec.rb +0 -166
  516. data/spec/unit/component_spec.rb +0 -18
  517. data/spec/unit/config_shared_examples.rb +0 -59
  518. data/spec/unit/controller_filters_spec.rb +0 -44
  519. data/spec/unit/csv_builder_spec.rb +0 -244
  520. data/spec/unit/dependency_spec.rb +0 -135
  521. data/spec/unit/devise_spec.rb +0 -96
  522. data/spec/unit/dsl_spec.rb +0 -122
  523. data/spec/unit/event_spec.rb +0 -47
  524. data/spec/unit/filters/filter_form_builder_spec.rb +0 -433
  525. data/spec/unit/filters/resource_spec.rb +0 -121
  526. data/spec/unit/form_builder_spec.rb +0 -752
  527. data/spec/unit/generators/install_spec.rb +0 -23
  528. data/spec/unit/helpers/collection_spec.rb +0 -65
  529. data/spec/unit/helpers/scope_chain_spec.rb +0 -36
  530. data/spec/unit/helpers/settings_spec.rb +0 -30
  531. data/spec/unit/i18n_spec.rb +0 -12
  532. data/spec/unit/menu_collection_spec.rb +0 -62
  533. data/spec/unit/menu_item_spec.rb +0 -143
  534. data/spec/unit/menu_spec.rb +0 -71
  535. data/spec/unit/namespace/authorization_spec.rb +0 -27
  536. data/spec/unit/namespace/register_page_spec.rb +0 -74
  537. data/spec/unit/namespace/register_resource_spec.rb +0 -161
  538. data/spec/unit/namespace_spec.rb +0 -103
  539. data/spec/unit/order_clause_spec.rb +0 -81
  540. data/spec/unit/page_controller_spec.rb +0 -5
  541. data/spec/unit/page_spec.rb +0 -78
  542. data/spec/unit/pretty_format_spec.rb +0 -63
  543. data/spec/unit/pundit_adapter_spec.rb +0 -98
  544. data/spec/unit/resource/action_items_spec.rb +0 -65
  545. data/spec/unit/resource/includes_spec.rb +0 -21
  546. data/spec/unit/resource/menu_spec.rb +0 -18
  547. data/spec/unit/resource/naming_spec.rb +0 -122
  548. data/spec/unit/resource/page_presenters_spec.rb +0 -44
  549. data/spec/unit/resource/pagination_spec.rb +0 -38
  550. data/spec/unit/resource/routes_spec.rb +0 -73
  551. data/spec/unit/resource/scopes_spec.rb +0 -50
  552. data/spec/unit/resource/sidebars_spec.rb +0 -43
  553. data/spec/unit/resource_collection_spec.rb +0 -158
  554. data/spec/unit/resource_controller/data_access_spec.rb +0 -140
  555. data/spec/unit/resource_controller/decorators_spec.rb +0 -83
  556. data/spec/unit/resource_controller/sidebars_spec.rb +0 -45
  557. data/spec/unit/resource_controller_spec.rb +0 -269
  558. data/spec/unit/resource_registration_spec.rb +0 -56
  559. data/spec/unit/resource_spec.rb +0 -278
  560. data/spec/unit/routing_spec.rb +0 -180
  561. data/spec/unit/scope_spec.rb +0 -190
  562. data/spec/unit/settings_spec.rb +0 -118
  563. data/spec/unit/view_factory_spec.rb +0 -21
  564. data/spec/unit/view_helpers/breadcrumbs_spec.rb +0 -217
  565. data/spec/unit/view_helpers/display_name_spec.rb +0 -69
  566. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +0 -39
  567. data/spec/unit/view_helpers/fields_for_spec.rb +0 -50
  568. data/spec/unit/view_helpers/flash_helper_spec.rb +0 -25
  569. data/spec/unit/view_helpers/form_helper_spec.rb +0 -43
  570. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -139
  571. data/spec/unit/views/components/action_list_popover_spec.rb +0 -40
  572. data/spec/unit/views/components/attributes_table_spec.rb +0 -272
  573. data/spec/unit/views/components/batch_action_popover_spec.rb +0 -47
  574. data/spec/unit/views/components/blank_slate_spec.rb +0 -27
  575. data/spec/unit/views/components/columns_spec.rb +0 -172
  576. data/spec/unit/views/components/index_list_spec.rb +0 -35
  577. data/spec/unit/views/components/index_table_for_spec.rb +0 -46
  578. data/spec/unit/views/components/paginated_collection_spec.rb +0 -236
  579. data/spec/unit/views/components/panel_spec.rb +0 -62
  580. data/spec/unit/views/components/popover_spec.rb +0 -33
  581. data/spec/unit/views/components/sidebar_section_spec.rb +0 -47
  582. data/spec/unit/views/components/site_title_spec.rb +0 -78
  583. data/spec/unit/views/components/status_tag_spec.rb +0 -235
  584. data/spec/unit/views/components/table_for_spec.rb +0 -384
  585. data/spec/unit/views/components/tabs_spec.rb +0 -39
  586. data/spec/unit/views/components/unsupported_browser_spec.rb +0 -47
  587. data/spec/unit/views/pages/form_spec.rb +0 -42
  588. data/spec/unit/views/pages/index_spec.rb +0 -60
  589. data/spec/unit/views/pages/layout_spec.rb +0 -59
  590. data/spec/unit/views/pages/show_spec.rb +0 -33
  591. data/spec/unit/views/tabbed_navigation_spec.rb +0 -158
  592. data/tasks/docs.rake +0 -37
  593. data/tasks/parallel_tests.rake +0 -66
  594. data/tasks/test.rake +0 -83
  595. data/tasks/yard.rake +0 -9
@@ -1,244 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::CSVBuilder do
4
-
5
- describe '.default_for_resource using Post' do
6
- let(:csv_builder) { ActiveAdmin::CSVBuilder.default_for_resource(Post).tap(&:exec_columns) }
7
-
8
- it 'returns a default csv_builder for Post' do
9
- expect(csv_builder).to be_a(ActiveAdmin::CSVBuilder)
10
- end
11
-
12
- it 'defines Id as the first column' do
13
- expect(csv_builder.columns.first.name).to eq 'Id'
14
- expect(csv_builder.columns.first.data).to eq :id
15
- end
16
-
17
- it "has Post's content_columns" do
18
- csv_builder.columns[1..-1].each_with_index do |column, index|
19
- expect(column.name).to eq Post.content_columns[index].name.humanize
20
- expect(column.data).to eq Post.content_columns[index].name.to_sym
21
- end
22
- end
23
-
24
- context 'when column has a localized name' do
25
- let(:localized_name) { 'Titulo' }
26
-
27
- before do
28
- allow(Post).to receive(:human_attribute_name).and_call_original
29
- allow(Post).to receive(:human_attribute_name).with(:title){ localized_name }
30
- end
31
-
32
- it 'gets name from I18n' do
33
- title_index = Post.content_columns.map(&:name).index('title') + 1 # First col is always id
34
- expect(csv_builder.columns[title_index].name).to eq localized_name
35
- end
36
- end
37
- end
38
-
39
- context 'when empty' do
40
- let(:builder){ ActiveAdmin::CSVBuilder.new.tap(&:exec_columns) }
41
-
42
- it "should have no columns" do
43
- expect(builder.columns).to eq []
44
- end
45
- end
46
-
47
- context "with a symbol column (:title)" do
48
- let(:builder) do
49
- ActiveAdmin::CSVBuilder.new do
50
- column :title
51
- end.tap(&:exec_columns)
52
- end
53
-
54
- it "should have one column" do
55
- expect(builder.columns.size).to eq 1
56
- end
57
-
58
- describe "the column" do
59
- let(:column){ builder.columns.first }
60
-
61
- it "should have a name of 'Title'" do
62
- expect(column.name).to eq "Title"
63
- end
64
-
65
- it "should have the data :title" do
66
- expect(column.data).to eq :title
67
- end
68
- end
69
- end
70
-
71
- context "with a block and title" do
72
- let(:builder) do
73
- ActiveAdmin::CSVBuilder.new do
74
- column "My title" do
75
- # nothing
76
- end
77
- end.tap(&:exec_columns)
78
- end
79
-
80
- it "should have one column" do
81
- expect(builder.columns.size).to eq 1
82
- end
83
-
84
- describe "the column" do
85
- let(:column){ builder.columns.first }
86
-
87
- it "should have a name of 'My title'" do
88
- expect(column.name).to eq "My title"
89
- end
90
-
91
- it "should have the data :title" do
92
- expect(column.data).to be_an_instance_of(Proc)
93
- end
94
- end
95
- end
96
-
97
- context "with a humanize_name column option" do
98
- context "with symbol column name" do
99
- let(:builder) do
100
- ActiveAdmin::CSVBuilder.new do
101
- column :my_title, humanize_name: false
102
- end.tap(&:exec_columns)
103
- end
104
-
105
- describe "the column" do
106
- let(:column){ builder.columns.first }
107
-
108
- it "should have a name of 'my_title'" do
109
- expect(column.name).to eq "my_title"
110
- end
111
- end
112
- end
113
-
114
- context "with string column name" do
115
- let(:builder) do
116
- ActiveAdmin::CSVBuilder.new do
117
- column "my_title", humanize_name: false
118
- end.tap(&:exec_columns)
119
- end
120
-
121
- describe "the column" do
122
- let(:column){ builder.columns.first }
123
-
124
- it "should have a name of 'my_title'" do
125
- expect(column.name).to eq "my_title"
126
- end
127
- end
128
- end
129
- end
130
-
131
- context "with a separator" do
132
- let(:builder) do
133
- ActiveAdmin::CSVBuilder.new(col_sep: ";").tap(&:exec_columns)
134
- end
135
-
136
- it "should have proper separator" do
137
- expect(builder.options).to eq({col_sep: ";"})
138
- end
139
- end
140
-
141
- context "with humanize_name option" do
142
- let(:builder) do
143
- ActiveAdmin::CSVBuilder.new(humanize_name: false) do
144
- column :my_title
145
- end.tap(&:exec_columns)
146
- end
147
-
148
- describe "the column" do
149
- let(:column){ builder.columns.first }
150
-
151
- it "should have humanize_name option set" do
152
- expect(column.options).to eq humanize_name: false
153
- end
154
-
155
- it "should have a name of 'my_title'" do
156
- expect(column.name).to eq "my_title"
157
- end
158
- end
159
- end
160
-
161
- context "with csv_options" do
162
- let(:builder) do
163
- ActiveAdmin::CSVBuilder.new(force_quotes: true).tap(&:exec_columns)
164
- end
165
-
166
- it "should have proper separator" do
167
- expect(builder.options).to eq({force_quotes: true})
168
- end
169
- end
170
-
171
- context "with access to the controller" do
172
- let(:dummy_view_context) { double(controller: dummy_controller) }
173
- let(:dummy_controller) { double(names: %w(title summary updated_at created_at))}
174
- let(:builder) do
175
- ActiveAdmin::CSVBuilder.new do
176
- column "id"
177
- controller.names.each do |name|
178
- column(name)
179
- end
180
- end.tap{ |b| b.exec_columns(dummy_view_context) }
181
- end
182
-
183
- it "should build columns provided by the controller" do
184
- expect(builder.columns.map(&:data)).to match_array([:id, :title, :summary, :updated_at, :created_at])
185
- end
186
- end
187
-
188
- context "build csv using the supplied order" do
189
- before do
190
- @post1 = Post.create!(title: "Hello1", published_at: Date.today - 2.day )
191
- @post2 = Post.create!(title: "Hello2", published_at: Date.today - 1.day )
192
- end
193
- let(:dummy_controller) {
194
- class DummyController
195
- def find_collection(*)
196
- collection
197
- end
198
-
199
- def collection
200
- Post.order('published_at DESC')
201
- end
202
-
203
- def apply_decorator(resource)
204
- resource
205
- end
206
-
207
- def view_context
208
- end
209
- end
210
- DummyController.new
211
- }
212
- let(:builder) do
213
- ActiveAdmin::CSVBuilder.new do
214
- column "id"
215
- column "title"
216
- column "published_at"
217
- end
218
- end
219
-
220
- it "should generate data with the supplied order" do
221
- expect(builder).to receive(:build_row).and_return([]).once.ordered { |post| expect(post.id).to eq @post2.id }
222
- expect(builder).to receive(:build_row).and_return([]).once.ordered { |post| expect(post.id).to eq @post1.id }
223
- builder.build dummy_controller, []
224
- end
225
-
226
- it "should generate data ignoring pagination" do
227
- expect(dummy_controller).to receive(:find_collection).
228
- with(except: :pagination).once.
229
- and_call_original
230
- expect(builder).to receive(:build_row).and_return([]).twice
231
- builder.build dummy_controller, []
232
- end
233
-
234
- end
235
-
236
- skip '#exec_columns'
237
-
238
- skip '#build_row' do
239
- it 'renders non-strings'
240
- it 'encodes values correctly'
241
- it 'passes custom encoding options to String#encode!'
242
- end
243
-
244
- end
@@ -1,135 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Dependency do
4
-
5
- k = ActiveAdmin::Dependency
6
-
7
- describe 'method_missing' do
8
- before do
9
- allow(Gem).to receive(:loaded_specs)
10
- .and_return 'foo' => Gem::Specification.new('foo', '1.2.3')
11
- end
12
-
13
- it 'returns a Matcher' do
14
- expect(k.foo).to be_a ActiveAdmin::Dependency::Matcher
15
- expect(k.foo.inspect).to eq '<ActiveAdmin::Dependency::Matcher for foo 1.2.3>'
16
- expect(k.bar.inspect).to eq '<ActiveAdmin::Dependency::Matcher for (missing)>'
17
- end
18
-
19
- describe '`?`' do
20
- it 'base' do
21
- expect(k.foo?).to eq true
22
- expect(k.bar?).to eq false
23
- end
24
- it '=' do
25
- expect(k.foo? '= 1.2.3').to eq true
26
- expect(k.foo? '= 1' ).to eq false
27
- end
28
- it '>' do
29
- expect(k.foo? '> 1').to eq true
30
- expect(k.foo? '> 2').to eq false
31
- end
32
- it '<' do
33
- expect(k.foo? '< 2').to eq true
34
- expect(k.foo? '< 1').to eq false
35
- end
36
- it '>=' do
37
- expect(k.foo? '>= 1.2.3').to eq true
38
- expect(k.foo? '>= 1.2.2').to eq true
39
- expect(k.foo? '>= 1.2.4').to eq false
40
- end
41
- it '<=' do
42
- expect(k.foo? '<= 1.2.3').to eq true
43
- expect(k.foo? '<= 1.2.4').to eq true
44
- expect(k.foo? '<= 1.2.2').to eq false
45
- end
46
- it '~>' do
47
- expect(k.foo? '~> 1.2.0').to eq true
48
- expect(k.foo? '~> 1.1' ).to eq true
49
- expect(k.foo? '~> 1.2.4').to eq false
50
- end
51
- end
52
-
53
- describe '`!`' do
54
- it 'raises an error if requirement not met' do
55
- expect{ k.foo! '5' }.to raise_error ActiveAdmin::DependencyError,
56
- 'You provided foo 1.2.3 but we need: 5.'
57
- end
58
- it 'accepts multiple arguments' do
59
- expect{ k.foo! '> 1', '< 1.2' }.to raise_error ActiveAdmin::DependencyError,
60
- 'You provided foo 1.2.3 but we need: > 1, < 1.2.'
61
- end
62
- it 'raises an error if not provided' do
63
- expect{ k.bar! }.to raise_error ActiveAdmin::DependencyError,
64
- 'To use bar you need to specify it in your Gemfile.'
65
- end
66
- end
67
- end
68
-
69
- describe '[]' do
70
- before do
71
- allow(Gem).to receive(:loaded_specs)
72
- .and_return 'a-b' => Gem::Specification.new('a-b', '1.2.3')
73
- end
74
-
75
- it 'allows access to gems with an arbitrary name' do
76
- expect(k['a-b']).to be_a ActiveAdmin::Dependency::Matcher
77
- expect(k['a-b'].inspect).to eq '<ActiveAdmin::Dependency::Matcher for a-b 1.2.3>'
78
- expect(k['c-d'].inspect).to eq '<ActiveAdmin::Dependency::Matcher for (missing)>'
79
- end
80
-
81
- # Note: more extensive tests for match? and match! are above.
82
-
83
- it 'match?' do
84
- expect(k['a-b'].match? ).to eq true
85
- expect(k['a-b'].match? '1.2.3').to eq true
86
- expect(k['b-c'].match? ).to eq false
87
- end
88
-
89
- it 'match!' do
90
- expect(k['a-b'].match! ).to eq nil
91
- expect(k['a-b'].match! '1.2.3').to eq nil
92
-
93
- expect{ k['a-b'].match! '2.5' }.to raise_error ActiveAdmin::DependencyError,
94
- 'You provided a-b 1.2.3 but we need: 2.5.'
95
-
96
- expect{ k['b-c'].match! }.to raise_error ActiveAdmin::DependencyError,
97
- 'To use b-c you need to specify it in your Gemfile.'
98
- end
99
-
100
- # Note: Ruby comparison operators are separate from the `foo? '> 1'` syntax
101
-
102
- describe 'Ruby comparison syntax' do
103
-
104
- it '==' do
105
- expect(k['a-b'] == '1.2.3').to eq true
106
- expect(k['a-b'] == '1.2' ).to eq false
107
- expect(k['a-b'] == 1 ).to eq false
108
- end
109
- it '>' do
110
- expect(k['a-b'] > 1).to eq true
111
- expect(k['a-b'] > 2).to eq false
112
- end
113
- it '<' do
114
- expect(k['a-b'] < 2).to eq true
115
- expect(k['a-b'] < 1).to eq false
116
- end
117
- it '>=' do
118
- expect(k['a-b'] >= '1.2.3').to eq true
119
- expect(k['a-b'] >= '1.2.2').to eq true
120
- expect(k['a-b'] >= '1.2.4').to eq false
121
- end
122
- it '<=' do
123
- expect(k['a-b'] <= '1.2.3').to eq true
124
- expect(k['a-b'] <= '1.2.4').to eq true
125
- expect(k['a-b'] <= '1.2.2').to eq false
126
- end
127
-
128
- it 'throws a custom error if the gem is missing' do
129
- expect{ k['b-c'] < 23 }.to raise_error ActiveAdmin::DependencyError,
130
- 'To use b-c you need to specify it in your Gemfile.'
131
- end
132
- end
133
- end
134
-
135
- end
@@ -1,96 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::Devise::Controller do
4
-
5
- let(:controller_class) do
6
- klass = Class.new do
7
- def self.layout(*); end
8
- def self.helper(*); end
9
- end
10
- klass.send(:include, ActiveAdmin::Devise::Controller)
11
- klass
12
- end
13
-
14
- let(:controller) { controller_class.new }
15
-
16
- context 'with a RAILS_RELATIVE_URL_ROOT set' do
17
-
18
- before { Rails.configuration.action_controller[:relative_url_root] = '/foo' }
19
-
20
- it "should set the root path to the default namespace" do
21
- expect(controller.root_path).to eq "/foo/admin"
22
- end
23
-
24
- it "should set the root path to '/' when no default namespace" do
25
- allow(ActiveAdmin.application).to receive(:default_namespace).and_return(false)
26
- expect(controller.root_path).to eq "/foo/"
27
- end
28
-
29
- end
30
-
31
- context 'without a RAILS_RELATIVE_URL_ROOT set' do
32
-
33
- before { Rails.configuration.action_controller[:relative_url_root] = nil }
34
-
35
- it "should set the root path to the default namespace" do
36
- expect(controller.root_path).to eq "/admin"
37
- end
38
-
39
- it "should set the root path to '/' when no default namespace" do
40
- allow(ActiveAdmin.application).to receive(:default_namespace).and_return(false)
41
- expect(controller.root_path).to eq "/"
42
- end
43
-
44
- end
45
-
46
- context "within a scoped route" do
47
-
48
- SCOPE = '/aa_scoped'
49
-
50
- before do
51
- # Remove existing routes
52
- routes = Rails.application.routes
53
- routes.clear!
54
-
55
- # Add scoped routes
56
- routes.draw do
57
- scope path: SCOPE do
58
- ActiveAdmin.routes(self)
59
- devise_for :admin_users, ActiveAdmin::Devise.config
60
- end
61
- end
62
- end
63
-
64
- after do
65
- # Resume default routes
66
- reload_routes!
67
- end
68
-
69
- it "should include scope path in root_path" do
70
- expect(controller.root_path).to eq "#{SCOPE}/admin"
71
- end
72
-
73
- end
74
-
75
- describe "#config" do
76
- let(:config) { ActiveAdmin::Devise.config }
77
-
78
- describe ":sign_out_via option" do
79
- it "should contain the application.logout_link_method" do
80
- expect(::Devise).to receive(:sign_out_via).and_return(:delete)
81
- expect(ActiveAdmin.application).to receive(:logout_link_method).and_return(:get)
82
-
83
- expect(config[:sign_out_via]).to include(:get)
84
- end
85
-
86
- it "should contain Devise's logout_via_method(s)" do
87
- expect(::Devise).to receive(:sign_out_via).and_return([:delete, :post])
88
- expect(ActiveAdmin.application).to receive(:logout_link_method).and_return(:get)
89
-
90
- expect(config[:sign_out_via]).to eq [:delete, :post, :get]
91
- end
92
-
93
- end # describe ":sign_out_via option"
94
- end # describe "#config"
95
-
96
- end
@@ -1,122 +0,0 @@
1
- require 'rails_helper'
2
-
3
-
4
- module MockModuleToInclude
5
- def self.included(dsl)
6
- end
7
- end
8
-
9
- describe ActiveAdmin::DSL do
10
-
11
- let(:application) { ActiveAdmin::Application.new }
12
- let(:namespace) { ActiveAdmin::Namespace.new application, :admin }
13
- let(:resource_config) { ActiveAdmin::Resource.new namespace, Post }
14
- let(:dsl){ ActiveAdmin::DSL.new(resource_config) }
15
-
16
- describe "#include" do
17
-
18
- it "should call the included class method on the module that is included" do
19
- expect(MockModuleToInclude).to receive(:included).with(dsl)
20
- dsl.run_registration_block do
21
- include MockModuleToInclude
22
- end
23
- end
24
-
25
- end
26
-
27
-
28
- describe '#action_item' do
29
- before do
30
- @default_items_count = resource_config.action_items.size
31
-
32
- dsl.run_registration_block do
33
- action_item :awesome, only: :show do
34
- "Awesome ActionItem"
35
- end
36
- end
37
- end
38
-
39
- it "adds action_item to the action_items of config" do
40
- expect(resource_config.action_items.size).to eq(@default_items_count + 1)
41
- end
42
-
43
- context 'DEPRECATED: when used without a name' do
44
- it "is configured for only the show action" do
45
- expect(ActiveAdmin::Deprecation).to receive(:warn).with(instance_of(String))
46
-
47
- dsl.run_registration_block do
48
- action_item only: :edit do
49
- "Awesome ActionItem"
50
- end
51
- end
52
-
53
- item = resource_config.action_items.last
54
- expect(item.display_on?(:edit)).to be true
55
- expect(item.display_on?(:index)).to be false
56
- end
57
- end
58
- end
59
-
60
- describe "#menu" do
61
-
62
- it "should set the menu_item_options on the configuration" do
63
- expect(resource_config).to receive(:menu_item_options=).with({parent: "Admin"})
64
- dsl.run_registration_block do
65
- menu parent: "Admin"
66
- end
67
- end
68
-
69
- end
70
-
71
- describe "#navigation_menu" do
72
-
73
- it "should set the navigation_menu_name on the configuration" do
74
- expect(resource_config).to receive(:navigation_menu_name=).with(:admin)
75
- dsl.run_registration_block do
76
- navigation_menu :admin
77
- end
78
- end
79
-
80
- it "should accept a block" do
81
- dsl = ActiveAdmin::DSL.new(resource_config)
82
- dsl.run_registration_block do
83
- navigation_menu { :dynamic_menu }
84
- end
85
- expect(resource_config.navigation_menu_name).to eq :dynamic_menu
86
- end
87
-
88
- end
89
-
90
- describe "#sidebar" do
91
-
92
- before do
93
- dsl.config.sidebar_sections << ActiveAdmin::SidebarSection.new(:email)
94
- end
95
-
96
- it "add sidebar_section to the sidebar_sections of config" do
97
- dsl.run_registration_block do
98
- sidebar :help
99
- end
100
- expect(dsl.config.sidebar_sections.map(&:name)).to match_array([:filters, :email, :help])
101
- end
102
-
103
- end
104
-
105
- describe "#batch_action" do
106
- it "should add a batch action by symbol" do
107
- dsl.run_registration_block do
108
- config.batch_actions = true
109
- batch_action :foo
110
- end
111
- expect(resource_config.batch_actions.map(&:sym)).to eq [:foo, :destroy]
112
- end
113
-
114
- it "should add a batch action by title" do
115
- dsl.run_registration_block do
116
- config.batch_actions = true
117
- batch_action "foo bar"
118
- end
119
- expect(resource_config.batch_actions.map(&:sym)).to eq [:foo_bar, :destroy]
120
- end
121
- end
122
- end
@@ -1,47 +0,0 @@
1
- require 'rails_helper'
2
- require 'active_admin/event'
3
-
4
- describe ActiveAdmin::EventDispatcher do
5
-
6
- let(:test_event){ 'active_admin.test_event' }
7
- let(:dispatcher){ ActiveAdmin::EventDispatcher.new }
8
-
9
- it "should add a subscriber for an event" do
10
- expect(dispatcher.subscribers(test_event).size).to eq 0
11
- dispatcher.subscribe(test_event){ true }
12
- expect(dispatcher.subscribers(test_event).size).to eq 1
13
- end
14
-
15
- it "should add a subscriber for multiple events" do
16
- dispatcher.subscribe(test_event, test_event + "1"){ true }
17
- expect(dispatcher.subscribers(test_event).size).to eq 1
18
- expect(dispatcher.subscribers(test_event + "1").size).to eq 1
19
- end
20
-
21
- it "should call the dispatch block with no arguments" do
22
- dispatcher.subscribe(test_event){ raise StandardError, "From Event Handler" }
23
- expect {
24
- dispatcher.dispatch(test_event)
25
- }.to raise_error(StandardError, "From Event Handler")
26
- end
27
-
28
- it "should call the dispatch block with one argument" do
29
- arg = nil
30
- dispatcher.subscribe(test_event){|passed_in| arg = passed_in }
31
- dispatcher.dispatch(test_event, "My Arg")
32
- expect(arg).to eq "My Arg"
33
- end
34
-
35
- it "should clear all subscribers" do
36
- dispatcher.subscribe(test_event){ false }
37
- dispatcher.subscribe(test_event + "_2"){ false }
38
- dispatcher.clear_all_subscribers!
39
- expect(dispatcher.subscribers(test_event).size).to eq 0
40
- expect(dispatcher.subscribers(test_event + "_2").size).to eq 0
41
- end
42
-
43
- it "should have a dispatcher available from ActiveAdmin::Event" do
44
- expect(ActiveAdmin::Event).to be_an_instance_of(ActiveAdmin::EventDispatcher)
45
- end
46
-
47
- end