activeadmin 0.6.6 → 1.0.0.pre1

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

Potentially problematic release.


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

Files changed (512) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +11 -8
  3. data/.hound.yml +11 -0
  4. data/.travis.yml +36 -10
  5. data/.yardopts +2 -1
  6. data/CHANGELOG.md +118 -67
  7. data/CONTRIBUTING.md +96 -73
  8. data/Gemfile +35 -35
  9. data/Guardfile +1 -0
  10. data/LICENSE +1 -1
  11. data/README.md +98 -0
  12. data/Rakefile +12 -4
  13. data/activeadmin.gemspec +21 -24
  14. data/app/assets/javascripts/active_admin/application.js.coffee +32 -0
  15. data/app/assets/javascripts/active_admin/base.js.coffee +14 -0
  16. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
  17. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
  18. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
  19. data/app/assets/javascripts/active_admin/{components/jquery.aa.checkbox-toggler.js.coffee → lib/checkbox-toggler.js.coffee} +3 -4
  20. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +101 -0
  21. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
  22. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
  23. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
  24. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
  25. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +68 -0
  26. data/app/assets/javascripts/active_admin/{components/jquery.aa.table-checkbox-toggler.js.coffee → lib/table-checkbox-toggler.js.coffee} +2 -3
  27. data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
  28. data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +61 -17
  29. data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
  30. data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
  31. data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
  32. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
  33. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +0 -1
  34. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
  35. data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
  36. data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -14
  37. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +5 -4
  38. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  39. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  40. data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
  41. data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +2 -3
  42. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
  43. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  44. data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +4 -2
  45. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  46. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  47. data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
  48. data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -1
  49. data/app/assets/stylesheets/active_admin/mixins/_gradients.scss +28 -0
  50. data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
  51. data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
  52. data/app/assets/stylesheets/active_admin/mixins/_rounded.scss +22 -0
  53. data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +8 -2
  54. data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -7
  55. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +0 -9
  56. data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
  57. data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
  58. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +5 -2
  59. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +11 -9
  60. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  61. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  62. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
  63. data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
  64. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  65. data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  66. data/app/views/active_admin/devise/sessions/new.html.erb +9 -7
  67. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  68. data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
  69. data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
  70. data/config/locales/ar.yml +120 -0
  71. data/config/locales/bg.yml +26 -6
  72. data/config/locales/bs.yml +122 -0
  73. data/config/locales/ca.yml +10 -1
  74. data/config/locales/cs.yml +7 -2
  75. data/config/locales/da.yml +7 -3
  76. data/config/locales/de-CH.yml +14 -31
  77. data/config/locales/de.yml +33 -33
  78. data/config/locales/el.yml +28 -2
  79. data/config/locales/en-GB.yml +12 -4
  80. data/config/locales/en.yml +29 -3
  81. data/config/locales/{es_MX.yml → es-MX.yml} +9 -24
  82. data/config/locales/es.yml +32 -25
  83. data/config/locales/fa.yml +120 -0
  84. data/config/locales/fi.yml +113 -0
  85. data/config/locales/fr.yml +21 -11
  86. data/config/locales/he.yml +7 -3
  87. data/config/locales/hr.yml +42 -11
  88. data/config/locales/hu.yml +10 -3
  89. data/config/locales/it.yml +31 -3
  90. data/config/locales/ja.yml +8 -3
  91. data/config/locales/ko.yml +7 -1
  92. data/config/locales/lt.yml +42 -11
  93. data/config/locales/lv.yml +7 -3
  94. data/config/locales/{no-NB.yml → nb.yml} +46 -15
  95. data/config/locales/nl.yml +36 -5
  96. data/config/locales/pl.yml +13 -8
  97. data/config/locales/pt-BR.yml +37 -5
  98. data/config/locales/pt-PT.yml +8 -4
  99. data/config/locales/ro.yml +7 -3
  100. data/config/locales/ru.yml +26 -5
  101. data/config/locales/sv-SE.yml +9 -5
  102. data/config/locales/tr.yml +10 -3
  103. data/config/locales/uk.yml +36 -12
  104. data/config/locales/vi.yml +7 -3
  105. data/config/locales/zh-CN.yml +26 -10
  106. data/config/locales/zh-TW.yml +19 -13
  107. data/docs/0-installation.md +65 -29
  108. data/docs/1-general-configuration.md +92 -81
  109. data/docs/10-custom-pages.md +68 -68
  110. data/docs/11-decorators.md +48 -59
  111. data/docs/12-arbre-components.md +80 -74
  112. data/docs/13-authorization-adapter.md +128 -107
  113. data/docs/14-gotchas.md +92 -0
  114. data/docs/2-resource-customization.md +293 -178
  115. data/docs/3-index-pages.md +160 -86
  116. data/docs/3-index-pages/custom-index.md +31 -0
  117. data/docs/3-index-pages/index-as-block.md +14 -9
  118. data/docs/3-index-pages/index-as-blog.md +41 -31
  119. data/docs/3-index-pages/index-as-grid.md +16 -8
  120. data/docs/3-index-pages/index-as-table.md +129 -52
  121. data/docs/4-csv-format.md +31 -24
  122. data/docs/5-forms.md +133 -56
  123. data/docs/6-show-pages.md +89 -27
  124. data/docs/7-sidebars.md +48 -27
  125. data/docs/8-custom-actions.md +98 -77
  126. data/docs/9-batch-actions.md +210 -146
  127. data/docs/README.md +24 -0
  128. data/features/action_item.feature +3 -3
  129. data/features/authorization_pundit.feature +37 -0
  130. data/features/breadcrumb.feature +48 -0
  131. data/features/comments/commenting.feature +56 -13
  132. data/features/development_reloading.feature +17 -30
  133. data/features/edit_page.feature +12 -1
  134. data/features/favicon.feature +3 -3
  135. data/features/i18n.feature +5 -4
  136. data/features/index/batch_actions.feature +41 -0
  137. data/features/index/filters.feature +67 -0
  138. data/features/index/format_as_csv.feature +90 -4
  139. data/features/index/formats.feature +27 -0
  140. data/features/index/index_as_blog.feature +4 -4
  141. data/features/index/index_as_table.feature +102 -6
  142. data/features/index/index_blank_slate.feature +22 -0
  143. data/features/index/index_scope_to.feature +16 -16
  144. data/features/index/page_title.feature +11 -0
  145. data/features/index/pagination.feature +1 -1
  146. data/features/index/switch_index_view.feature +14 -14
  147. data/features/new_page.feature +13 -2
  148. data/features/registering_pages.feature +1 -1
  149. data/features/renamed_resource.feature +32 -0
  150. data/features/show/page_title.feature +11 -0
  151. data/features/show/tabs.feature +27 -0
  152. data/features/sidebar_sections.feature +12 -0
  153. data/features/site_title.feature +2 -2
  154. data/features/specifying_actions.feature +3 -3
  155. data/features/step_definitions/action_item_steps.rb +2 -2
  156. data/features/step_definitions/action_link_steps.rb +14 -1
  157. data/features/step_definitions/additional_web_steps.rb +19 -20
  158. data/features/step_definitions/asset_steps.rb +3 -3
  159. data/features/step_definitions/attribute_steps.rb +8 -3
  160. data/features/step_definitions/batch_action_steps.rb +26 -9
  161. data/features/step_definitions/blog_steps.rb +3 -0
  162. data/features/step_definitions/breadcrumb_steps.rb +1 -1
  163. data/features/step_definitions/comment_steps.rb +1 -1
  164. data/features/step_definitions/configuration_steps.rb +9 -2
  165. data/features/step_definitions/dashboard_steps.rb +2 -2
  166. data/features/step_definitions/factory_steps.rb +9 -8
  167. data/features/step_definitions/filter_steps.rb +25 -3
  168. data/features/step_definitions/flash_steps.rb +3 -3
  169. data/features/step_definitions/format_steps.rb +18 -18
  170. data/features/step_definitions/index_scope_steps.rb +5 -5
  171. data/features/step_definitions/layout_steps.rb +1 -1
  172. data/features/step_definitions/member_link_steps.rb +2 -2
  173. data/features/step_definitions/menu_steps.rb +3 -3
  174. data/features/step_definitions/pagination_steps.rb +2 -3
  175. data/features/step_definitions/sidebar_steps.rb +8 -3
  176. data/features/step_definitions/site_title_steps.rb +6 -4
  177. data/features/step_definitions/symbol_leak_steps.rb +3 -0
  178. data/features/step_definitions/tab_steps.rb +5 -0
  179. data/features/step_definitions/table_steps.rb +4 -4
  180. data/features/step_definitions/user_steps.rb +10 -7
  181. data/features/step_definitions/web_steps.rb +14 -11
  182. data/features/sti_resource.feature +6 -2
  183. data/features/strong_parameters.feature +73 -0
  184. data/features/support/env.rb +34 -9
  185. data/features/support/paths.rb +14 -6
  186. data/features/support/selectors.rb +1 -1
  187. data/features/symbol_leak.feature +35 -0
  188. data/features/users/resetting_password.feature +5 -6
  189. data/lib/active_admin.rb +26 -25
  190. data/lib/active_admin/abstract_view_factory.rb +7 -17
  191. data/lib/active_admin/application.rb +72 -59
  192. data/lib/active_admin/asset_registration.rb +2 -2
  193. data/lib/active_admin/authorization_adapter.rb +2 -2
  194. data/lib/active_admin/base_controller.rb +2 -3
  195. data/lib/active_admin/base_controller/authorization.rb +13 -31
  196. data/lib/active_admin/batch_actions.rb +1 -1
  197. data/lib/active_admin/batch_actions/controller.rb +24 -8
  198. data/lib/active_admin/batch_actions/resource_extension.rb +47 -18
  199. data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
  200. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
  201. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
  202. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
  203. data/lib/active_admin/callbacks.rb +25 -24
  204. data/lib/active_admin/cancan_adapter.rb +7 -11
  205. data/lib/active_admin/csv_builder.rb +92 -15
  206. data/lib/active_admin/dependency.rb +93 -0
  207. data/lib/active_admin/deprecation.rb +6 -7
  208. data/lib/active_admin/devise.rb +28 -18
  209. data/lib/active_admin/dsl.rb +18 -11
  210. data/lib/active_admin/engine.rb +10 -8
  211. data/lib/active_admin/error.rb +62 -0
  212. data/lib/active_admin/filters/dsl.rb +2 -2
  213. data/lib/active_admin/filters/forms.rb +17 -27
  214. data/lib/active_admin/filters/formtastic_addons.rb +49 -15
  215. data/lib/active_admin/filters/resource_extension.rb +43 -34
  216. data/lib/active_admin/form_builder.rb +93 -154
  217. data/lib/active_admin/helpers/collection.rb +7 -13
  218. data/lib/active_admin/helpers/i18n.rb +7 -0
  219. data/lib/active_admin/helpers/optional_display.rb +5 -5
  220. data/lib/active_admin/helpers/routes/url_helpers.rb +15 -0
  221. data/lib/active_admin/helpers/scope_chain.rb +1 -1
  222. data/lib/active_admin/helpers/settings.rb +16 -9
  223. data/lib/active_admin/iconic.rb +17 -15
  224. data/lib/active_admin/iconic/icons.rb +136 -136
  225. data/lib/active_admin/inputs.rb +11 -7
  226. data/lib/active_admin/inputs/datepicker_input.rb +12 -3
  227. data/lib/active_admin/inputs/filters/base.rb +42 -0
  228. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  229. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  230. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  231. data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
  232. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  233. data/lib/active_admin/inputs/filters/select_input.rb +54 -0
  234. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  235. data/lib/active_admin/menu.rb +6 -4
  236. data/lib/active_admin/menu_collection.rb +1 -4
  237. data/lib/active_admin/namespace.rb +55 -29
  238. data/lib/active_admin/order_clause.rb +26 -0
  239. data/lib/active_admin/orm/active_record.rb +5 -0
  240. data/lib/active_admin/orm/active_record/comments.rb +81 -0
  241. data/lib/active_admin/orm/active_record/comments/comment.rb +45 -0
  242. data/lib/active_admin/{comments → orm/active_record/comments}/namespace_helper.rb +2 -2
  243. data/lib/active_admin/{comments → orm/active_record/comments}/resource_helper.rb +1 -1
  244. data/lib/active_admin/{comments → orm/active_record/comments}/show_page_helper.rb +0 -0
  245. data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  246. data/lib/active_admin/{comments → orm/active_record/comments}/views/active_admin_comments.rb +16 -14
  247. data/lib/active_admin/orm/mongoid.rb +1 -0
  248. data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
  249. data/lib/active_admin/page.rb +7 -3
  250. data/lib/active_admin/page_dsl.rb +1 -1
  251. data/lib/active_admin/page_presenter.rb +2 -2
  252. data/lib/active_admin/pundit_adapter.rb +68 -0
  253. data/lib/active_admin/resource.rb +16 -17
  254. data/lib/active_admin/resource/action_items.rb +23 -18
  255. data/lib/active_admin/resource/belongs_to.rb +7 -3
  256. data/lib/active_admin/resource/controllers.rb +1 -0
  257. data/lib/active_admin/resource/includes.rb +12 -0
  258. data/lib/active_admin/resource/menu.rb +5 -5
  259. data/lib/active_admin/resource/naming.rb +27 -43
  260. data/lib/active_admin/resource/page_presenters.rb +1 -1
  261. data/lib/active_admin/resource/routes.rb +27 -11
  262. data/lib/active_admin/resource/scope_to.rb +7 -7
  263. data/lib/active_admin/resource/sidebars.rb +1 -0
  264. data/lib/active_admin/resource_controller.rb +6 -7
  265. data/lib/active_admin/resource_controller/data_access.rb +101 -93
  266. data/lib/active_admin/resource_controller/decorators.rb +91 -9
  267. data/lib/active_admin/resource_controller/streaming.rb +37 -0
  268. data/lib/active_admin/resource_dsl.rb +53 -10
  269. data/lib/active_admin/router.rb +7 -7
  270. data/lib/active_admin/scope.rb +6 -6
  271. data/lib/active_admin/sidebar_section.rb +10 -2
  272. data/lib/active_admin/version.rb +1 -1
  273. data/lib/active_admin/view_factory.rb +17 -17
  274. data/lib/active_admin/view_helpers.rb +0 -1
  275. data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
  276. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +4 -3
  277. data/lib/active_admin/view_helpers/display_helper.rb +30 -15
  278. data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -25
  279. data/lib/active_admin/view_helpers/fields_for.rb +4 -4
  280. data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
  281. data/lib/active_admin/view_helpers/form_helper.rb +5 -9
  282. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
  283. data/lib/active_admin/views/action_items.rb +2 -2
  284. data/lib/active_admin/views/components/action_list_popover.rb +1 -1
  285. data/lib/active_admin/views/components/active_admin_form.rb +123 -0
  286. data/lib/active_admin/views/components/attributes_table.rb +63 -21
  287. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  288. data/lib/active_admin/views/components/columns.rb +13 -7
  289. data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
  290. data/lib/active_admin/views/components/index_list.rb +7 -7
  291. data/lib/active_admin/views/components/paginated_collection.rb +38 -20
  292. data/lib/active_admin/views/components/panel.rb +8 -2
  293. data/lib/active_admin/views/components/popover.rb +1 -1
  294. data/lib/active_admin/views/components/scopes.rb +5 -4
  295. data/lib/active_admin/views/components/sidebar_section.rb +3 -2
  296. data/lib/active_admin/views/components/site_title.rb +2 -2
  297. data/lib/active_admin/views/components/status_tag.rb +34 -11
  298. data/lib/active_admin/views/components/table_for.rb +90 -45
  299. data/lib/active_admin/views/components/tabs.rb +28 -0
  300. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  301. data/lib/active_admin/views/footer.rb +3 -3
  302. data/lib/active_admin/views/header.rb +3 -3
  303. data/lib/active_admin/views/index_as_block.rb +10 -10
  304. data/lib/active_admin/views/index_as_blog.rb +45 -39
  305. data/lib/active_admin/views/index_as_grid.rb +14 -10
  306. data/lib/active_admin/views/index_as_table.rb +242 -129
  307. data/lib/active_admin/views/pages/base.rb +22 -18
  308. data/lib/active_admin/views/pages/form.rb +21 -11
  309. data/lib/active_admin/views/pages/index.rb +40 -35
  310. data/lib/active_admin/views/pages/layout.rb +1 -1
  311. data/lib/active_admin/views/pages/show.rb +4 -4
  312. data/lib/active_admin/views/tabbed_navigation.rb +7 -3
  313. data/lib/active_admin/views/title_bar.rb +10 -8
  314. data/lib/generators/active_admin/assets/assets_generator.rb +3 -28
  315. data/lib/generators/active_admin/assets/templates/{3.1/active_admin.css.scss → active_admin.css.scss} +0 -0
  316. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
  317. data/lib/generators/active_admin/devise/devise_generator.rb +24 -26
  318. data/lib/generators/active_admin/install/install_generator.rb +8 -9
  319. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +28 -26
  320. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -2
  321. data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
  322. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
  323. data/lib/generators/active_admin/page/USAGE +8 -0
  324. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  325. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  326. data/lib/generators/active_admin/resource/resource_generator.rb +3 -5
  327. data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
  328. data/lib/ransack_ext.rb +12 -0
  329. data/script/local +2 -2
  330. data/script/travis_cache +107 -0
  331. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
  332. data/spec/javascripts/fixtures/flashes.html +2 -0
  333. data/spec/rails_helper.rb +154 -0
  334. data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
  335. data/spec/{integration → requests}/javascript_spec.rb +5 -5
  336. data/spec/requests/memory_spec.rb +23 -0
  337. data/spec/requests/stylesheets_spec.rb +18 -0
  338. data/spec/spec_helper.rb +12 -173
  339. data/spec/support/detect_rails_version.rb +9 -17
  340. data/spec/support/rails_template.rb +64 -35
  341. data/spec/support/rails_template_with_data.rb +14 -14
  342. data/spec/support/templates/admin/stores.rb +5 -1
  343. data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  344. data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  345. data/spec/support/templates/policies/admin_user_policy.rb +11 -0
  346. data/spec/support/templates/policies/application_policy.rb +45 -0
  347. data/spec/support/templates/policies/category_policy.rb +7 -0
  348. data/spec/support/templates/policies/post_policy.rb +15 -0
  349. data/spec/support/templates/policies/store_policy.rb +11 -0
  350. data/spec/support/templates/policies/user_policy.rb +11 -0
  351. data/spec/support/templates/post_decorator.rb +4 -46
  352. data/spec/unit/abstract_view_factory_spec.rb +16 -16
  353. data/spec/unit/action_builder_spec.rb +24 -18
  354. data/spec/unit/active_admin_spec.rb +2 -2
  355. data/spec/unit/application_spec.rb +33 -34
  356. data/spec/unit/asset_registration_spec.rb +25 -29
  357. data/spec/unit/authorization/authorization_adapter_spec.rb +10 -10
  358. data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
  359. data/spec/unit/authorization/index_overriding_spec.rb +22 -0
  360. data/spec/unit/auto_link_spec.rb +43 -13
  361. data/spec/unit/batch_actions/resource_spec.rb +15 -14
  362. data/spec/unit/batch_actions/settings_spec.rb +18 -18
  363. data/spec/unit/belongs_to_spec.rb +28 -19
  364. data/spec/unit/cancan_adapter_spec.rb +8 -8
  365. data/spec/unit/comments_spec.rb +99 -39
  366. data/spec/unit/component_spec.rb +3 -3
  367. data/spec/unit/config_shared_examples.rb +10 -10
  368. data/spec/unit/controller_filters_spec.rb +23 -16
  369. data/spec/unit/csv_builder_spec.rb +165 -24
  370. data/spec/unit/dependency_spec.rb +135 -0
  371. data/spec/unit/devise_spec.rb +17 -37
  372. data/spec/unit/dsl_spec.rb +70 -9
  373. data/spec/unit/event_spec.rb +11 -11
  374. data/spec/unit/filters/filter_form_builder_spec.rb +207 -148
  375. data/spec/unit/filters/resource_spec.rb +60 -26
  376. data/spec/unit/form_builder_spec.rb +419 -145
  377. data/spec/unit/generators/install_spec.rb +23 -0
  378. data/spec/unit/helpers/collection_spec.rb +18 -18
  379. data/spec/unit/helpers/scope_chain_spec.rb +6 -6
  380. data/spec/unit/helpers/settings_spec.rb +4 -4
  381. data/spec/unit/i18n_spec.rb +12 -0
  382. data/spec/unit/menu_collection_spec.rb +14 -14
  383. data/spec/unit/menu_item_spec.rb +42 -42
  384. data/spec/unit/menu_spec.rb +20 -20
  385. data/spec/unit/namespace/authorization_spec.rb +8 -8
  386. data/spec/unit/namespace/register_page_spec.rb +11 -11
  387. data/spec/unit/namespace/register_resource_spec.rb +28 -30
  388. data/spec/unit/namespace_spec.rb +20 -20
  389. data/spec/unit/order_clause_spec.rb +81 -0
  390. data/spec/unit/page_controller_spec.rb +1 -1
  391. data/spec/unit/page_spec.rb +18 -12
  392. data/spec/unit/pretty_format_spec.rb +42 -14
  393. data/spec/unit/pundit_adapter_spec.rb +98 -0
  394. data/spec/unit/resource/action_items_spec.rb +15 -12
  395. data/spec/unit/resource/includes_spec.rb +21 -0
  396. data/spec/unit/resource/menu_spec.rb +1 -1
  397. data/spec/unit/resource/naming_spec.rb +35 -21
  398. data/spec/unit/resource/page_presenters_spec.rb +8 -8
  399. data/spec/unit/resource/pagination_spec.rb +6 -6
  400. data/spec/unit/resource/routes_spec.rb +10 -10
  401. data/spec/unit/resource/scopes_spec.rb +14 -7
  402. data/spec/unit/resource/sidebars_spec.rb +6 -6
  403. data/spec/unit/resource_collection_spec.rb +31 -38
  404. data/spec/unit/resource_controller/data_access_spec.rb +96 -30
  405. data/spec/unit/resource_controller/decorators_spec.rb +83 -0
  406. data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
  407. data/spec/unit/resource_controller_spec.rb +73 -70
  408. data/spec/unit/resource_registration_spec.rb +12 -12
  409. data/spec/unit/resource_spec.rb +77 -42
  410. data/spec/unit/routing_spec.rb +39 -31
  411. data/spec/unit/scope_spec.rb +112 -30
  412. data/spec/unit/settings_spec.rb +51 -21
  413. data/spec/unit/view_factory_spec.rb +2 -3
  414. data/spec/unit/view_helpers/breadcrumbs_spec.rb +71 -60
  415. data/spec/unit/view_helpers/display_name_spec.rb +49 -21
  416. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
  417. data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
  418. data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
  419. data/spec/unit/view_helpers/form_helper_spec.rb +10 -23
  420. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +64 -22
  421. data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
  422. data/spec/unit/views/components/attributes_table_spec.rb +171 -30
  423. data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
  424. data/spec/unit/views/components/blank_slate_spec.rb +14 -4
  425. data/spec/unit/views/components/columns_spec.rb +52 -22
  426. data/spec/unit/views/components/index_list_spec.rb +11 -8
  427. data/spec/unit/views/components/index_table_for_spec.rb +46 -0
  428. data/spec/unit/views/components/paginated_collection_spec.rb +79 -90
  429. data/spec/unit/views/components/panel_spec.rb +32 -21
  430. data/spec/unit/views/components/popover_spec.rb +7 -7
  431. data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
  432. data/spec/unit/views/components/site_title_spec.rb +26 -26
  433. data/spec/unit/views/components/status_tag_spec.rb +178 -38
  434. data/spec/unit/views/components/table_for_spec.rb +237 -35
  435. data/spec/unit/views/components/tabs_spec.rb +39 -0
  436. data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
  437. data/spec/unit/views/pages/form_spec.rb +17 -10
  438. data/spec/unit/views/pages/index_spec.rb +60 -0
  439. data/spec/unit/views/pages/layout_spec.rb +17 -21
  440. data/spec/unit/views/pages/show_spec.rb +18 -6
  441. data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
  442. data/tasks/docs.rake +9 -11
  443. data/tasks/parallel_tests.rake +8 -2
  444. data/tasks/test.rake +13 -9
  445. data/tasks/yard.rake +7 -4
  446. metadata +219 -163
  447. data/.document +0 -5
  448. data/README.rdoc +0 -88
  449. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  450. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  451. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  452. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  453. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  454. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
  455. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
  456. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
  457. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
  458. data/app/assets/images/active_admin/loading.gif +0 -0
  459. data/app/assets/javascripts/active_admin/application.js +0 -3
  460. data/app/assets/javascripts/active_admin/base.js +0 -5
  461. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +0 -105
  462. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +0 -97
  463. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +0 -4
  464. data/app/assets/javascripts/active_admin/pages/application.js.coffee +0 -21
  465. data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +0 -26
  466. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
  467. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -41
  468. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
  469. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +0 -38
  470. data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +0 -43
  471. data/app/views/active_admin/dashboard/index.html.arb +0 -1
  472. data/app/views/active_admin/resource/index.csv.erb +0 -23
  473. data/docs/3-index-pages/create-an-index.md +0 -29
  474. data/lib/active_admin/comments.rb +0 -83
  475. data/lib/active_admin/comments/comment.rb +0 -42
  476. data/lib/active_admin/comments/views.rb +0 -2
  477. data/lib/active_admin/dependency_checker.rb +0 -46
  478. data/lib/active_admin/inputs/filter_base.rb +0 -33
  479. data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
  480. data/lib/active_admin/inputs/filter_boolean_input.rb +0 -36
  481. data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -40
  482. data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
  483. data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
  484. data/lib/active_admin/inputs/filter_select_input.rb +0 -49
  485. data/lib/active_admin/inputs/filter_string_input.rb +0 -24
  486. data/lib/active_admin/reloader.rb +0 -130
  487. data/lib/active_admin/resource_controller/actions.rb +0 -81
  488. data/lib/active_admin/sass/active_admin.scss +0 -3
  489. data/lib/active_admin/sass/css_loader.rb +0 -16
  490. data/lib/active_admin/sass/helpers.rb +0 -45
  491. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
  492. data/lib/active_admin/views/dashboard_section_renderer.rb +0 -19
  493. data/lib/active_admin/views/pages/dashboard.rb +0 -62
  494. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +0 -1
  495. data/lib/generators/active_admin/assets/templates/3.1/active_admin.js +0 -1
  496. data/lib/meta_search_ext.rb +0 -10
  497. data/spec/integration/memory_spec.rb +0 -29
  498. data/spec/integration/stylesheets_spec.rb +0 -41
  499. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
  500. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
  501. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
  502. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
  503. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
  504. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
  505. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
  506. data/spec/javascripts/support/jquery.min.js +0 -4
  507. data/spec/spec_helper_without_rails.rb +0 -11
  508. data/spec/unit/generators/install_rails_3_1_spec.rb +0 -16
  509. data/spec/unit/rails_spec.rb +0 -43
  510. data/spec/unit/reloader_spec.rb +0 -124
  511. data/spec/unit/sass/helpers_spec.rb +0 -47
  512. data/tasks/js.rake +0 -32
