yousty-activeadmin 1.0.4.pre → 1.0.5.pre

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (467) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +261 -211
  3. data/CONTRIBUTING.md +73 -39
  4. data/Gemfile +38 -20
  5. data/Guardfile +1 -0
  6. data/LICENSE +1 -1
  7. data/README.md +48 -24
  8. data/Rakefile +12 -4
  9. data/activeadmin.gemspec +21 -26
  10. data/app/assets/javascripts/active_admin/application.js.coffee +34 -5
  11. data/app/assets/javascripts/active_admin/base.js.coffee +11 -2
  12. data/app/assets/javascripts/active_admin/ext/jquery-ui.js.coffee +6 -0
  13. data/app/assets/javascripts/active_admin/ext/jquery.js.coffee +7 -0
  14. data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +39 -0
  15. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +3 -4
  16. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +51 -55
  17. data/app/assets/javascripts/active_admin/lib/flash.js.coffee +19 -0
  18. data/app/assets/javascripts/active_admin/lib/has_many.js.coffee +79 -0
  19. data/app/assets/javascripts/active_admin/lib/modal_dialog.js.coffee +37 -0
  20. data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +27 -0
  21. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +29 -58
  22. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +2 -3
  23. data/app/assets/stylesheets/active_admin/{_base.css.scss → _base.scss} +3 -0
  24. data/app/assets/stylesheets/active_admin/{_forms.css.scss → _forms.scss} +51 -15
  25. data/app/assets/stylesheets/active_admin/{_header.css.scss → _header.scss} +9 -5
  26. data/app/assets/stylesheets/active_admin/{_mixins.css.scss → _mixins.scss} +0 -0
  27. data/app/assets/stylesheets/active_admin/{_typography.css.scss → _typography.scss} +0 -0
  28. data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +11 -0
  29. data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -1
  30. data/app/assets/stylesheets/active_admin/components/{_comments.css.scss → _comments.scss} +0 -0
  31. data/app/assets/stylesheets/active_admin/components/{_date_picker.css.scss → _date_picker.scss} +40 -12
  32. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +3 -1
  33. data/app/assets/stylesheets/active_admin/components/_flash_messages.scss +37 -0
  34. data/app/assets/stylesheets/active_admin/components/_modal_dialog.scss +34 -0
  35. data/app/assets/stylesheets/active_admin/components/_pagination.scss +10 -0
  36. data/app/assets/stylesheets/active_admin/components/{_popovers.css.scss → _popovers.scss} +0 -0
  37. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +4 -0
  38. data/app/assets/stylesheets/active_admin/components/_table_tools.scss +67 -0
  39. data/app/assets/stylesheets/active_admin/components/{_tables.css.scss → _tables.scss} +1 -0
  40. data/app/assets/stylesheets/active_admin/components/_tabs.scss +65 -0
  41. data/app/assets/stylesheets/active_admin/components/_unsupported_browser.scss +16 -0
  42. data/app/assets/stylesheets/active_admin/mixins/{_all.css.scss → _all.scss} +0 -0
  43. data/app/assets/stylesheets/active_admin/mixins/{_buttons.css.scss → _buttons.scss} +0 -0
  44. data/app/assets/stylesheets/active_admin/mixins/{_gradients.css.scss → _gradients.scss} +1 -1
  45. data/app/assets/stylesheets/active_admin/mixins/{_icons.css.scss → _icons.scss} +1 -2
  46. data/app/assets/stylesheets/active_admin/mixins/{_reset.css.scss → _reset.scss} +0 -0
  47. data/app/assets/stylesheets/active_admin/mixins/{_rounded.css.scss → _rounded.scss} +0 -0
  48. data/app/assets/stylesheets/active_admin/mixins/{_sections.css.scss → _sections.scss} +7 -1
  49. data/app/assets/stylesheets/active_admin/mixins/{_shadows.css.scss → _shadows.scss} +0 -0
  50. data/app/assets/stylesheets/active_admin/mixins/{_variables.css.scss → _variables.scss} +10 -8
  51. data/app/assets/stylesheets/active_admin/{print.css.scss → print.scss} +4 -0
  52. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +10 -7
  53. data/app/views/active_admin/devise/confirmations/new.html.erb +15 -0
  54. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +1 -1
  55. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +1 -1
  56. data/app/views/active_admin/devise/passwords/edit.html.erb +9 -10
  57. data/app/views/active_admin/devise/passwords/new.html.erb +5 -4
  58. data/app/views/active_admin/devise/registrations/new.html.erb +22 -0
  59. data/app/views/active_admin/devise/sessions/new.html.erb +8 -8
  60. data/app/views/active_admin/devise/shared/_links.erb +1 -1
  61. data/app/views/active_admin/devise/unlocks/new.html.erb +5 -4
  62. data/app/views/layouts/active_admin_logged_out.html.erb +3 -5
  63. data/config/locales/ar.yml +120 -0
  64. data/config/locales/bg.yml +26 -6
  65. data/config/locales/bs.yml +122 -0
  66. data/config/locales/ca.yml +10 -1
  67. data/config/locales/cs.yml +7 -2
  68. data/config/locales/da.yml +7 -3
  69. data/config/locales/de-CH.yml +14 -31
  70. data/config/locales/de.yml +33 -33
  71. data/config/locales/el.yml +127 -0
  72. data/config/locales/en-GB.yml +11 -4
  73. data/config/locales/en.yml +21 -4
  74. data/config/locales/{es_MX.yml → es-MX.yml} +14 -24
  75. data/config/locales/es.yml +32 -25
  76. data/config/locales/fa.yml +120 -0
  77. data/config/locales/fi.yml +9 -5
  78. data/config/locales/fr.yml +28 -12
  79. data/config/locales/he.yml +7 -3
  80. data/config/locales/hr.yml +42 -11
  81. data/config/locales/hu.yml +10 -3
  82. data/config/locales/it.yml +31 -3
  83. data/config/locales/ja.yml +17 -4
  84. data/config/locales/ko.yml +7 -1
  85. data/config/locales/lt.yml +42 -11
  86. data/config/locales/lv.yml +7 -3
  87. data/config/locales/{no-NB.yml → nb.yml} +46 -15
  88. data/config/locales/nl.yml +36 -5
  89. data/config/locales/pl.yml +13 -8
  90. data/config/locales/pt-BR.yml +36 -5
  91. data/config/locales/pt-PT.yml +8 -4
  92. data/config/locales/ro.yml +7 -3
  93. data/config/locales/ru.yml +26 -5
  94. data/config/locales/sv-SE.yml +9 -5
  95. data/config/locales/tr.yml +10 -3
  96. data/config/locales/uk.yml +36 -12
  97. data/config/locales/vi.yml +7 -3
  98. data/config/locales/zh-CN.yml +26 -10
  99. data/config/locales/zh-TW.yml +19 -13
  100. data/docs/0-installation.md +14 -6
  101. data/docs/1-general-configuration.md +8 -5
  102. data/docs/10-custom-pages.md +68 -70
  103. data/docs/11-decorators.md +48 -59
  104. data/docs/12-arbre-components.md +79 -73
  105. data/docs/13-authorization-adapter.md +128 -107
  106. data/docs/14-gotchas.md +90 -0
  107. data/docs/2-resource-customization.md +82 -15
  108. data/docs/3-index-pages.md +71 -12
  109. data/docs/3-index-pages/custom-index.md +31 -0
  110. data/docs/3-index-pages/index-as-table.md +45 -2
  111. data/docs/4-csv-format.md +1 -1
  112. data/docs/5-forms.md +78 -29
  113. data/docs/6-show-pages.md +31 -3
  114. data/docs/7-sidebars.md +46 -25
  115. data/docs/8-custom-actions.md +98 -77
  116. data/docs/9-batch-actions.md +211 -133
  117. data/docs/README.md +24 -0
  118. data/features/action_item.feature +3 -3
  119. data/features/authorization_pundit.feature +37 -0
  120. data/features/belongs_to.feature +3 -0
  121. data/features/breadcrumb.feature +48 -0
  122. data/features/comments/commenting.feature +44 -13
  123. data/features/development_reloading.feature +3 -4
  124. data/features/edit_page.feature +9 -19
  125. data/features/favicon.feature +3 -3
  126. data/features/i18n.feature +5 -0
  127. data/features/index/batch_actions.feature +41 -0
  128. data/features/index/filters.feature +23 -0
  129. data/features/index/format_as_csv.feature +90 -4
  130. data/features/index/index_as_blog.feature +4 -4
  131. data/features/index/index_as_table.feature +102 -6
  132. data/features/index/index_blank_slate.feature +22 -0
  133. data/features/index/index_scope_to.feature +16 -16
  134. data/features/index/page_title.feature +11 -0
  135. data/features/index/pagination.feature +1 -1
  136. data/features/index/switch_index_view.feature +14 -14
  137. data/features/new_page.feature +10 -20
  138. data/features/registering_pages.feature +1 -1
  139. data/features/renamed_resource.feature +32 -0
  140. data/features/show/page_title.feature +11 -0
  141. data/features/show/tabs.feature +27 -0
  142. data/features/sidebar_sections.feature +12 -0
  143. data/features/specifying_actions.feature +3 -3
  144. data/features/step_definitions/action_item_steps.rb +2 -2
  145. data/features/step_definitions/action_link_steps.rb +14 -1
  146. data/features/step_definitions/additional_web_steps.rb +17 -18
  147. data/features/step_definitions/asset_steps.rb +3 -3
  148. data/features/step_definitions/attribute_steps.rb +8 -3
  149. data/features/step_definitions/batch_action_steps.rb +26 -9
  150. data/features/step_definitions/blog_steps.rb +3 -0
  151. data/features/step_definitions/breadcrumb_steps.rb +1 -1
  152. data/features/step_definitions/comment_steps.rb +1 -1
  153. data/features/step_definitions/configuration_steps.rb +1 -1
  154. data/features/step_definitions/dashboard_steps.rb +2 -2
  155. data/features/step_definitions/factory_steps.rb +6 -6
  156. data/features/step_definitions/filter_steps.rb +25 -3
  157. data/features/step_definitions/flash_steps.rb +3 -3
  158. data/features/step_definitions/format_steps.rb +17 -10
  159. data/features/step_definitions/index_scope_steps.rb +5 -5
  160. data/features/step_definitions/layout_steps.rb +1 -1
  161. data/features/step_definitions/member_link_steps.rb +2 -2
  162. data/features/step_definitions/menu_steps.rb +3 -3
  163. data/features/step_definitions/pagination_steps.rb +2 -3
  164. data/features/step_definitions/sidebar_steps.rb +8 -3
  165. data/features/step_definitions/site_title_steps.rb +6 -4
  166. data/features/step_definitions/symbol_leak_steps.rb +1 -1
  167. data/features/step_definitions/tab_steps.rb +5 -0
  168. data/features/step_definitions/table_steps.rb +4 -4
  169. data/features/step_definitions/user_steps.rb +15 -9
  170. data/features/step_definitions/web_steps.rb +10 -11
  171. data/features/sti_resource.feature +2 -10
  172. data/features/strong_parameters.feature +73 -0
  173. data/features/support/env.rb +35 -2
  174. data/features/support/paths.rb +2 -2
  175. data/features/support/selectors.rb +1 -1
  176. data/features/users/resetting_password.feature +7 -7
  177. data/lib/active_admin.rb +18 -13
  178. data/lib/active_admin/abstract_view_factory.rb +7 -17
  179. data/lib/active_admin/application.rb +50 -25
  180. data/lib/active_admin/asset_registration.rb +2 -2
  181. data/lib/active_admin/authorization_adapter.rb +2 -2
  182. data/lib/active_admin/base_controller.rb +2 -3
  183. data/lib/active_admin/base_controller/authorization.rb +13 -31
  184. data/lib/active_admin/batch_actions.rb +1 -1
  185. data/lib/active_admin/batch_actions/controller.rb +13 -7
  186. data/lib/active_admin/batch_actions/resource_extension.rb +43 -17
  187. data/lib/active_admin/batch_actions/views/batch_action_form.rb +7 -4
  188. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +3 -3
  189. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +8 -17
  190. data/lib/active_admin/batch_actions/views/selection_cells.rb +4 -4
  191. data/lib/active_admin/callbacks.rb +25 -24
  192. data/lib/active_admin/cancan_adapter.rb +7 -11
  193. data/lib/active_admin/csv_builder.rb +92 -15
  194. data/lib/active_admin/dependency.rb +93 -0
  195. data/lib/active_admin/deprecation.rb +6 -7
  196. data/lib/active_admin/devise.rb +26 -14
  197. data/lib/active_admin/dsl.rb +18 -11
  198. data/lib/active_admin/engine.rb +7 -2
  199. data/lib/active_admin/error.rb +59 -0
  200. data/lib/active_admin/filters/dsl.rb +2 -2
  201. data/lib/active_admin/filters/forms.rb +19 -30
  202. data/lib/active_admin/filters/formtastic_addons.rb +20 -11
  203. data/lib/active_admin/filters/resource_extension.rb +16 -9
  204. data/lib/active_admin/form_builder.rb +94 -105
  205. data/lib/active_admin/helpers/collection.rb +7 -13
  206. data/lib/active_admin/helpers/i18n.rb +7 -0
  207. data/lib/active_admin/helpers/optional_display.rb +5 -5
  208. data/lib/active_admin/helpers/scope_chain.rb +1 -1
  209. data/lib/active_admin/helpers/settings.rb +16 -9
  210. data/lib/active_admin/iconic.rb +17 -15
  211. data/lib/active_admin/iconic/icons.rb +136 -136
  212. data/lib/active_admin/inputs.rb +11 -7
  213. data/lib/active_admin/inputs/datepicker_input.rb +1 -1
  214. data/lib/active_admin/inputs/filters/base.rb +42 -0
  215. data/lib/active_admin/inputs/filters/base/search_method_select.rb +75 -0
  216. data/lib/active_admin/inputs/filters/boolean_input.rb +24 -0
  217. data/lib/active_admin/inputs/filters/check_boxes_input.rb +50 -0
  218. data/lib/active_admin/inputs/filters/date_range_input.rb +36 -0
  219. data/lib/active_admin/inputs/filters/numeric_input.rb +12 -0
  220. data/lib/active_admin/inputs/filters/select_input.rb +54 -0
  221. data/lib/active_admin/inputs/filters/string_input.rb +26 -0
  222. data/lib/active_admin/menu.rb +3 -3
  223. data/lib/active_admin/menu_collection.rb +1 -4
  224. data/lib/active_admin/namespace.rb +52 -29
  225. data/lib/active_admin/order_clause.rb +26 -0
  226. data/lib/active_admin/orm/active_record.rb +2 -0
  227. data/lib/active_admin/orm/active_record/comments.rb +48 -51
  228. data/lib/active_admin/orm/active_record/comments/comment.rb +16 -10
  229. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +1 -1
  230. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +1 -1
  231. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +15 -13
  232. data/lib/active_admin/page.rb +5 -1
  233. data/lib/active_admin/page_dsl.rb +1 -1
  234. data/lib/active_admin/page_presenter.rb +2 -2
  235. data/lib/active_admin/pundit_adapter.rb +68 -0
  236. data/lib/active_admin/resource.rb +12 -3
  237. data/lib/active_admin/resource/action_items.rb +15 -8
  238. data/lib/active_admin/resource/belongs_to.rb +7 -3
  239. data/lib/active_admin/resource/controllers.rb +1 -0
  240. data/lib/active_admin/resource/includes.rb +12 -0
  241. data/lib/active_admin/resource/menu.rb +5 -5
  242. data/lib/active_admin/resource/naming.rb +25 -47
  243. data/lib/active_admin/resource/page_presenters.rb +1 -1
  244. data/lib/active_admin/resource/routes.rb +26 -10
  245. data/lib/active_admin/resource/scope_to.rb +7 -7
  246. data/lib/active_admin/resource/sidebars.rb +1 -0
  247. data/lib/active_admin/resource_collection.rb +44 -16
  248. data/lib/active_admin/resource_controller.rb +6 -5
  249. data/lib/active_admin/resource_controller/data_access.rb +87 -82
  250. data/lib/active_admin/resource_controller/decorators.rb +91 -9
  251. data/lib/active_admin/resource_controller/streaming.rb +37 -0
  252. data/lib/active_admin/resource_dsl.rb +54 -10
  253. data/lib/active_admin/router.rb +7 -7
  254. data/lib/active_admin/scope.rb +6 -6
  255. data/lib/active_admin/sidebar_section.rb +10 -2
  256. data/lib/active_admin/version.rb +1 -1
  257. data/lib/active_admin/view_factory.rb +17 -16
  258. data/lib/active_admin/view_helpers.rb +0 -1
  259. data/lib/active_admin/view_helpers/auto_link_helper.rb +23 -12
  260. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +13 -6
  261. data/lib/active_admin/view_helpers/display_helper.rb +30 -17
  262. data/lib/active_admin/view_helpers/download_format_links_helper.rb +21 -24
  263. data/lib/active_admin/view_helpers/fields_for.rb +2 -2
  264. data/lib/active_admin/view_helpers/flash_helper.rb +4 -3
  265. data/lib/active_admin/view_helpers/form_helper.rb +5 -9
  266. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +6 -6
  267. data/lib/active_admin/views/action_items.rb +2 -2
  268. data/lib/active_admin/views/components/action_list_popover.rb +1 -1
  269. data/lib/active_admin/views/components/active_admin_form.rb +123 -0
  270. data/lib/active_admin/views/components/attributes_table.rb +22 -13
  271. data/lib/active_admin/views/components/blank_slate.rb +1 -1
  272. data/lib/active_admin/views/components/columns.rb +13 -7
  273. data/lib/active_admin/views/components/dropdown_menu.rb +6 -6
  274. data/lib/active_admin/views/components/index_list.rb +7 -7
  275. data/lib/active_admin/views/components/paginated_collection.rb +33 -17
  276. data/lib/active_admin/views/components/panel.rb +8 -2
  277. data/lib/active_admin/views/components/popover.rb +1 -1
  278. data/lib/active_admin/views/components/scopes.rb +1 -1
  279. data/lib/active_admin/views/components/sidebar_section.rb +3 -2
  280. data/lib/active_admin/views/components/site_title.rb +2 -2
  281. data/lib/active_admin/views/components/status_tag.rb +34 -11
  282. data/lib/active_admin/views/components/table_for.rb +67 -22
  283. data/lib/active_admin/views/components/tabs.rb +28 -0
  284. data/lib/active_admin/views/components/unsupported_browser.rb +11 -0
  285. data/lib/active_admin/views/footer.rb +3 -3
  286. data/lib/active_admin/views/header.rb +3 -3
  287. data/lib/active_admin/views/index_as_blog.rb +6 -6
  288. data/lib/active_admin/views/index_as_grid.rb +2 -2
  289. data/lib/active_admin/views/index_as_table.rb +127 -40
  290. data/lib/active_admin/views/pages/base.rb +22 -18
  291. data/lib/active_admin/views/pages/form.rb +16 -6
  292. data/lib/active_admin/views/pages/index.rb +36 -20
  293. data/lib/active_admin/views/pages/layout.rb +1 -1
  294. data/lib/active_admin/views/pages/show.rb +4 -4
  295. data/lib/active_admin/views/tabbed_navigation.rb +7 -3
  296. data/lib/active_admin/views/title_bar.rb +10 -8
  297. data/lib/generators/active_admin/assets/assets_generator.rb +1 -3
  298. data/lib/generators/active_admin/devise/devise_generator.rb +20 -28
  299. data/lib/generators/active_admin/install/install_generator.rb +8 -9
  300. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +20 -22
  301. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +12 -9
  302. data/lib/generators/active_admin/install/templates/dashboard.rb +4 -4
  303. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +3 -3
  304. data/lib/generators/active_admin/page/USAGE +8 -0
  305. data/lib/generators/active_admin/page/page_generator.rb +12 -0
  306. data/lib/generators/active_admin/page/templates/page.rb +5 -0
  307. data/lib/generators/active_admin/resource/resource_generator.rb +2 -4
  308. data/lib/generators/active_admin/resource/templates/admin.rb +15 -0
  309. data/lib/ransack_ext.rb +4 -4
  310. data/script/local +2 -2
  311. data/script/travis_cache +107 -0
  312. data/spec/javascripts/coffeescripts/jquery.aa.flash.js.coffee +25 -0
  313. data/spec/javascripts/fixtures/flashes.html +2 -0
  314. data/spec/rails_helper.rb +154 -0
  315. data/spec/{integration → requests}/default_namespace_spec.rb +6 -6
  316. data/spec/{integration → requests}/javascript_spec.rb +5 -5
  317. data/spec/requests/memory_spec.rb +23 -0
  318. data/spec/requests/stylesheets_spec.rb +18 -0
  319. data/spec/spec_helper.rb +12 -170
  320. data/spec/support/detect_rails_version.rb +31 -39
  321. data/spec/support/rails_template.rb +61 -34
  322. data/spec/support/rails_template_with_data.rb +14 -14
  323. data/spec/support/templates/admin/stores.rb +3 -5
  324. data/spec/support/templates/policies/active_admin/comment_policy.rb +9 -0
  325. data/spec/support/templates/policies/active_admin/page_policy.rb +18 -0
  326. data/spec/support/templates/policies/admin_user_policy.rb +11 -0
  327. data/spec/support/templates/policies/application_policy.rb +45 -0
  328. data/spec/support/templates/policies/category_policy.rb +7 -0
  329. data/spec/support/templates/policies/post_policy.rb +15 -0
  330. data/spec/support/templates/policies/store_policy.rb +11 -0
  331. data/spec/support/templates/policies/user_policy.rb +11 -0
  332. data/spec/support/templates/post_decorator.rb +4 -46
  333. data/spec/unit/abstract_view_factory_spec.rb +11 -11
  334. data/spec/unit/action_builder_spec.rb +24 -18
  335. data/spec/unit/active_admin_spec.rb +2 -2
  336. data/spec/unit/application_spec.rb +30 -31
  337. data/spec/unit/asset_registration_spec.rb +11 -11
  338. data/spec/unit/authorization/authorization_adapter_spec.rb +7 -7
  339. data/spec/unit/authorization/controller_authorization_spec.rb +11 -11
  340. data/spec/unit/authorization/index_overriding_spec.rb +22 -0
  341. data/spec/unit/auto_link_spec.rb +42 -5
  342. data/spec/unit/batch_actions/resource_spec.rb +15 -14
  343. data/spec/unit/batch_actions/settings_spec.rb +18 -18
  344. data/spec/unit/belongs_to_spec.rb +26 -17
  345. data/spec/unit/cancan_adapter_spec.rb +4 -4
  346. data/spec/unit/comments_spec.rb +99 -39
  347. data/spec/unit/component_spec.rb +3 -3
  348. data/spec/unit/config_shared_examples.rb +8 -8
  349. data/spec/unit/controller_filters_spec.rb +26 -14
  350. data/spec/unit/csv_builder_spec.rb +152 -24
  351. data/spec/unit/dependency_spec.rb +135 -0
  352. data/spec/unit/devise_spec.rb +17 -37
  353. data/spec/unit/dsl_spec.rb +70 -9
  354. data/spec/unit/event_spec.rb +9 -9
  355. data/spec/unit/filters/filter_form_builder_spec.rb +167 -157
  356. data/spec/unit/filters/resource_spec.rb +35 -33
  357. data/spec/unit/form_builder_spec.rb +383 -145
  358. data/spec/unit/generators/install_spec.rb +5 -5
  359. data/spec/unit/helpers/collection_spec.rb +18 -18
  360. data/spec/unit/helpers/scope_chain_spec.rb +5 -5
  361. data/spec/unit/helpers/settings_spec.rb +4 -4
  362. data/spec/unit/i18n_spec.rb +12 -0
  363. data/spec/unit/menu_collection_spec.rb +14 -14
  364. data/spec/unit/menu_item_spec.rb +42 -42
  365. data/spec/unit/menu_spec.rb +20 -20
  366. data/spec/unit/namespace/authorization_spec.rb +5 -5
  367. data/spec/unit/namespace/register_page_spec.rb +9 -9
  368. data/spec/unit/namespace/register_resource_spec.rb +26 -28
  369. data/spec/unit/namespace_spec.rb +20 -20
  370. data/spec/unit/order_clause_spec.rb +81 -0
  371. data/spec/unit/page_controller_spec.rb +1 -1
  372. data/spec/unit/page_spec.rb +18 -12
  373. data/spec/unit/pretty_format_spec.rb +42 -14
  374. data/spec/unit/pundit_adapter_spec.rb +98 -0
  375. data/spec/unit/resource/action_items_spec.rb +13 -10
  376. data/spec/unit/resource/includes_spec.rb +21 -0
  377. data/spec/unit/resource/menu_spec.rb +1 -1
  378. data/spec/unit/resource/naming_spec.rb +23 -23
  379. data/spec/unit/resource/page_presenters_spec.rb +8 -8
  380. data/spec/unit/resource/pagination_spec.rb +6 -6
  381. data/spec/unit/resource/routes_spec.rb +10 -10
  382. data/spec/unit/resource/scopes_spec.rb +14 -7
  383. data/spec/unit/resource/sidebars_spec.rb +6 -6
  384. data/spec/unit/resource_collection_spec.rb +66 -68
  385. data/spec/unit/resource_controller/data_access_spec.rb +39 -21
  386. data/spec/unit/resource_controller/decorators_spec.rb +83 -0
  387. data/spec/unit/resource_controller/sidebars_spec.rb +7 -8
  388. data/spec/unit/resource_controller_spec.rb +66 -62
  389. data/spec/unit/resource_registration_spec.rb +12 -12
  390. data/spec/unit/resource_spec.rb +75 -40
  391. data/spec/unit/routing_spec.rb +39 -31
  392. data/spec/unit/scope_spec.rb +112 -30
  393. data/spec/unit/settings_spec.rb +51 -21
  394. data/spec/unit/view_factory_spec.rb +2 -2
  395. data/spec/unit/view_helpers/breadcrumbs_spec.rb +137 -69
  396. data/spec/unit/view_helpers/display_name_spec.rb +49 -21
  397. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +5 -5
  398. data/spec/unit/view_helpers/fields_for_spec.rb +18 -18
  399. data/spec/unit/view_helpers/flash_helper_spec.rb +25 -0
  400. data/spec/unit/view_helpers/form_helper_spec.rb +9 -22
  401. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +59 -21
  402. data/spec/unit/views/components/action_list_popover_spec.rb +16 -6
  403. data/spec/unit/views/components/attributes_table_spec.rb +94 -52
  404. data/spec/unit/views/components/batch_action_popover_spec.rb +20 -6
  405. data/spec/unit/views/components/blank_slate_spec.rb +14 -4
  406. data/spec/unit/views/components/columns_spec.rb +52 -22
  407. data/spec/unit/views/components/index_list_spec.rb +11 -8
  408. data/spec/unit/views/components/index_table_for_spec.rb +46 -0
  409. data/spec/unit/views/components/paginated_collection_spec.rb +68 -59
  410. data/spec/unit/views/components/panel_spec.rb +32 -21
  411. data/spec/unit/views/components/popover_spec.rb +7 -7
  412. data/spec/unit/views/components/sidebar_section_spec.rb +18 -8
  413. data/spec/unit/views/components/site_title_spec.rb +8 -8
  414. data/spec/unit/views/components/status_tag_spec.rb +178 -38
  415. data/spec/unit/views/components/table_for_spec.rb +227 -44
  416. data/spec/unit/views/components/tabs_spec.rb +39 -0
  417. data/spec/unit/views/components/unsupported_browser_spec.rb +47 -0
  418. data/spec/unit/views/pages/form_spec.rb +17 -10
  419. data/spec/unit/views/pages/index_spec.rb +60 -0
  420. data/spec/unit/views/pages/layout_spec.rb +17 -21
  421. data/spec/unit/views/pages/show_spec.rb +16 -3
  422. data/spec/unit/views/tabbed_navigation_spec.rb +61 -52
  423. data/tasks/docs.rake +1 -1
  424. data/tasks/parallel_tests.rake +8 -2
  425. data/tasks/test.rake +8 -4
  426. data/tasks/yard.rake +7 -5
  427. metadata +180 -101
  428. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  429. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  430. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  431. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  432. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  433. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +0 -10
  434. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +0 -4
  435. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +0 -13
  436. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +0 -3
  437. data/app/assets/images/active_admin/loading.gif +0 -0
  438. data/app/assets/javascripts/active_admin/components/application.js.coffee +0 -23
  439. data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +0 -26
  440. data/app/assets/javascripts/active_admin/components/has_many.js.coffee +0 -41
  441. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +0 -11
  442. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +0 -39
  443. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +0 -95
  444. data/app/views/active_admin/dashboard/index.html.arb +0 -1
  445. data/app/views/active_admin/resource/index.csv.erb +0 -17
  446. data/docs/3-index-pages/create-an-index.md +0 -29
  447. data/lib/active_admin/inputs/filter_base.rb +0 -33
  448. data/lib/active_admin/inputs/filter_base/search_method_select.rb +0 -73
  449. data/lib/active_admin/inputs/filter_boolean_input.rb +0 -32
  450. data/lib/active_admin/inputs/filter_check_boxes_input.rb +0 -51
  451. data/lib/active_admin/inputs/filter_date_range_input.rb +0 -34
  452. data/lib/active_admin/inputs/filter_numeric_input.rb +0 -10
  453. data/lib/active_admin/inputs/filter_select_input.rb +0 -61
  454. data/lib/active_admin/inputs/filter_string_input.rb +0 -24
  455. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +0 -7
  456. data/spec/integration/memory_spec.rb +0 -29
  457. data/spec/integration/stylesheets_spec.rb +0 -41
  458. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +0 -60
  459. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +0 -106
  460. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +0 -37
  461. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +0 -108
  462. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +0 -288
  463. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +0 -2915
  464. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +0 -34
  465. data/spec/javascripts/support/jquery.min.js +0 -4
  466. data/spec/spec_helper_without_rails.rb +0 -16
  467. data/tasks/js.rake +0 -32
