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,79 +0,0 @@
1
- require 'rails_helper'
2
-
3
- require 'active_admin/abstract_view_factory'
4
-
5
- describe ActiveAdmin::AbstractViewFactory do
6
-
7
- let(:view_factory){ ActiveAdmin::AbstractViewFactory.new }
8
- let(:view){ Class.new }
9
-
10
- describe "registering a new view key" do
11
- before do
12
- view_factory.register my_new_view_class: view
13
- end
14
-
15
- it "should respond to :my_new_view_class" do
16
- expect(view_factory.respond_to? :my_new_view_class).to be true
17
- end
18
-
19
- it "should respond to :my_new_view_class=" do
20
- expect(view_factory.respond_to? :my_new_view_class=).to be true
21
- end
22
-
23
- it "should generate a getter method" do
24
- expect(view_factory.my_new_view_class).to eq view
25
- end
26
-
27
- it "should be settable view a setter method" do
28
- view_factory.my_new_view_class = "Some Obj"
29
- expect(view_factory.my_new_view_class).to eq "Some Obj"
30
- end
31
- end
32
-
33
- describe "array syntax access" do
34
- before do
35
- view_factory.register my_new_view_class: view
36
- end
37
-
38
- it "should be available through array syntax" do
39
- expect(view_factory[:my_new_view_class]).to eq view
40
- end
41
-
42
- it "should be settable through array syntax" do
43
- view_factory[:my_new_view_class] = "My New View Class"
44
- expect(view_factory[:my_new_view_class]).to eq "My New View Class"
45
- end
46
- end
47
-
48
- describe "registering default views" do
49
- before do
50
- ActiveAdmin::AbstractViewFactory.register my_default_view_class: view
51
- end
52
- it "should generate a getter method" do
53
- expect(view_factory.my_default_view_class).to eq view
54
- end
55
- it "should be settable view a setter method and not change default" do
56
- view_factory.my_default_view_class = "Some Obj"
57
- expect(view_factory.my_default_view_class).to eq "Some Obj"
58
- expect(view_factory.default_for(:my_default_view_class)).to eq view
59
- end
60
- end
61
-
62
- describe "subclassing the ViewFactory" do
63
- let(:subclass) do
64
- ActiveAdmin::AbstractViewFactory.register my_subclassed_view: "From Parent"
65
- Class.new(ActiveAdmin::AbstractViewFactory) do
66
- def my_subclassed_view
67
- "From Subclass"
68
- end
69
- end
70
- end
71
-
72
- it "should use the subclass implementation" do
73
- factory = subclass.new
74
- expect(factory.my_subclassed_view).to eq "From Subclass"
75
- end
76
- end
77
-
78
-
79
- end
@@ -1,132 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe 'defining new actions from registration blocks' do
4
-
5
- let(:controller){ Admin::PostsController }
6
-
7
- describe "generating a new member action" do
8
- before do
9
- action!
10
- reload_routes!
11
- end
12
-
13
- after(:each) do
14
- controller.clear_member_actions!
15
- end
16
-
17
- context "with a block" do
18
- let(:action!) do
19
- ActiveAdmin.register Post do
20
- member_action :comment do
21
- # Do nothing
22
- end
23
- end
24
- end
25
-
26
- it "should create a new public instance method" do
27
- expect(controller.public_instance_methods.collect(&:to_s)).to include("comment")
28
- end
29
- it "should add itself to the member actions config" do
30
- expect(controller.active_admin_config.member_actions.size).to eq 1
31
- end
32
- it "should create a new named route" do
33
- expect(Rails.application.routes.url_helpers.methods.collect(&:to_s)).to include("comment_admin_post_path")
34
- end
35
- end
36
-
37
- context "without a block" do
38
- let(:action!) do
39
- ActiveAdmin.register Post do
40
- member_action :comment
41
- end
42
- end
43
- it "should still generate a new empty action" do
44
- expect(controller.public_instance_methods.collect(&:to_s)).to include("comment")
45
- end
46
- end
47
-
48
- context "with :title" do
49
- let(:action!) do
50
- ActiveAdmin.register Post do
51
- member_action :comment, title: "My Awesome Comment"
52
- end
53
- end
54
-
55
- subject { find_before_filter controller, :comment }
56
-
57
- it { is_expected.to set_page_title_to "My Awesome Comment", for: controller }
58
- end
59
- end
60
-
61
- describe "generate a new collection action" do
62
- before do
63
- action!
64
- reload_routes!
65
- end
66
- after(:each) do
67
- controller.clear_collection_actions!
68
- end
69
-
70
- context "with a block" do
71
- let(:action!) do
72
- ActiveAdmin.register Post do
73
- collection_action :comments do
74
- # Do nothing
75
- end
76
- end
77
- end
78
- it "should create a new public instance method" do
79
- expect(controller.public_instance_methods.collect(&:to_s)).to include("comments")
80
- end
81
- it "should add itself to the member actions config" do
82
- expect(controller.active_admin_config.collection_actions.size).to eq 1
83
- end
84
- it "should create a new named route" do
85
- expect(Rails.application.routes.url_helpers.methods.collect(&:to_s)).to include("comments_admin_posts_path")
86
- end
87
- end
88
- context "without a block" do
89
- let(:action!) do
90
- ActiveAdmin.register Post do
91
- collection_action :comments
92
- end
93
- end
94
- it "should still generate a new empty action" do
95
- expect(controller.public_instance_methods.collect(&:to_s)).to include("comments")
96
- end
97
- end
98
- context "with :title" do
99
- let(:action!) do
100
- ActiveAdmin.register Post do
101
- collection_action :comments, title: "My Awesome Comments"
102
- end
103
- end
104
-
105
- subject { find_before_filter controller, :comments }
106
-
107
- it { is_expected.to set_page_title_to "My Awesome Comments", for: controller }
108
- end
109
- end
110
-
111
- def find_before_filter(controller, action)
112
- finder = if ActiveAdmin::Dependency.rails? '>= 4.1.0'
113
- ->c { c.kind == :before && c.instance_variable_get(:@if) == ["action_name == '#{action}'"] }
114
- else
115
- ->c { c.kind == :before && c.options[:only] == [action] }
116
- end
117
-
118
- controller._process_action_callbacks.detect &finder
119
- end
120
-
121
- RSpec::Matchers.define :set_page_title_to do |expected, options|
122
- match do |filter|
123
- filter.raw_filter.call
124
- @actual = options[:for].instance_variable_get(:@page_title)
125
- expect(@actual).to eq expected
126
- end
127
-
128
- failure_message do |filter|
129
- message = "expected before_filter to set the @page_title to '#{expected}', but was '#{@actual}'"
130
- end
131
- end
132
- end
@@ -1,11 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin do
4
- %w(register register_page unload! load! routes).each do |method|
5
- it "delegates ##{method} to application" do
6
- expect(ActiveAdmin.application).to receive(method)
7
-
8
- ActiveAdmin.send(method)
9
- end
10
- end
11
- end
@@ -1,140 +0,0 @@
1
- require 'rails_helper'
2
- require 'fileutils'
3
-
4
- describe ActiveAdmin::Application do
5
-
6
- let(:application) do
7
- ActiveAdmin::Application.new.tap do |app|
8
- # Manually override the load paths becuase RSpec messes these up
9
- app.load_paths = [File.expand_path('app/admin', Rails.root)]
10
- end
11
- end
12
-
13
- it "should have a default load path of ['app/admin']" do
14
- expect(application.load_paths).to eq [File.expand_path('app/admin', Rails.root)]
15
- end
16
-
17
- it "should remove app/admin from the autoload paths (Active Admin deals with loading)" do
18
- expect(ActiveSupport::Dependencies.autoload_paths).to_not include(File.join(Rails.root, "app/admin"))
19
- end
20
-
21
- it "should add app/admin to the Engine's watchable directories (loaded after the app itself)" do
22
- expect(ActiveAdmin::Engine.config.watchable_dirs).to have_key File.join(Rails.root, "app/admin")
23
- end
24
-
25
- it "should store the site's title" do
26
- expect(application.site_title).to eq ""
27
- end
28
-
29
- it "should set the site title" do
30
- application.site_title = "New Title"
31
- expect(application.site_title).to eq "New Title"
32
- end
33
-
34
- it "should store the site's title link" do
35
- expect(application.site_title_link).to eq ""
36
- end
37
-
38
- it "should set the site's title link" do
39
- application.site_title_link = "http://www.mygreatsite.com"
40
- expect(application.site_title_link).to eq "http://www.mygreatsite.com"
41
- end
42
-
43
- it "should store the site's title image" do
44
- expect(application.site_title_image).to eq ""
45
- end
46
-
47
- it "should set the site's title image" do
48
- application.site_title_image = "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
49
- expect(application.site_title_image).to eq "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
50
- end
51
-
52
- it "should store the site's favicon" do
53
- expect(application.favicon).to eq false
54
- end
55
-
56
- it "should set the site's favicon" do
57
- application.favicon = "/a/favicon.ico"
58
- expect(application.favicon).to eq "/a/favicon.ico"
59
- end
60
-
61
- it "should have a view factory" do
62
- expect(application.view_factory).to be_an_instance_of(ActiveAdmin::ViewFactory)
63
- end
64
-
65
- it "should allow comments by default" do
66
- expect(application.comments).to eq true
67
- end
68
-
69
- describe "authentication settings" do
70
-
71
- it "should have no default current_user_method" do
72
- expect(application.current_user_method).to eq false
73
- end
74
-
75
- it "should have no default authentication method" do
76
- expect(application.authentication_method).to eq false
77
- end
78
-
79
- it "should have a logout link path (Devise's default)" do
80
- expect(application.logout_link_path).to eq :destroy_admin_user_session_path
81
- end
82
-
83
- it "should have a logout link method (Devise's default)" do
84
- expect(application.logout_link_method).to eq :get
85
- end
86
- end
87
-
88
- describe "files in load path" do
89
- it "should load files in the first level directory" do
90
- expect(application.files).to include(File.expand_path("app/admin/dashboard.rb", Rails.root))
91
- end
92
-
93
- it "should load files from subdirectories" do
94
- FileUtils.mkdir_p(File.expand_path("app/admin/public", Rails.root))
95
- test_file = File.expand_path("app/admin/public/posts.rb", Rails.root)
96
- FileUtils.touch(test_file)
97
- expect(application.files).to include(test_file)
98
- end
99
- end
100
-
101
- describe "#namespace" do
102
-
103
- it "should yield a new namespace" do
104
- application.namespace :new_namespace do |ns|
105
- expect(ns.name).to eq :new_namespace
106
- end
107
- end
108
-
109
- it "should return an instantiated namespace" do
110
- admin = application.namespace :admin
111
- expect(admin).to eq application.namespaces[:admin]
112
- end
113
-
114
- it "should yield an existing namespace" do
115
- expect {
116
- application.namespace :admin do |ns|
117
- expect(ns).to eq application.namespaces[:admin]
118
- raise "found"
119
- end
120
- }.to raise_error("found")
121
- end
122
-
123
- it "should not pollute the global app" do
124
- expect(application.namespaces).to be_empty
125
- application.namespace(:brand_new_ns)
126
- expect(application.namespaces.names).to eq [:brand_new_ns]
127
- expect(ActiveAdmin.application.namespaces.names).to eq [:admin]
128
- end
129
- end
130
-
131
- describe "#register_page" do
132
- it "finds or create the namespace and register the page to it" do
133
- namespace = double
134
- expect(application).to receive(:namespace).with("public").and_return namespace
135
- expect(namespace).to receive(:register_page).with("My Page", {namespace: "public"})
136
- application.register_page("My Page", namespace: "public")
137
- end
138
- end
139
-
140
- end
@@ -1,52 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::AssetRegistration do
4
- include ActiveAdmin::AssetRegistration
5
-
6
- before do
7
- clear_stylesheets!
8
- clear_javascripts!
9
- end
10
-
11
- it "should register a stylesheet file" do
12
- register_stylesheet "active_admin.css"
13
- expect(stylesheets.length).to eq 1
14
- expect(stylesheets.keys.first).to eq "active_admin.css"
15
- end
16
-
17
- it "should clear all existing stylesheets" do
18
- register_stylesheet "active_admin.css"
19
- expect(stylesheets.length).to eq 1
20
- clear_stylesheets!
21
- expect(stylesheets).to be_empty
22
- end
23
-
24
- it "should allow media option when registering stylesheet" do
25
- register_stylesheet "active_admin.css", media: :print
26
- expect(stylesheets.values.first[:media]).to eq :print
27
- end
28
-
29
- it "shouldn't register a stylesheet twice" do
30
- register_stylesheet "active_admin.css"
31
- register_stylesheet "active_admin.css"
32
- expect(stylesheets.length).to eq 1
33
- end
34
-
35
- it "should register a javascript file" do
36
- register_javascript "active_admin.js"
37
- expect(javascripts).to eq ["active_admin.js"].to_set
38
- end
39
-
40
- it "should clear all existing javascripts" do
41
- register_javascript "active_admin.js"
42
- expect(javascripts).to eq ["active_admin.js"].to_set
43
- clear_javascripts!
44
- expect(javascripts).to be_empty
45
- end
46
-
47
- it "shouldn't register a javascript twice" do
48
- register_javascript "active_admin.js"
49
- register_javascript "active_admin.js"
50
- expect(javascripts.length).to eq 1
51
- end
52
- end
@@ -1,61 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe ActiveAdmin::AuthorizationAdapter do
4
-
5
- let(:adapter) { ActiveAdmin::AuthorizationAdapter.new(double, double) }
6
-
7
- describe "#authorized?" do
8
-
9
- it "should always return true" do
10
- expect(adapter.authorized?(:read, "Resource")).to be_truthy
11
- end
12
-
13
- end
14
-
15
- describe "#scope_collection" do
16
-
17
- it "should return the collection unscoped" do
18
- collection = double
19
- expect(adapter.scope_collection(collection, ActiveAdmin::Auth::READ)).to eq collection
20
- end
21
-
22
- end
23
-
24
- describe "using #normalized in a subclass" do
25
-
26
- let(:auth_class) do
27
- Class.new(ActiveAdmin::AuthorizationAdapter) do
28
-
29
- def authorized?(action, subject = nil)
30
- case subject
31
- when normalized(String)
32
- true
33
- else
34
- false
35
- end
36
- end
37
-
38
- end
39
- end
40
-
41
- let(:adapter) { auth_class.new(double, double) }
42
-
43
- it "should match against a class" do
44
- expect(adapter.authorized?(:read, String)).to be_truthy
45
- end
46
-
47
- it 'should match against an instance' do
48
- expect(adapter.authorized?(:read, "String")).to be_truthy
49
- end
50
-
51
- it 'should not match a different class' do
52
- expect(adapter.authorized?(:read, Hash)).to be_falsey
53
- end
54
-
55
- it 'should not match a different instance' do
56
- expect(adapter.authorized?(:read, {})).to be_falsey
57
- end
58
-
59
- end
60
-
61
- end
@@ -1,39 +0,0 @@
1
- require 'rails_helper'
2
- Auth = ActiveAdmin::Authorization
3
-
4
- describe Admin::PostsController, "Controller Authorization", type: :controller do
5
-
6
- let(:authorization){ controller.send(:active_admin_authorization) }
7
-
8
- before do
9
- load_defaults!
10
- # HACK: the AA config is missing, so we throw it in here
11
- controller.class.active_admin_config = ActiveAdmin.application.namespace(:admin).resources['Post'].controller.active_admin_config
12
- end
13
-
14
- it "should authorize the index action" do
15
- expect(authorization).to receive(:authorized?).with(Auth::READ, Post).and_return true
16
- get :index
17
- expect(response).to be_success
18
- end
19
-
20
- it "should authorize the new action" do
21
- expect(authorization).to receive(:authorized?).with(Auth::CREATE, an_instance_of(Post)).and_return true
22
- get :new
23
- expect(response).to be_success
24
- end
25
-
26
- it "should authorize the create action with the new resource" do
27
- expect(authorization).to receive(:authorized?).with(Auth::CREATE, an_instance_of(Post)).and_return true
28
- post :create
29
- expect(response).to redirect_to action: 'show', id: Post.last.id
30
- end
31
-
32
- it "should redirect when the user isn't authorized" do
33
- expect(authorization).to receive(:authorized?).with(Auth::READ, Post).and_return false
34
- get :index
35
- expect(response.body).to eq '<html><body>You are being <a href="http://test.host/admin">redirected</a>.</body></html>'
36
- expect(response).to redirect_to '/admin'
37
- end
38
-
39
- end
@@ -1,22 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe Admin::PostsController, 'Index overriding', type: :controller do
4
- before do
5
- controller.instance_eval do
6
- def index
7
- super do
8
- render text: 'Rendered from passed block' and return
9
- end
10
- end
11
- end
12
- load_defaults!
13
- # HACK: the AA config is missing, so we throw it in here
14
- controller.class.active_admin_config = ActiveAdmin.application.namespace(:admin).resources['Post'].controller.active_admin_config
15
- end
16
-
17
- it 'should call block passed to overridden index' do
18
- get :index
19
- expect(response.body).to eq 'Rendered from passed block'
20
- end
21
-
22
- end
@@ -1,69 +0,0 @@
1
- require 'rails_helper'
2
-
3
- describe "auto linking resources" do
4
- include ActiveAdmin::ViewHelpers::ActiveAdminApplicationHelper
5
- include ActiveAdmin::ViewHelpers::AutoLinkHelper
6
- include ActiveAdmin::ViewHelpers::DisplayHelper
7
- include MethodOrProcHelper
8
-
9
- let(:active_admin_config) { double namespace: namespace }
10
- let(:active_admin_namespace){ ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin) }
11
- let(:post){ Post.create! title: "Hello World" }
12
-
13
- def admin_post_path(post)
14
- "/admin/posts/#{post.id}"
15
- end
16
-
17
- def authorized?(_action, _subject)
18
- true
19
- end
20
-
21
- context "when the resource is not registered" do
22
- it "should return the display name of the object" do
23
- expect(auto_link(post)).to eq "Hello World"
24
- end
25
- end
26
-
27
- context "when the resource is registered" do
28
- before do
29
- active_admin_namespace.register Post
30
- end
31
- it "should return a link with the display name of the object" do
32
- expect(self).to receive(:url_for) { |url| url }
33
- expect(self).to receive(:link_to).with "Hello World", admin_post_path(post)
34
- auto_link(post)
35
- end
36
-
37
- context "but the user doesn't have access" do
38
- it "should return the display name of the object" do
39
- expect(self).to receive(:authorized?).twice.and_return(false)
40
- expect(auto_link(post)).to eq "Hello World"
41
- end
42
- end
43
-
44
- context "but the show action is disabled" do
45
- before do
46
- active_admin_namespace.register(Post) { actions :all, except: :show }
47
- end
48
-
49
- it "should fallback to edit" do
50
- url_path = "/admin/posts/#{post.id}/edit"
51
- expect(self).to receive(:url_for) { |url| url }
52
- expect(self).to receive(:link_to).with "Hello World", url_path
53
- auto_link(post)
54
- end
55
- end
56
-
57
- context "but the show and edit actions are disabled" do
58
- before do
59
- active_admin_namespace.register(Post) do
60
- actions :all, except: [:show, :edit]
61
- end
62
- end
63
-
64
- it "should return the display name of the object" do
65
- expect(auto_link(post)).to eq "Hello World"
66
- end
67
- end
68
- end
69
- end