@@ -6,8 +6,12 @@ Feature: STI Resource
6
6
  Given I am logged in
7
7
  And a configuration of:
8
8
  """
9
- ActiveAdmin.register Publisher
10
- ActiveAdmin.register User
9
+ ActiveAdmin.register Publisher do
10
+ permit_params :first_name, :last_name, :username, :age if Rails::VERSION::MAJOR == 4
11
+ end
12
+ ActiveAdmin.register User do
13
+ permit_params :first_name, :last_name, :username, :age if Rails::VERSION::MAJOR == 4
14
+ end
11
15
  """
12
16
 
13
17
  Scenario: Create, update and delete a child STI resource
@@ -0,0 +1,73 @@
1
+ @rails4
2
+ @silent_unpermitted_params_failure
3
+ Feature: Strong Params
4
+
5
+ When I am using Rails 4
6
+ I want to use Strong Parameters
7
+
8
+ Background:
9
+ Given a category named "Music" exists
10
+ And a user named "John Doe" exists
11
+ And a post with the title "Hello World" written by "John Doe" exists
12
+ And I am logged in
13
+ Given a configuration of:
14
+ """
15
+ ActiveAdmin.register Post do
16
+ end
17
+ """
18
+ When I am on the index page for posts
19
+
20
+ Scenario: Static permitted parameters
21
+ Given a configuration of:
22
+ """
23
+ ActiveAdmin.register Post do
24
+ permit_params :author, :title, :starred
25
+ end
26
+ """
27
+ Given I follow "Edit"
28
+
29
+ When I fill in "Title" with "Hello World from update"
30
+ And I check "Starred"
31
+ When I press "Update Post"
32
+ Then I should see "Post was successfully updated."
33
+ And I should see the attribute "Title" with "Hello World from update"
34
+ And I should see the attribute "Author" with "John Doe"
35
+ And I should see the attribute "Starred" with "true"
36
+
37
+ Scenario: Dynamic permitted parameters
38
+ Given a configuration of:
39
+ """
40
+ ActiveAdmin.register Post do
41
+ permit_params do
42
+ allow = [:author, :title]
43
+ allow << :starred
44
+ allow
45
+ end
46
+ end
47
+ """
48
+ Given I follow "Edit"
49
+
50
+ When I fill in "Title" with "Hello World from update"
51
+ And I check "Starred"
52
+ When I press "Update Post"
53
+ Then I should see "Post was successfully updated."
54
+ And I should see the attribute "Title" with "Hello World from update"
55
+ And I should see the attribute "Author" with "John Doe"
56
+ And I should see the attribute "Starred" with "true"
57
+
58
+ Scenario: Should not update parameters that are not declared as permitted
59
+ Given a configuration of:
60
+ """
61
+ ActiveAdmin.register Post do
62
+ permit_params :author, :title
63
+ end
64
+ """
65
+ Given I follow "Edit"
66
+
67
+ When I fill in "Title" with "Hello World from update"
68
+ And I check "Starred"
69
+ When I press "Update Post"
70
+ Then I should see "Post was successfully updated."
71
+ And I should see the attribute "Title" with "Hello World from update"
72
+ And I should see the attribute "Author" with "John Doe"
73
+ And the attribute "Starred" should be empty
@@ -5,25 +5,20 @@
5
5
  # files.