@@ -0,0 +1,28 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class Tabs < ActiveAdmin::Component
4
+ builder_method :tabs
5
+
6
+ def tab(title, options = {}, &block)
7
+ title = title.to_s.titleize if title.is_a? Symbol
8
+ @menu << build_menu_item(title, options, &block)
9
+ @tabs_content << build_content_item(title, options, &block)
10
+ end
11
+
12
+ def build(&block)
13
+ @menu = ul(class: 'nav nav-tabs', role: "tablist")
14
+ @tabs_content = div(class: 'tab-content')
15
+ end
16
+
17
+ def build_menu_item(title, options, &block)
18
+ options = options.reverse_merge({})
19
+ li { link_to title, "##{title.parameterize}", options }
20
+ end
21
+
22
+ def build_content_item(title, options, &block)
23
+ options = options.reverse_merge(id: title.parameterize)
24
+ div(options, &block)
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,11 @@
1
+ module ActiveAdmin
2
+ module Views
3
+ class UnsupportedBrowser < Component
4
+ def build
5
+ h1 I18n.t("active_admin.unsupported_browser.headline").html_safe
6
+ para I18n.t("active_admin.unsupported_browser.recommendation").html_safe
7
+ para I18n.t("active_admin.unsupported_browser.turn_off_compatibility_view").html_safe
8
+ end
9
+ end
10
+ end
11
+ end
@@ -3,7 +3,7 @@ module ActiveAdmin
3
3
  class Footer < Component
