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
@@ -14,7 +14,7 @@ module ActiveAdmin
14
14
 
15
15
  def add_classes_to_body
16
16
  @body.add_class(params[:action])
17
- @body.add_class(params[:controller].gsub('/', '_'))
17
+ @body.add_class(params[:controller].tr('/', '_'))
18
18
  @body.add_class("active_admin")
19
19
  @body.add_class("logged_in")
20
20
  @body.add_class(active_admin_namespace.name.to_s + "_namespace")
@@ -22,7 +22,7 @@ module ActiveAdmin
22
22
 
23
23
  def build_active_admin_head
24
24
  within @head do
25
- insert_tag Arbre::HTML::Title, [title, render_or_call_method_or_proc_on(self, active_admin_application.site_title)].join(" | ")
25
+ insert_tag Arbre::HTML::Title, [title, render_or_call_method_or_proc_on(self, active_admin_namespace.site_title)].compact.join(" | ")
26
26
  active_admin_application.stylesheets.each do |style, options|
27
27
  text_node stylesheet_link_tag(style, options).html_safe
28
28
  end
@@ -30,18 +30,19 @@ module ActiveAdmin
30
30
  active_admin_application.javascripts.each do |path|
31
31
  text_node(javascript_include_tag(path))
32
32
  end
33
-
34
- if active_admin_application.favicon
35
- text_node(favicon_link_tag(active_admin_application.favicon))
33
+
34
+ if active_admin_namespace.favicon
35
+ text_node(favicon_link_tag(active_admin_namespace.favicon))
36
36
  end
37
-
37
+
38
38
  text_node csrf_meta_tag
39
39
  end
40
40
  end
41
41
 
42
42
  def build_page
43
43
  within @body do
44
- div :id => "wrapper" do
44
+ div id: "wrapper" do
45
+ build_unsupported_browser
45
46
  build_header
46
47
  build_title_bar
47
48
  build_page_content
@@ -50,6 +51,12 @@ module ActiveAdmin
50
51
  end
51
52
  end
52
53
 
54
+ def build_unsupported_browser
55
+ if active_admin_namespace.unsupported_browser_matcher =~ env["HTTP_USER_AGENT"]
56
+ insert_tag view_factory.unsupported_browser
57
+ end
58
+ end
59
+
53
60
  def build_header
54
61
  insert_tag view_factory.header, active_admin_namespace, current_menu
55
62
  end
@@ -58,35 +65,32 @@ module ActiveAdmin
58
65
  insert_tag view_factory.title_bar, title, action_items_for_action
59
66
  end
60
67
 
61
-
62
68
  def build_page_content
63
69
  build_flash_messages
64
- div :id => "active_admin_content", :class => (skip_sidebar? ? "without_sidebar" : "with_sidebar") do
70
+ div id: "active_admin_content", class: (skip_sidebar? ? "without_sidebar" : "with_sidebar") do
65
71
  build_main_content_wrapper
66
72
  build_sidebar unless skip_sidebar?
67
73
  end
68
74
  end
69
75
 
70
76
  def build_flash_messages
71
- if active_admin_flash_messages.any?
72
- div :class => 'flashes' do
73
- active_admin_flash_messages.each do |type, message|
74
- div message, :class => "flash flash_#{type}"
75
- end
77
+ div class: 'flashes' do
78
+ flash_messages.each do |type, message|
79
+ div message, class: "flash flash_#{type}"
76
80
  end
77
81
  end
78
82
  end
79
83
 
80
84
  def build_main_content_wrapper
81
- div :id => "main_content_wrapper" do
82
- div :id => "main_content" do
85
+ div id: "main_content_wrapper" do
86
+ div id: "main_content" do
83
87
  main_content
84
88
  end
85
89
  end
86
90
  end
87
91
 
88
92
  def main_content
89
- I18n.t('active_admin.main_content', :model => self.class.name).html_safe
93
+ I18n.t('active_admin.main_content', model: title).html_safe
90
94
  end
91
95
 
92
96
  def title
@@ -117,7 +121,7 @@ module ActiveAdmin
117
121
 
118
122
  # Renders the sidebar
119
123
  def build_sidebar
120
- div :id => "sidebar" do
124
+ div id: "sidebar" do
121
125
  sidebar_sections_for_action.collect do |section|
122
126
  sidebar_section(section)
123
127
  end
@@ -5,23 +5,21 @@ module ActiveAdmin
5
5
  class Form < Base
6
6
 
7
7
  def title
8
- assigns[:page_title] || I18n.t("active_admin.#{params[:action]}_model",
9
- :model => active_admin_config.resource_label)
8
+ assigns[:page_title] || I18n.t("active_admin.#{normalized_action}_model",
9
+ model: active_admin_config.resource_label)
10
10
  end