6
6
 
7
7
  ENV["RAILS_ENV"] ||= "cucumber"
8
- ENV['BUNDLE_GEMFILE'] = File.expand_path('../../../Gemfile', __FILE__)
9
- require "rubygems"
10
- require "bundler"
11
- Bundler.setup
12
8
 
13
- require File.expand_path('../../../spec/support/detect_rails_version', __FILE__)
14
- ENV["RAILS"] = detect_rails_version
9
+ require File.expand_path('../../../spec/spec_helper', __FILE__)
15
10
 
16
11
  ENV['RAILS_ROOT'] = File.expand_path("../../../spec/rails/rails-#{ENV["RAILS"]}", __FILE__)
17
12
 
18
-
19
13
  # Create the test app if it doesn't exists
20
14
  unless File.exists?(ENV['RAILS_ROOT'])
21
15
  system 'rake setup'
22
16
  end
23
17
 
24
- # Ensure the Active Admin load path is happy
25
18
  require 'rails'
19
+ require 'active_record'
26
20
  require 'active_admin'
21
+ require 'devise'
27
22
  ActiveAdmin.application.load_paths = [ENV['RAILS_ROOT'] + "/app/admin"]
28
23
 
29
24
  require ENV['RAILS_ROOT'] + '/config/environment'
@@ -34,11 +29,29 @@ autoload :ActiveAdmin, 'active_admin'
34
29
 