4
4
 
5
5
  def build
6
- super :id => "footer"
6
+ super id: "footer"
7
7
  powered_by_message
8
8
  end
9
9
 
@@ -11,8 +11,8 @@ module ActiveAdmin
11
11
 
12
12
  def powered_by_message
13
13
  para I18n.t('active_admin.powered_by',
14
- :active_admin => link_to("Active Admin", "http://www.activeadmin.info"),
15
- :version => ActiveAdmin::VERSION).html_safe
14
+ active_admin: link_to("Active Admin", "http://www.activeadmin.info"),
15
+ version: ActiveAdmin::VERSION).html_safe
16
16
  end
17
17
 
18
18
  end
@@ -3,7 +3,7 @@ module ActiveAdmin
3
3
  class Header < Component
4
4
 
5
5
  def build(namespace, menu)
6
- super(:id => "header")
6
+ super(id: "header")
7
7
 
8
8
  @namespace = namespace
9
9
  @menu = menu
@@ -20,11 +20,11 @@ module ActiveAdmin
20
20
  end
21
21
 
22
22
  def build_global_navigation
23
- insert_tag view_factory.global_navigation, @menu, :class => 'header-item tabs'
23
+ insert_tag view_factory.global_navigation, @menu, class: 'header-item tabs'
24
24
  end