11
11
 
12
12
  def form_presenter
13
- active_admin_config.get_page_presenter(:form) || default_form_config
13
+ active_admin_config.get_page_presenter(:form) || default_form_config
14
14
  end
15
15
 
16
16
  def main_content
17
- form_options = default_form_options.merge(form_presenter.options)
17
+ options = default_form_options.merge form_presenter.options
18
18
 
19
- if form_options[:partial]
20
- render(form_options[:partial])
19
+ if options[:partial]
20
+ render options[:partial]
21
21
  else
22
- active_admin_form_for(resource, form_options) do |f|
23
- instance_exec f, &form_presenter.block
24
- end
22
+ active_admin_form_for resource, options, &form_presenter.block
25
23
  end
26
24
  end
27
25
 
@@ -29,8 +27,8 @@ module ActiveAdmin
29
27
 
30
28
  def default_form_options
31
29
  {
32
- :url => default_form_path,
33
- :as => active_admin_config.resource_name.singular
30
+ url: default_form_path,
31
+ as: active_admin_config.param_key
34
32
  }
35
33
  end
36
34
 
@@ -40,10 +38,22 @@ module ActiveAdmin
40
38
 
41
39
  def default_form_config
42
40
  ActiveAdmin::PagePresenter.new do |f|
41
+ f.semantic_errors # show errors on :base by default
43
42
  f.inputs
44
43
  f.actions
45
44
  end
46
45
  end
46
+
47
+ def normalized_action
48
+ case params[:action]
49
+ when "create"
50
+ "new"
51
+ when "update"
52
+ "edit"
53
+ else
54
+ params[:action]
55
+ end
56
+ end
47
57
  end
48
58
 
49
59
  end
@@ -7,19 +7,20 @@ module ActiveAdmin
7
7
  class Index < Base
8
8
 
9
9
  def title
10
- case config[:title]
11
- when Proc then controller.instance_eval(&config[:title])
12
- when String then config[:title]
10
+ if Proc === config[:title]
11
+ controller.instance_exec &config[:title]
13
12
  else
14
- active_admin_config.plural_resource_label
13
+ config[:title] || assigns[:page_title] || active_admin_config.plural_resource_label
15
14
  end
16
15
  end
17
16
 
17
+ # Retrieves the given page presenter, or uses the default.
18
18
  def config
19
- active_admin_config.get_page_presenter(:index, params[:as]) || default_index_config
19
+ active_admin_config.get_page_presenter(:index, params[:as]) ||
20
+ ActiveAdmin::PagePresenter.new(as: :table)
20
21
  end
21
22
 
22
- # Render's the index configuration that was set in the
23
+ # Renders the index configuration that was set in the
23
24
  # controller. Defaults to rendering the ActiveAdmin::Pages::Index::Table
24
25
  def main_content
25
26
  wrap_with_batch_action_form do
@@ -59,7 +60,7 @@ module ActiveAdmin
59
60
  include ::ActiveAdmin::ViewHelpers::DownloadFormatLinksHelper
60
61
 
61
62
  def build_table_tools
62
- div :class => "table_tools" do
63
+ div class: "table_tools" do
63
64
  build_batch_actions_selector
64
65
  build_scopes
65
66
  build_index_list
@@ -81,7 +82,7 @@ module ActiveAdmin
81
82
  def build_scopes
82
83
  if active_admin_config.scopes.any?
83
84
  scope_options = {
84
- :scope_count => config[:scope_count].nil? ? true : config[:scope_count]
85
+ scope_count: config.fetch(:scope_count, true)
85
86
  }
86
87
 
87
88
  scopes_renderer active_admin_config.scopes, scope_options
@@ -101,19 +102,6 @@ module ActiveAdmin
101
102
  end
102
103
  end
103
104
 
104
- # Creates a default configuration for the resource class. This is a table
105
- # with each column displayed as well as all the default actions
106
- def default_index_config
107
- @default_index_config ||= ::ActiveAdmin::PagePresenter.new(:as => :table) do |display|
108
- selectable_column
109
- id_column
110
- resource_class.content_columns.each do |col|
111
- column col.name.to_sym
112
- end
113
- default_actions
114
- end
115
- end
116
-
117
105
  # Returns the actual class for renderering the main content on the index
118
106
  # page. To set this, use the :as option in the page_presenter block.
119
107
  def find_index_renderer_class(klass)
@@ -122,37 +110,54 @@ module ActiveAdmin
122
110
  end
123
111
 
124
112
  def render_blank_slate