35
30
  require 'cucumber/rails'
36
31
 
37
- require 'cucumber/rspec/doubles'
32
+ require 'rspec/mocks'
33
+ World(RSpec::Mocks::ExampleMethods)
34
+
35
+ Before do
36
+ RSpec::Mocks.setup
37
+ end
38
+
39
+ After do
40
+ begin
41
+ RSpec::Mocks.verify
42
+ ensure
43
+ RSpec::Mocks.teardown
44
+ end
45
+ end
38
46
 
39
47
  require 'capybara/rails'
40
48
  require 'capybara/cucumber'
41
49
  require 'capybara/session'
50
+ require 'capybara/poltergeist'
51
+ require 'phantomjs/poltergeist'
52
+
53
+ Capybara.javascript_driver = :poltergeist
54
+
42
55
  # Capybara defaults to XPath selectors rather than Webrat's default of CSS3. In
43
56
  # order to ease the transition to Capybara we set the default here. If you'd
44
57
  # prefer to use XPath just remove this line and adjust any selectors in your
@@ -118,3 +131,15 @@ unless ENV['DEFER_GC'] == '0' || ENV['DEFER_GC'] == 'false'
118
131
  Before { DeferredGarbageCollection.start }
119
132
  After { DeferredGarbageCollection.reconsider }