25
25
 
26
26
  def build_utility_navigation
27
- insert_tag view_factory.utility_navigation, @utility_menu, :id => "utility_nav", :class => 'header-item tabs'
27
+ insert_tag view_factory.utility_navigation, @utility_menu, id: "utility_nav", class: 'header-item tabs'
28
28
  end
29
29
 
30
30
  end
@@ -75,7 +75,7 @@ module ActiveAdmin
75
75
 
76
76
  # Call the block passed in. This will set the
77
77
  # title and body methods
78
- instance_eval &page_presenter.block if page_presenter.block
78
+ instance_exec &page_presenter.block if page_presenter.block
79
79
 
80
80
  add_class "index"
81
81
  build_posts
@@ -113,7 +113,7 @@ module ActiveAdmin
113
113
  end
114
114
 
115
115
  def build_post(post)
116
- div :for => post do
116
+ div for: post do
117
117
  resource_selection_cell(post) if active_admin_config.batch_actions.any?
118
118
  build_title(post)
119
119
  build_body(post)
@@ -123,7 +123,7 @@ module ActiveAdmin
123
123
  def build_title(post)
124
124
  if @title
125
125
  h3 do
126
- a(:href => resource_path(post)) do
126
+ a(href: resource_path(post)) do
127
127
  render_method_on_post_or_call_proc post, @title