125
- blank_slate_content = I18n.t("active_admin.blank_slate.content", :resource_name => active_admin_config.plural_resource_label)
113
+ blank_slate_content = I18n.t("active_admin.blank_slate.content", resource_name: active_admin_config.plural_resource_label)
126
114
  if controller.action_methods.include?('new') && authorized?(ActiveAdmin::Auth::CREATE, active_admin_config.resource_class)
127
- blank_slate_content += " " + link_to(I18n.t("active_admin.blank_slate.link"), new_resource_path)
115
+ blank_slate_content = [blank_slate_content, blank_slate_link].compact.join(" ")
128
116
  end
129
117
  insert_tag(view_factory.blank_slate, blank_slate_content)
130
118
  end
131
119
 
132
120
  def render_empty_results
133
- empty_results_content = I18n.t("active_admin.pagination.empty", :model => active_admin_config.plural_resource_label)
121
+ empty_results_content = I18n.t("active_admin.pagination.empty", model: active_admin_config.plural_resource_label)
134
122
  insert_tag(view_factory.blank_slate, empty_results_content)
135
123
  end
136
124
 
137
125
  def render_index
138
126
  renderer_class = find_index_renderer_class(config[:as])
139
- paginator = config[:paginator].nil? ? true : config[:paginator]
140
- download_links = config[:download_links].nil? ? active_admin_config.namespace.download_links : config[:download_links]
141
- pagination_total = config[:pagination_total].nil? ? true : config[:pagination_total]
142
-
143
- paginated_collection(collection, :entry_name => active_admin_config.resource_label,
144
- :entries_name => active_admin_config.plural_resource_label(:count => collection_size),
145
- :download_links => download_links,
146
- :paginator => paginator,
147
- :pagination_total => pagination_total) do
148
- div :class => 'index_content' do
127
+ paginator = config.fetch(:paginator, true)
128
+ download_links = config.fetch(:download_links, active_admin_config.namespace.download_links)
129
+ pagination_total = config.fetch(:pagination_total, true)
130
+ per_page = config.fetch(:per_page, active_admin_config.per_page)
131
+
132
+ paginated_collection(collection, entry_name: active_admin_config.resource_label,
133
+ entries_name: active_admin_config.plural_resource_label(count: collection_size),
134
+ download_links: download_links,
135
+ paginator: paginator,
136
+ per_page: per_page,
137
+ pagination_total: pagination_total) do
138
+ div class: 'index_content' do
149
139
  insert_tag(renderer_class, config, collection)
150
140
  end
151
141
  end
152
142
  end
153
143
 
144
+ private
145
+
146
+ def blank_slate_link
147
+ if config.options.has_key?(:blank_slate_link)
148
+ blank_slate_link = config.options[:blank_slate_link]
149
+ if blank_slate_link.is_a?(Proc)
150
+ instance_exec(&blank_slate_link)
151
+ end
152
+ else
153
+ default_blank_slate_link
154
+ end
155
+ end
156
+
157
+ def default_blank_slate_link
158
+ link_to(I18n.t("active_admin.blank_slate.link"), new_resource_path)
159
+ end
154
160
  end
155
161
  end
156
162
  end
157
163
  end
158
-
@@ -7,7 +7,7 @@ module ActiveAdmin
7
7
  class Layout < Base
8
8
 
9
9
  def title
10
- assigns[:page_title] || I18n.t("active_admin.#{params[:action]}", :default => params[:action].to_s.titleize)
10
+ assigns[:page_title] || I18n.t("active_admin.#{params[:action]}", default: params[:action].to_s.titleize)
11
11
  end
12
12
 
13
13
  # Render the content_for(:layout) into the main content area
@@ -11,7 +11,7 @@ module ActiveAdmin
11
11
  if config[:title]
12
12
  render_or_call_method_or_proc_on(resource, config[:title])
13
13
  else
14
- default_title
14
+ assigns[:page_title] || default_title
15
15
  end
16
16
  end
17
17
 
@@ -25,7 +25,7 @@ module ActiveAdmin
25
25
  end
26
26
 
27
27
  def attributes_table(*args, &block)
28
- panel(I18n.t('active_admin.details', :model => active_admin_config.resource_label)) do
28
+ panel(I18n.t('active_admin.details', model: active_admin_config.resource_label)) do
29
29
  attributes_table_for resource, *args, &block
30
30
  end
31
31
  end
@@ -43,8 +43,8 @@ module ActiveAdmin
43
43
  end
44
44
 
45
45
  module DefaultMainContent
46
- def default_main_content
47
- attributes_table *default_attribute_table_rows
46
+ def default_main_content(&block)
47
+ attributes_table(*default_attribute_table_rows, &block)
48
48
  end
49
49
 