120
133
  end
134
+
135
+ # Don't run @rails4 tagged features for versions before Rails 4.
136
+ Before('@rails4') do |scenario|
137
+ scenario.skip_invoke! if Rails::VERSION::MAJOR < 4
138
+ end
139
+
140
+ Around '@silent_unpermitted_params_failure' do |scenario, block|
141
+ original = ActionController::Parameters.action_on_unpermitted_parameters
142
+ ActionController::Parameters.action_on_unpermitted_parameters = false
143
+ block.call
144
+ ActionController::Parameters.action_on_unpermitted_parameters = original
145
+ end
@@ -6,7 +6,10 @@ module NavigationHelpers
6
6
  # step definition in web_steps.rb
7
7
  #
8
8
  def path_to(page_name)
9
- case page_name
9
+ params = page_name.scan(/with params "(.*?)"/).flatten[0] || ''
10
+ page_name.sub! /\ with params.*/, ''
11
+
12
+ url = case page_name
10
13
 
11
14
  when /the home\s?page/
12
15
  '/'
@@ -16,6 +19,10 @@ module NavigationHelpers
16
19
  "/admin/posts/new"
17
20
  when /the login page/
18
21
  "/admin/login"
22
+ when /the first post show page/
23
+ "/admin/posts/1"
24
+ when /the first post edit page/
25
+ "/admin/posts/1/edit"
19
26
  when /the admin password reset form with token "([^"]*)"/