128
128
  end
129
129
  end
@@ -136,7 +136,7 @@ module ActiveAdmin
136
136
 
137
137
  def build_body(post)
138
138
  if @body
139
- div :class => 'content' do
139
+ div class: 'content' do
140
140
  render_method_on_post_or_call_proc post, @body
141
141
  end
142
142
  end
@@ -144,8 +144,8 @@ module ActiveAdmin
144
144
 
145
145
  def render_method_on_post_or_call_proc(post, proc)
146
146
  case proc
147
- when String,Symbol
148
- post.send proc
147
+ when String, Symbol
148
+ post.public_send proc
149
149
  else
150
150
  instance_exec post, &proc
151
151
  end
@@ -46,7 +46,7 @@ module ActiveAdmin
46
46
 
47
47
  def build_table
48
48
  resource_selection_toggle_panel if active_admin_config.batch_actions.any?
49
- table :class => "index_grid" do
49
+ table class: "index_grid" do
50
50
  collection.in_groups_of(number_of_columns).each do |group|
51
51
  build_row(group)
52
52
  end
@@ -62,7 +62,7 @@ module ActiveAdmin
62
62
  end
63
63
 
64
64
  def build_item(item)
65
- td :for => item do
65
+ td for: item do
66
66
  instance_exec(item, &@page_presenter.block)