50
50
  def default_attribute_table_rows
@@ -40,10 +40,14 @@ module ActiveAdmin
40
40
  end
41
41
 
42
42
  def build_menu_item(item)
43
- li :id => item.id do |li|
43
+ li id: item.id do |li|
44
44
  li.add_class "current" if item.current? assigns[:current_tab]
45
45
 
46
- text_node link_to item.label(self), item.url(self), item.html_options
46
+ if url = item.url(self)
47
+ text_node link_to item.label(self), url, item.html_options
48
+ else
49
+ span item.label(self), item.html_options
50
+ end
47
51
 
48
52
  if children = item.items(self).presence
49
53
  li.add_class "has_nested"
@@ -55,7 +59,7 @@ module ActiveAdmin
55
59
  end
56
60
 
57
61
  def default_options
58
- { :id => "tabs" }
62
+ { id: "tabs" }
59
63
  end
60
64
  end
61
65
  end
@@ -3,7 +3,7 @@ module ActiveAdmin
3
3
  class TitleBar < Component
4
4
 
5
5
  def build(title, action_items)
6
- super(:id => "title_bar")
6
+ super(id: "title_bar")
7
7
  @title = title
8
8
  @action_items = action_items
9
9
  build_titlebar_left
@@ -13,35 +13,37 @@ module ActiveAdmin
13
13
  private
14
14
 
15
15
  def build_titlebar_left
16
- div :id => "titlebar_left" do
16
+ div id: "titlebar_left" do
17
17
  build_breadcrumb
18
18
  build_title_tag
19
19
  end
20
20
  end
21
21
 
22
22
  def build_titlebar_right
23
- div :id => "titlebar_right" do
23
+ div id: "titlebar_right" do
24
24
  build_action_items
25
25
  end
26
26
  end
27
27
 
28
28
  def build_breadcrumb(separator = "/")
29
- links = if active_admin_config && active_admin_config.breadcrumb.present?
29
+ breadcrumb_config = active_admin_config && active_admin_config.breadcrumb
30
+
31
+ links = if breadcrumb_config.is_a?(Proc)
30
32
  instance_exec(controller, &active_admin_config.breadcrumb)
31
- else
33
+ elsif breadcrumb_config.present?
32
34
  breadcrumb_links
33
35
  end
34
36
  return unless links.present? && links.is_a?(::Array)
35
- span :class => "breadcrumb" do
37
+ span class: "breadcrumb" do
36
38
  links.each do |link|
37
39
  text_node link
38
- span(separator, :class => "breadcrumb_sep")
40
+ span(separator, class: "breadcrumb_sep")
39
41
  end
40
42
  end
41
43
  end
42
44
 
43
45
  def build_title_tag
44
- h2(@title, :id => 'page_title')
46
+ h2(@title, id: 'page_title')
45
47
  end
46
48
 
47
49
  def build_action_items
@@ -2,36 +2,11 @@ module ActiveAdmin
2
2
  module Generators
3
3
  class AssetsGenerator < Rails::Generators::Base
4
4
 
5
- class_option :bourbon, :type => :boolean, :default => true,
6
- :desc => "Generate Bourbon scss files if using Rails 3.0.x"
7
-
8
- class_option :jquery, :type => :boolean, :default => true,
9
- :desc => "Generate jQuery js files if using Rails 3.0.x"
10
-
11
- def self.source_root
12
- @_active_admin_source_root ||= File.expand_path("../templates", __FILE__)
13
- end
5
+ source_root File.expand_path("../templates", __FILE__)
14
6
 
15
7
  def install_assets
16
- require 'rails'
17
- require 'active_admin'
18
-
19
- if ActiveAdmin.use_asset_pipeline?
20
- template '3.1/active_admin.js', 'app/assets/javascripts/active_admin.js'
21
- template '3.1/active_admin.css.scss', 'app/assets/stylesheets/active_admin.css.scss'
22
- else
23
- template '3.0/active_admin.js', 'public/javascripts/active_admin.js'
24
- directory '../../../../../app/assets/images/active_admin', 'public/images/active_admin'
25
- generate "jquery:install --ui" if options.jquery?
26
- install_bourbon if options.bourbon?
27
- end
28
- end
29
-
30
- private
31
-
32
- def install_bourbon
33
- rake "bourbon:install"
34
- create_file "public/stylesheets/sass/_bourbon.scss", '@import "bourbon/bourbon"'
8
+ template 'active_admin.js.coffee', 'app/assets/javascripts/active_admin.js.coffee'
9
+ template 'active_admin.css.scss', 'app/assets/stylesheets/active_admin.css.scss'
35
10
  end
36
11
 
37
12
  end