20
27
  "/admin/password/edit?reset_password_token=#{$1}"
21
28
 
@@ -23,20 +30,20 @@ module NavigationHelpers
23
30
  # the index page for posts in the user_admin namespace
24
31
  when /^the index page for (.*) in the (.*) namespace$/
25
32
  if $2 != 'root'
26
- send(:"#{$2}_#{$1}_path")
33
+ send "#{$2}_#{$1}_path"
27
34
  else
28
- send(:"#{$1}_path")
35
+ send "#{$1}_path"
29
36
  end
30
37
 
31
38
  # same as above, except defaults to admin namespace
32
39
  when /^the index page for (.*)$/
33
- send(:"admin_#{$1}_path")
40
+ send "admin_#{$1}_path"
34
41
 
35
42
  when /^the last author's posts$/
36
43
  admin_user_posts_path(User.last)
37
44
 
38
45
  when /^the last author's last post page$/
39
- admin_user_post_path(User.last, Post.where(:author_id => User.last.id).last)
46
+ admin_user_post_path(User.last, Post.where(author_id: User.last.id).last)
40
47
 
41
48
  when /^the last post's edit page$/
42
49
  edit_admin_post_path(Post.last)
@@ -51,12 +58,13 @@ module NavigationHelpers
51
58
  begin