67
67
  end
68
68
  end
@@ -69,7 +69,7 @@ module ActiveAdmin
69
69
  # selectable_column
70
70
  # column :title
71
71
  # actions do |post|
72
- # link_to "Preview", admin_preview_post_path(post), class: "member_link"
72
+ # item "Preview", admin_preview_post_path(post), class: "member_link"
73
73
  # end
74
74
  # end
75
75
  # ```
@@ -80,7 +80,30 @@ module ActiveAdmin
80
80
  # index do
81
81
  # column :title
82
82
  # actions defaults: false do |post|
83
- # link_to "View", admin_post_path(post)
83
+ # item "View", admin_post_path(post)
84
+ # end
85
+ # end
86
+ # ```
87
+ #
88
+ # Or append custom action with custom html via arbre:
89
+ #
90
+ # ```ruby
91
+ # index do
92
+ # column :title
93
+ # actions do |post|
94
+ # a link_to "View", admin_post_path(post)
95
+ # end
96
+ # end
97
+ # ```
98
+ #
99
+ # In case you prefer to list actions links in a dropdown menu:
100
+ #
101
+ # ```ruby
102
+ # index do
103
+ # selectable_column
104
+ # column :title
105
+ # actions dropdown: true do |post|
106
+ # item "Preview", admin_preview_post_path(post)
84
107
  # end
85
108
  # end
86
109
  # ```
@@ -113,6 +136,15 @@ module ActiveAdmin
113
136
  # end
114
137
  # ```
115
138
  #
139
+ # It's also possible to sort by PostgreSQL's hstore column key. You should set `sortable`
140
+ # option to a `column->'key'` value:
141
+ #
142
+ # ```ruby
143
+ # index do
144
+ # column :keywords, sortable: "meta->'keywords'"
145
+ # end
146
+ # ```
147
+ #
116
148
  # ## Associated Sorting
117
149
  #
118
150
  # You're normally able to sort columns alphabetically, but by default you
@@ -150,15 +182,27 @@ module ActiveAdmin
150
182
  # end
151
183
  # ```
152
184
  #
185
+ # ## Custom row class
186
+ #
187
+ # In order to add special class to table rows pass the proc object as a `:row_class` option
188
+ # of the `index` method.
189
+ #
190
+ # ```ruby
191
+ # index row_class: ->elem { 'active' if elem.active? } do
192
+ # # columns
193
+ # end
194
+ # ```
195
+ #
153
196
  class IndexAsTable < ActiveAdmin::Component
154
197
 
155
198
  def build(page_presenter, collection)
156
199
  table_options = {
157
- :id => "index_table_#{active_admin_config.resource_name.plural}",
158
- :sortable => true,
159
- :class => "index_table index",
160
- :i18n => active_admin_config.resource_class,
161
- :paginator => page_presenter[:paginator] != false
200
+ id: "index_table_#{active_admin_config.resource_name.plural}",
201
+ sortable: true,
202
+ class: "index_table index",
203
+ i18n: active_admin_config.resource_class,
204
+ paginator: page_presenter[:paginator] != false,
205
+ row_class: page_presenter[:row_class]
162
206
  }
163
207
 
164
208
  table_for collection, table_options do |t|
@@ -174,11 +218,11 @@ module ActiveAdmin
174
218
  def default_table
175
219
  proc do
176
220
  selectable_column
177
- id_column
221
+ id_column if resource_class.primary_key # View based Models have no primary_key
178
222
  resource_class.content_columns.each do |col|
179
223
  column col.name.to_sym
180
224
  end
181
- default_actions
225
+ actions
182
226
  end
183
227
  end
184
228
 
@@ -195,66 +239,109 @@ module ActiveAdmin
195
239
  # Display a column for checkbox
196
240
  def selectable_column
197
241
  return unless active_admin_config.batch_actions.any?
198
- column resource_selection_toggle_cell, class: 'selectable' do |resource|
242
+ column resource_selection_toggle_cell, class: 'col-selectable', sortable: false do |resource|
199
243
  resource_selection_cell resource
200
244
  end
201
245
  end
202
246
 
203
247
  # Display a column for the id
204
248
  def id_column