52
59
  page_name =~ /the (.*) page/
53
60
  path_components = $1.split(/\s+/)
54
- self.send(path_components.push('path').join('_').to_sym)
61
+ self.send path_components.push('path').join('_')
55
62
  rescue Object => e
56
63
  raise "Can't find mapping from \"#{page_name}\" to a path.\n" +
57
64
  "Now, go and add a mapping in #{__FILE__}"
58
65
  end
59
66
  end
67
+ url + params
60
68
  end
61
69
  end
62
70
 
@@ -27,7 +27,7 @@ module HtmlSelectorsHelpers
27
27
  [:css, "table.index_grid"]
28
28
 
29
29
  when /^the "([^"]*)" sidebar$/
30
- [:css, "##{$1.gsub(" ", '').underscore}_sidebar_section"]
30
+ [:css, "##{$1.tr(" ", '').underscore}_sidebar_section"]
31
31
 
32
32
  # This allows you to provide a quoted selector as the scope
33
33
  # for "within" steps as was previously the default for the
@@ -0,0 +1,35 @@
1
+ Feature: User input shouldn't be symbolized
2
+
3
+ Background:
4
+ Given a configuration of:
5
+ """
6
+ ActiveAdmin.register Post
7
+ """
8
+ Given I am logged in
9
+ And 1 post exists
10
+
11
+ Scenario: The dashboard doesn't leak
12
+ Given I am on the dashboard with params "?really_long_malicious_key0"
13
+ Then "really_long_malicious_key0" shouldn't be a symbol
14
+
15
+ Scenario: The index page doesn't leak
16
+ Given I am on the index page for posts with params "?really_long_malicious_key1"
17
+ Then "really_long_malicious_key1" shouldn't be a symbol
18
+
19
+ @allow-rescue
20
+ Scenario: The filter query hash doesn't leak
21
+ Given I am on the index page for posts with params "?q[really_long_malicious_key2]"
22
+ Then "really_long_malicious_key2" shouldn't be a symbol
23
+
24
+ Scenario: The show page doesn't leak
25
+ Given I go to the first post show page with params "?really_long_malicious_key3"
26
+ Then "really_long_malicious_key3" shouldn't be a symbol
27
+
28
+ Scenario: The edit page doesn't leak
29
+ Given I go to the first post edit page with params "?really_long_malicious_key4"
30
+ Then "really_long_malicious_key4" shouldn't be a symbol
31
+
32
+ @allow-rescue
33
+ Scenario: Batch Actions don't leak
34
+ Given I POST to "admin/posts/batch_action" with params "?batch_action=really_long_malicious_key5"
35
+ Then "really_long_malicious_key5" shouldn't be a symbol
@@ -15,21 +15,20 @@ Feature: User Resetting Password
15
15
  And I follow "Forgot your password?"
16
16
  When I fill in "Email" with "admin@example.com"
17
17
  And I press "Reset My Password"
18
- Then I should see "You will receive an email with instructions"
19
- And I should see "how to reset your password in a few minutes."
18
+ Then I should see "You will receive an email with instructions on how to reset your password in a few minutes."
20
19
 
21
20
  Scenario: Changing password after resetting
22
- When "admin@example.com" requests a pasword reset with token "foobarbaz"
21
+ When "admin@example.com" requests a password reset with token "foobarbaz"
23
22
  When I go to the admin password reset form with token "foobarbaz"
24
- And I fill in "Password" with "password"
23
+ And I fill in the password field with "password"
25
24
  And I fill in "Password confirmation" with "password"
26
25
  And I press "Change my password"
27
26
  Then I should see "success"
28
27
 
29
28
  Scenario: Changing password after resetting with errors
30
- When "admin@example.com" requests a pasword reset with token "foobarbaz" but it expires
29
+ When "admin@example.com" requests a password reset with token "foobarbaz" but it expires
31
30
  When I go to the admin password reset form with token "foobarbaz"
32
- And I fill in "Password" with "password"
31
+ And I fill in the password field with "password"
33
32
  And I fill in "Password confirmation" with "wrong"
34
33
  And I press "Change my password"
35
34
  Then I should see "expired"
@@ -1,16 +1,19 @@
1
- require 'meta_search'
2
- require 'meta_search_ext'
1
+ require 'active_support/core_ext'
2
+ require 'set'
3
+
4
+ require 'ransack'
5
+ require 'ransack_ext'
3
6
  require 'bourbon'
4
- require 'devise'
5
7
  require 'kaminari'
6
8
  require 'formtastic'
7
- require 'sass'
9
+ require 'sass-rails'
8
10
  require 'inherited_resources'
9
11
  require 'jquery-rails'
12
+ require 'jquery-ui-rails'
13
+ require 'coffee-rails'
10
14
  require 'arbre'