205
- column(resource_class.human_attribute_name(resource_class.primary_key), :sortable => resource_class.primary_key) do |resource|
206
- link_to resource.id, resource_path(resource), :class => "resource_id_link"
249
+ raise "#{resource_class.name} as no primary_key!" unless resource_class.primary_key
250
+ column(resource_class.human_attribute_name(resource_class.primary_key), sortable: resource_class.primary_key) do |resource|
251
+ if controller.action_methods.include?('show')
252
+ link_to resource.id, resource_path(resource), class: "resource_id_link"
253
+ else
254
+ resource.id
255
+ end
207
256
  end
208
257
  end
209
258
 
259
+ def default_actions
260
+ raise '`default_actions` is no longer provided in ActiveAdmin 1.x. Use `actions` instead.'
261
+ end
262
+
210
263
  # Add links to perform actions.
211
264
  #
212
265
  # ```ruby
213
266
  # # Add default links.
214
267
  # actions
215
268
  #
269
+ # # Add default links with a custom column title (empty by default).
270
+ # actions name: 'A title!'
271
+ #
216
272
  # # Append some actions onto the end of the default actions.
217
273
  # actions do |admin_user|
218
- # link_to 'Grant Admin', grant_admin_admin_user_path(admin_user)
274
+ # item 'Grant Admin', grant_admin_admin_user_path(admin_user)
275
+ # item 'Grant User', grant_user_admin_user_path(admin_user)
276
+ # end
277
+ #
278
+ # # Append some actions onto the end of the default actions using arbre dsl.
279
+ # actions do |admin_user|
280
+ # a link_to 'Grant Admin', grant_admin_admin_user_path(admin_user)
219
281
  # end
220
282
  #
221
283
  # # Custom actions without the defaults.
222
284
  # actions defaults: false do |admin_user|
223
- # link_to 'Grant Admin', grant_admin_admin_user_path(admin_user)
285
+ # item 'Grant Admin', grant_admin_admin_user_path(admin_user)
224
286
  # end
225
- # ```
226
287
  #
288
+ # # Append some actions onto the end of the default actions displayed in a Dropdown Menu
289
+ # actions dropdown: true do |admin_user|
290
+ # item 'Grant Admin', grant_admin_admin_user_path(admin_user)
291
+ # end
292
+ #
293
+ # # Custom actions without the defaults displayed in a Dropdown Menu.
294
+ # actions defaults: false, dropdown: true, dropdown_name: 'Additional actions' do |admin_user|
295
+ # item 'Grant Admin', grant_admin_admin_user_path(admin_user)
296
+ # end
297
+ #
298
+ # ```
227
299
  def actions(options = {}, &block)
228
- options = {
229
- :name => "",
230
- :defaults => true
231
- }.merge(options)
232
- column options[:name] do |resource|
233
- text_node default_actions(resource) if options[:defaults]
234
- text_node instance_exec(resource, &block) if block_given?
300
+ name = options.delete(:name) { '' }
301
+ defaults = options.delete(:defaults) { true }
302
+ dropdown = options.delete(:dropdown) { false }
303
+ dropdown_name = options.delete(:dropdown_name) { I18n.t 'active_admin.dropdown_actions.button_label', default: 'Actions' }
304
+
305
+ options[:class] ||= 'col-actions'
306
+
307
+ column name, options do |resource|
308
+ if dropdown
309
+ dropdown_menu dropdown_name do
310
+ defaults(resource) if defaults
311
+ instance_exec(resource, &block) if block_given?
312
+ end
313
+ else
314
+ table_actions do
315
+ defaults(resource, css_class: :member_link) if defaults
316
+ if block_given?
317
+ block_result = instance_exec(resource, &block)
318
+ text_node block_result unless block_result.is_a? Arbre::Element
319
+ end
320
+ end
321
+ end
235
322
  end
236
323
  end
237
324
 
238
- def default_actions(*args)
239
- links = proc do |resource|
240
- links = ''.html_safe
241
- if controller.action_methods.include?('show') && authorized?(ActiveAdmin::Auth::READ, resource)
242
- links << link_to(I18n.t('active_admin.view'), resource_path(resource), :class => "member_link view_link")
243
- end
244
- if controller.action_methods.include?('edit') && authorized?(ActiveAdmin::Auth::UPDATE, resource)
245
- links << link_to(I18n.t('active_admin.edit'), edit_resource_path(resource), :class => "member_link edit_link")
246
- end
247
- if controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, resource)
248
- links << link_to(I18n.t('active_admin.delete'), resource_path(resource), :method => :delete, :data => {:confirm => I18n.t('active_admin.delete_confirmation')}, :class => "member_link delete_link")
249
- end
250
- links
325
+ private
326
+
327
+ def defaults(resource, options = {})
328
+ if controller.action_methods.include?('show') && authorized?(ActiveAdmin::Auth::READ, resource)
329
+ item I18n.t('active_admin.view'), resource_path(resource), class: "view_link #{options[:css_class]}"
330
+ end
331
+ if controller.action_methods.include?('edit') && authorized?(ActiveAdmin::Auth::UPDATE, resource)
332
+ item I18n.t('active_admin.edit'), edit_resource_path(resource), class: "edit_link #{options[:css_class]}"
251
333
  end
334
+ if controller.action_methods.include?('destroy') && authorized?(ActiveAdmin::Auth::DESTROY, resource)
335
+ item I18n.t('active_admin.delete'), resource_path(resource), class: "delete_link #{options[:css_class]}",
336
+ method: :delete, data: {confirm: I18n.t('active_admin.delete_confirmation')}
337
+ end
338
+ end
339
+
340
+ class TableActions < ActiveAdmin::Component
341
+ builder_method :table_actions
252
342
 
253
- options = args.extract_options!
254
- if options.present? || args.empty?
255
- actions options
256
- else
257
- links.call(args.first)
343
+ def item *args
344
+ text_node link_to *args
258
345
  end
259
346
  end
260
347
  end # IndexTableFor
@@ -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