11
- require 'active_admin/dependency_checker'
12
- require 'active_admin/sass/helpers'
13
- require 'active_admin/engine'
15
+
16
+ require 'active_admin/helpers/i18n'
14
17
 
15
18
  module ActiveAdmin
16
19
 
@@ -19,12 +22,13 @@ module ActiveAdmin
19
22
  autoload :AssetRegistration, 'active_admin/asset_registration'
20
23
  autoload :Authorization, 'active_admin/authorization_adapter'
21
24
  autoload :AuthorizationAdapter, 'active_admin/authorization_adapter'
22
- autoload :Breadcrumbs, 'active_admin/breadcrumbs'
23
25
  autoload :Callbacks, 'active_admin/callbacks'
24
26
  autoload :Component, 'active_admin/component'
25
27
  autoload :BaseController, 'active_admin/base_controller'
28
+ autoload :CanCanAdapter, 'active_admin/cancan_adapter'
26
29
  autoload :ControllerAction, 'active_admin/controller_action'
27
30
  autoload :CSVBuilder, 'active_admin/csv_builder'
31
+ autoload :Dependency, 'active_admin/dependency'
28
32
  autoload :Deprecation, 'active_admin/deprecation'
29
33
  autoload :Devise, 'active_admin/devise'
30
34
  autoload :DSL, 'active_admin/dsl'
@@ -36,11 +40,12 @@ module ActiveAdmin
36
40
  autoload :MenuCollection, 'active_admin/menu_collection'
37
41
  autoload :MenuItem, 'active_admin/menu_item'
38
42
  autoload :Namespace, 'active_admin/namespace'
43
+ autoload :OrderClause, 'active_admin/order_clause'
39
44
  autoload :Page, 'active_admin/page'
40
45
  autoload :PagePresenter, 'active_admin/page_presenter'
41
46
  autoload :PageController, 'active_admin/page_controller'
42
47
  autoload :PageDSL, 'active_admin/page_dsl'
43
- autoload :Reloader, 'active_admin/reloader'
48
+ autoload :PunditAdapter, 'active_admin/pundit_adapter'
44
49
  autoload :Resource, 'active_admin/resource'
45
50
  autoload :ResourceController, 'active_admin/resource_controller'
46
51
  autoload :ResourceDSL, 'active_admin/resource_dsl'
@@ -67,17 +72,11 @@ module ActiveAdmin
67
72
  application.prepare!
68
73
  end
69
74
 
70
- delegate :register, :to => :application
71
- delegate :register_page, :to => :application
72
- delegate :unload!, :to => :application
73
- delegate :load!, :to => :application
74
- delegate :routes, :to => :application
75
-
76
- # Returns true if this rails application has the asset
77
- # pipeline enabled.
78
- def use_asset_pipeline?
79
- DependencyChecker.rails_3_1? && Rails.application.config.try(:assets).try(:enabled)
80
- end
75
+ delegate :register, to: :application
76
+ delegate :register_page, to: :application
77
+ delegate :unload!, to: :application
78
+ delegate :load!, to: :application
79
+ delegate :routes, to: :application
81
80
 
82
81
  # A callback is triggered each time (before) Active Admin loads the configuration files.
83
82
  # In development mode, this will happen whenever the user changes files. In production
@@ -118,12 +117,14 @@ module ActiveAdmin
118
117
 
119
118
  end
120
119
 
121
- ActiveAdmin::DependencyChecker.check!
120
+ # Require things that don't support autoload
121
+ require 'active_admin/engine'
122
+ require 'active_admin/error'
122
123
 
123
- # Require internal Plugins
124
- require 'active_admin/comments'
124
+ # Require internal plugins
125
125
  require 'active_admin/batch_actions'
126
126
  require 'active_admin/filters'
127
127
 
128
- # Load gem-specific code only if that gem is being used
129
- require 'active_admin/cancan_adapter' if ActiveAdmin::DependencyChecker.cancan?
128
+ # Require ORM-specific plugins
129
+ require 'active_admin/orm/active_record' if defined? ActiveRecord
130
+ require 'active_admin/orm/mongoid' if defined? Mongoid
@@ -17,12 +17,12 @@ module ActiveAdmin
17
17
  # eg:
18
18
  #
19
19
  # factory = AbstractViewFactory.new
20
- # factory.register :my_view => SomeViewClass
20
+ # factory.register my_view: SomeViewClass
21
21
  #
22
22
  # You can setup many at the same time:
23
23
  #
24
- # factory.register :my_view => SomeClass,
25
- # :another_view => OtherViewClass
24
+ # factory.register my_view: SomeClass,
25
+ # another_view: OtherViewClass
26
26
  #
27
27
  def register(view_hash)
28
28
  view_hash.each do |view_key, view_class|
@@ -46,8 +46,7 @@ module ActiveAdmin
46
46
  set_view_for_key(key, value)
47
47
  end
48
48
 
49
- # Override respond to to include keys
50
- def respond_to?(method)
49
+ def respond_to_missing?(method, include_private)
51
50
  key = key_from_method_name(method)
52
51
  if has_key?(key)
53
52
  true
@@ -62,26 +61,17 @@ module ActiveAdmin
62
61
  key = key_from_method_name(method)
63
62
  if has_key?(key)
64
63
  if method.to_s.include?('=')
65
- self.class_eval <<-EOS
66
- def #{key}=(value)
67
- set_view_for_key(:#{key}, value)
68
- end
69
- EOS
64
+ set_view_for_key key, args.first
70
65
  else
71
- self.class_eval <<-EOS
72
- def #{key}
73
- get_view_for_key(:#{key})
74
- end
75
- EOS
66
+ get_view_for_key key
76
67
  end
77
- self.send(method, *args)
78
68
  else
79
69
  super
80
70
  end
81
71
  end
82
72
 
83
73
  def key_from_method_name(method)
84
- method.to_s.gsub('=', '').to_sym
74
+ method.to_s.tr('=', '').to_sym
85
75
  end
86
76
 
87
77
  def get_view_for_key(key)