yousty-activeadmin 1.0.0.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 (490) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +43 -0
  3. data/.travis.yml +8 -0
  4. data/.yardopts +9 -0
  5. data/CHANGELOG.md +1056 -0
  6. data/CONTRIBUTING.md +110 -0
  7. data/Gemfile +41 -0
  8. data/Guardfile +7 -0
  9. data/LICENSE +25 -0
  10. data/README.md +67 -0
  11. data/Rakefile +25 -0
  12. data/activeadmin.gemspec +33 -0
  13. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  14. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  15. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  16. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  17. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  18. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  19. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +10 -0
  20. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +4 -0
  21. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +13 -0
  22. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +3 -0
  23. data/app/assets/images/active_admin/loading.gif +0 -0
  24. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  25. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  26. data/app/assets/images/active_admin/orderable.png +0 -0
  27. data/app/assets/javascripts/active_admin/application.js.coffee +6 -0
  28. data/app/assets/javascripts/active_admin/base.js.coffee +5 -0
  29. data/app/assets/javascripts/active_admin/components/application.js.coffee +23 -0
  30. data/app/assets/javascripts/active_admin/components/batch_actions.js.coffee +26 -0
  31. data/app/assets/javascripts/active_admin/components/has_many.js.coffee +41 -0
  32. data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +37 -0
  33. data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +105 -0
  34. data/app/assets/javascripts/active_admin/lib/popover.js.coffee +97 -0
  35. data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +25 -0
  36. data/app/assets/stylesheets/active_admin/_base.css.scss +41 -0
  37. data/app/assets/stylesheets/active_admin/_forms.css.scss +293 -0
  38. data/app/assets/stylesheets/active_admin/_header.css.scss +152 -0
  39. data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
  40. data/app/assets/stylesheets/active_admin/_typography.css.scss +100 -0
  41. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
  42. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +31 -0
  43. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
  44. data/app/assets/stylesheets/active_admin/components/_buttons.scss +11 -0
  45. data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
  46. data/app/assets/stylesheets/active_admin/components/_comments.css.scss +41 -0
  47. data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
  48. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
  49. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +39 -0
  50. data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
  51. data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
  52. data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
  53. data/app/assets/stylesheets/active_admin/components/_pagination.scss +34 -0
  54. data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
  55. data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
  56. data/app/assets/stylesheets/active_admin/components/_scopes.scss +10 -0
  57. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
  58. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +95 -0
  59. data/app/assets/stylesheets/active_admin/components/_tables.css.scss +110 -0
  60. data/app/assets/stylesheets/active_admin/mixins/_all.css.scss +11 -0
  61. data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +66 -0
  62. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +38 -0
  63. data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +21 -0
  64. data/app/assets/stylesheets/active_admin/mixins/_reset.css.scss +165 -0
  65. data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +43 -0
  66. data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +36 -0
  67. data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +22 -0
  68. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
  69. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +26 -0
  70. data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +32 -0
  71. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
  72. data/app/assets/stylesheets/active_admin/print.css.scss +284 -0
  73. data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
  74. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +29 -0
  75. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +43 -0
  76. data/app/views/active_admin/dashboard/index.html.arb +1 -0
  77. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
  78. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
  79. data/app/views/active_admin/devise/passwords/edit.html.erb +19 -0
  80. data/app/views/active_admin/devise/passwords/new.html.erb +14 -0
  81. data/app/views/active_admin/devise/sessions/new.html.erb +20 -0
  82. data/app/views/active_admin/devise/shared/_links.erb +27 -0
  83. data/app/views/active_admin/devise/unlocks/new.html.erb +14 -0
  84. data/app/views/active_admin/page/index.html.arb +1 -0
  85. data/app/views/active_admin/resource/edit.html.arb +1 -0
  86. data/app/views/active_admin/resource/index.csv.erb +17 -0
  87. data/app/views/active_admin/resource/index.html.arb +1 -0
  88. data/app/views/active_admin/resource/new.html.arb +1 -0
  89. data/app/views/active_admin/resource/show.html.arb +1 -0
  90. data/app/views/layouts/active_admin.html.arb +1 -0
  91. data/app/views/layouts/active_admin_logged_out.html.erb +37 -0
  92. data/config/locales/bg.yml +101 -0
  93. data/config/locales/ca.yml +98 -0
  94. data/config/locales/cs.yml +105 -0
  95. data/config/locales/da.yml +102 -0
  96. data/config/locales/de-CH.yml +117 -0
  97. data/config/locales/de.yml +119 -0
  98. data/config/locales/en-GB.yml +91 -0
  99. data/config/locales/en.yml +110 -0
  100. data/config/locales/es.yml +106 -0
  101. data/config/locales/es_MX.yml +104 -0
  102. data/config/locales/fi.yml +109 -0
  103. data/config/locales/fr.yml +97 -0
  104. data/config/locales/he.yml +91 -0
  105. data/config/locales/hr.yml +93 -0
  106. data/config/locales/hu.yml +92 -0
  107. data/config/locales/it.yml +89 -0
  108. data/config/locales/ja.yml +104 -0
  109. data/config/locales/ko.yml +84 -0
  110. data/config/locales/lt.yml +90 -0
  111. data/config/locales/lv.yml +89 -0
  112. data/config/locales/nl.yml +90 -0
  113. data/config/locales/no-NB.yml +85 -0
  114. data/config/locales/pl.yml +93 -0
  115. data/config/locales/pt-BR.yml +90 -0
  116. data/config/locales/pt-PT.yml +89 -0
  117. data/config/locales/ro.yml +93 -0
  118. data/config/locales/ru.yml +103 -0
  119. data/config/locales/sv-SE.yml +89 -0
  120. data/config/locales/tr.yml +90 -0
  121. data/config/locales/uk.yml +100 -0
  122. data/config/locales/vi.yml +90 -0
  123. data/config/locales/zh-CN.yml +90 -0
  124. data/config/locales/zh-TW.yml +90 -0
  125. data/cucumber.yml +3 -0
  126. data/docs/0-installation.md +84 -0
  127. data/docs/1-general-configuration.md +137 -0
  128. data/docs/10-custom-pages.md +98 -0
  129. data/docs/11-decorators.md +66 -0
  130. data/docs/12-arbre-components.md +144 -0
  131. data/docs/13-authorization-adapter.md +227 -0
  132. data/docs/2-resource-customization.md +340 -0
  133. data/docs/3-index-pages/create-an-index.md +29 -0
  134. data/docs/3-index-pages/index-as-block.md +21 -0
  135. data/docs/3-index-pages/index-as-blog.md +71 -0
  136. data/docs/3-index-pages/index-as-grid.md +29 -0
  137. data/docs/3-index-pages/index-as-table.md +154 -0
  138. data/docs/3-index-pages.md +206 -0
  139. data/docs/4-csv-format.md +39 -0
  140. data/docs/5-forms.md +110 -0
  141. data/docs/6-show-pages.md +77 -0
  142. data/docs/7-sidebars.md +42 -0
  143. data/docs/8-custom-actions.md +139 -0
  144. data/docs/9-batch-actions.md +155 -0
  145. data/features/action_item.feature +73 -0
  146. data/features/authorization.feature +64 -0
  147. data/features/authorization_cancan.feature +52 -0
  148. data/features/belongs_to.feature +63 -0
  149. data/features/breadcrumb.feature +27 -0
  150. data/features/comments/commenting.feature +140 -0
  151. data/features/comments/viewing_index.feature +19 -0
  152. data/features/dashboard.feature +16 -0
  153. data/features/decorators.feature +41 -0
  154. data/features/development_reloading.feature +31 -0
  155. data/features/edit_page.feature +127 -0
  156. data/features/favicon.feature +20 -0
  157. data/features/first_boot.feature +16 -0
  158. data/features/global_navigation.feature +29 -0
  159. data/features/i18n.feature +38 -0
  160. data/features/index/batch_actions.feature +123 -0
  161. data/features/index/filters.feature +138 -0
  162. data/features/index/format_as_csv.feature +117 -0
  163. data/features/index/formats.feature +66 -0
  164. data/features/index/index_as_block.feature +15 -0
  165. data/features/index/index_as_blog.feature +69 -0
  166. data/features/index/index_as_grid.feature +45 -0
  167. data/features/index/index_as_table.feature +195 -0
  168. data/features/index/index_blank_slate.feature +61 -0
  169. data/features/index/index_parameters.feature +75 -0
  170. data/features/index/index_scope_to.feature +56 -0
  171. data/features/index/index_scopes.feature +251 -0
  172. data/features/index/page_title.feature +30 -0
  173. data/features/index/pagination.feature +59 -0
  174. data/features/index/switch_index_view.feature +73 -0
  175. data/features/menu.feature +53 -0
  176. data/features/new_page.feature +119 -0
  177. data/features/registering_assets.feature +35 -0
  178. data/features/registering_pages.feature +148 -0
  179. data/features/registering_resources.feature +33 -0
  180. data/features/root_to.feature +17 -0
  181. data/features/show/default_content.feature +43 -0
  182. data/features/show/page_title.feature +47 -0
  183. data/features/sidebar_sections.feature +198 -0
  184. data/features/site_title.feature +47 -0
  185. data/features/specifying_actions.feature +93 -0
  186. data/features/step_definitions/action_item_steps.rb +7 -0
  187. data/features/step_definitions/action_link_steps.rb +7 -0
  188. data/features/step_definitions/additional_web_steps.rb +82 -0
  189. data/features/step_definitions/asset_steps.rb +15 -0
  190. data/features/step_definitions/attribute_steps.rb +13 -0
  191. data/features/step_definitions/batch_action_steps.rb +55 -0
  192. data/features/step_definitions/breadcrumb_steps.rb +3 -0
  193. data/features/step_definitions/comment_steps.rb +12 -0
  194. data/features/step_definitions/configuration_steps.rb +100 -0
  195. data/features/step_definitions/dashboard_steps.rb +15 -0
  196. data/features/step_definitions/factory_steps.rb +34 -0
  197. data/features/step_definitions/filter_steps.rb +17 -0
  198. data/features/step_definitions/flash_steps.rb +11 -0
  199. data/features/step_definitions/format_steps.rb +45 -0
  200. data/features/step_definitions/i18n_steps.rb +3 -0
  201. data/features/step_definitions/index_scope_steps.rb +21 -0
  202. data/features/step_definitions/index_views_steps.rb +3 -0
  203. data/features/step_definitions/layout_steps.rb +3 -0
  204. data/features/step_definitions/member_link_steps.rb +7 -0
  205. data/features/step_definitions/menu_steps.rb +11 -0
  206. data/features/step_definitions/pagination_steps.rb +8 -0
  207. data/features/step_definitions/sidebar_steps.rb +8 -0
  208. data/features/step_definitions/site_title_steps.rb +15 -0
  209. data/features/step_definitions/symbol_leak_steps.rb +3 -0
  210. data/features/step_definitions/tab_steps.rb +3 -0
  211. data/features/step_definitions/table_steps.rb +119 -0
  212. data/features/step_definitions/user_steps.rb +39 -0
  213. data/features/step_definitions/web_steps.rb +86 -0
  214. data/features/sti_resource.feature +73 -0
  215. data/features/support/env.rb +112 -0
  216. data/features/support/paths.rb +71 -0
  217. data/features/support/selectors.rb +45 -0
  218. data/features/symbol_leak.feature +35 -0
  219. data/features/users/logging_in.feature +34 -0
  220. data/features/users/logging_out.feature +13 -0
  221. data/features/users/resetting_password.feature +34 -0
  222. data/lib/active_admin/abstract_view_factory.rb +95 -0
  223. data/lib/active_admin/application.rb +242 -0
  224. data/lib/active_admin/asset_registration.rb +29 -0
  225. data/lib/active_admin/authorization_adapter.rb +132 -0
  226. data/lib/active_admin/base_controller/authorization.rb +151 -0
  227. data/lib/active_admin/base_controller/menu.rb +34 -0
  228. data/lib/active_admin/base_controller.rb +78 -0
  229. data/lib/active_admin/batch_actions/controller.rb +24 -0
  230. data/lib/active_admin/batch_actions/resource_extension.rb +127 -0
  231. data/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
  232. data/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
  233. data/lib/active_admin/batch_actions/views/batch_action_selector.rb +66 -0
  234. data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
  235. data/lib/active_admin/batch_actions.rb +17 -0
  236. data/lib/active_admin/callbacks.rb +87 -0
  237. data/lib/active_admin/cancan_adapter.rb +40 -0
  238. data/lib/active_admin/component.rb +5 -0
  239. data/lib/active_admin/controller_action.rb +12 -0
  240. data/lib/active_admin/csv_builder.rb +49 -0
  241. data/lib/active_admin/deprecation.rb +36 -0
  242. data/lib/active_admin/devise.rb +70 -0
  243. data/lib/active_admin/dsl.rb +166 -0
  244. data/lib/active_admin/engine.rb +7 -0
  245. data/lib/active_admin/event.rb +33 -0
  246. data/lib/active_admin/filters/dsl.rb +21 -0
  247. data/lib/active_admin/filters/forms.rb +89 -0
  248. data/lib/active_admin/filters/formtastic_addons.rb +70 -0
  249. data/lib/active_admin/filters/resource_extension.rb +136 -0
  250. data/lib/active_admin/filters.rb +9 -0
  251. data/lib/active_admin/form_builder.rb +152 -0
  252. data/lib/active_admin/helpers/collection.rb +23 -0
  253. data/lib/active_admin/helpers/optional_display.rb +38 -0
  254. data/lib/active_admin/helpers/scope_chain.rb +23 -0
  255. data/lib/active_admin/helpers/settings.rb +108 -0
  256. data/lib/active_admin/iconic/icons.rb +142 -0
  257. data/lib/active_admin/iconic.rb +51 -0
  258. data/lib/active_admin/inputs/datepicker_input.rb +20 -0
  259. data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
  260. data/lib/active_admin/inputs/filter_base.rb +33 -0
  261. data/lib/active_admin/inputs/filter_boolean_input.rb +32 -0
  262. data/lib/active_admin/inputs/filter_check_boxes_input.rb +51 -0
  263. data/lib/active_admin/inputs/filter_date_range_input.rb +34 -0
  264. data/lib/active_admin/inputs/filter_numeric_input.rb +10 -0
  265. data/lib/active_admin/inputs/filter_select_input.rb +61 -0
  266. data/lib/active_admin/inputs/filter_string_input.rb +24 -0
  267. data/lib/active_admin/inputs.rb +15 -0
  268. data/lib/active_admin/menu.rb +107 -0
  269. data/lib/active_admin/menu_collection.rb +96 -0
  270. data/lib/active_admin/menu_item.rb +97 -0
  271. data/lib/active_admin/namespace.rb +224 -0
  272. data/lib/active_admin/orm/active_record/comments/comment.rb +39 -0
  273. data/lib/active_admin/orm/active_record/comments/namespace_helper.rb +14 -0
  274. data/lib/active_admin/orm/active_record/comments/resource_helper.rb +17 -0
  275. data/lib/active_admin/orm/active_record/comments/show_page_helper.rb +23 -0
  276. data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +75 -0
  277. data/lib/active_admin/orm/active_record/comments/views.rb +2 -0
  278. data/lib/active_admin/orm/active_record/comments.rb +84 -0
  279. data/lib/active_admin/orm/active_record.rb +3 -0
  280. data/lib/active_admin/orm/mongoid/.gitkeep +0 -0
  281. data/lib/active_admin/orm/mongoid.rb +1 -0
  282. data/lib/active_admin/page.rb +88 -0
  283. data/lib/active_admin/page_controller.rb +29 -0
  284. data/lib/active_admin/page_dsl.rb +28 -0
  285. data/lib/active_admin/page_presenter.rb +32 -0
  286. data/lib/active_admin/resource/action_items.rb +91 -0
  287. data/lib/active_admin/resource/belongs_to.rb +36 -0
  288. data/lib/active_admin/resource/controllers.rb +18 -0
  289. data/lib/active_admin/resource/menu.rb +64 -0
  290. data/lib/active_admin/resource/naming.rb +84 -0
  291. data/lib/active_admin/resource/page_presenters.rb +82 -0
  292. data/lib/active_admin/resource/pagination.rb +19 -0
  293. data/lib/active_admin/resource/routes.rb +99 -0
  294. data/lib/active_admin/resource/scope_to.rb +74 -0
  295. data/lib/active_admin/resource/scopes.rb +50 -0
  296. data/lib/active_admin/resource/sidebars.rb +27 -0
  297. data/lib/active_admin/resource.rb +153 -0
  298. data/lib/active_admin/resource_collection.rb +42 -0
  299. data/lib/active_admin/resource_controller/action_builder.rb +21 -0
  300. data/lib/active_admin/resource_controller/data_access.rb +298 -0
  301. data/lib/active_admin/resource_controller/decorators.rb +20 -0
  302. data/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
  303. data/lib/active_admin/resource_controller/scoping.rb +31 -0
  304. data/lib/active_admin/resource_controller/sidebars.rb +18 -0
  305. data/lib/active_admin/resource_controller.rb +50 -0
  306. data/lib/active_admin/resource_dsl.rb +134 -0
  307. data/lib/active_admin/router.rb +106 -0
  308. data/lib/active_admin/scope.rb +57 -0
  309. data/lib/active_admin/sidebar_section.rb +37 -0
  310. data/lib/active_admin/version.rb +3 -0
  311. data/lib/active_admin/view_factory.rb +27 -0
  312. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
  313. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +7 -0
  314. data/lib/active_admin/view_helpers/auto_link_helper.rb +34 -0
  315. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +26 -0
  316. data/lib/active_admin/view_helpers/display_helper.rb +49 -0
  317. data/lib/active_admin/view_helpers/download_format_links_helper.rb +49 -0
  318. data/lib/active_admin/view_helpers/fields_for.rb +50 -0
  319. data/lib/active_admin/view_helpers/flash_helper.rb +13 -0
  320. data/lib/active_admin/view_helpers/form_helper.rb +24 -0
  321. data/lib/active_admin/view_helpers/icon_helper.rb +12 -0
  322. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +93 -0
  323. data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
  324. data/lib/active_admin/view_helpers/title_helper.rb +11 -0
  325. data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
  326. data/lib/active_admin/view_helpers.rb +21 -0
  327. data/lib/active_admin/views/action_items.rb +17 -0
  328. data/lib/active_admin/views/components/action_list_popover.rb +29 -0
  329. data/lib/active_admin/views/components/attributes_table.rb +103 -0
  330. data/lib/active_admin/views/components/blank_slate.rb +17 -0
  331. data/lib/active_admin/views/components/columns.rb +150 -0
  332. data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
  333. data/lib/active_admin/views/components/index_list.rb +68 -0
  334. data/lib/active_admin/views/components/paginated_collection.rb +125 -0
  335. data/lib/active_admin/views/components/panel.rb +34 -0
  336. data/lib/active_admin/views/components/popover.rb +27 -0
  337. data/lib/active_admin/views/components/scopes.rb +66 -0
  338. data/lib/active_admin/views/components/sidebar_section.rb +28 -0
  339. data/lib/active_admin/views/components/site_title.rb +55 -0
  340. data/lib/active_admin/views/components/status_tag.rb +56 -0
  341. data/lib/active_admin/views/components/table_for.rb +191 -0
  342. data/lib/active_admin/views/footer.rb +20 -0
  343. data/lib/active_admin/views/header.rb +32 -0
  344. data/lib/active_admin/views/index_as_block.rb +36 -0
  345. data/lib/active_admin/views/index_as_blog.rb +156 -0
  346. data/lib/active_admin/views/index_as_grid.rb +80 -0
  347. data/lib/active_admin/views/index_as_table.rb +264 -0
  348. data/lib/active_admin/views/pages/base.rb +139 -0
  349. data/lib/active_admin/views/pages/form.rb +51 -0
  350. data/lib/active_admin/views/pages/index.rb +147 -0
  351. data/lib/active_admin/views/pages/layout.rb +26 -0
  352. data/lib/active_admin/views/pages/page.rb +30 -0
  353. data/lib/active_admin/views/pages/show.rb +59 -0
  354. data/lib/active_admin/views/tabbed_navigation.rb +62 -0
  355. data/lib/active_admin/views/title_bar.rb +53 -0
  356. data/lib/active_admin/views.rb +8 -0
  357. data/lib/active_admin.rb +125 -0
  358. data/lib/activeadmin.rb +1 -0
  359. data/lib/generators/active_admin/assets/assets_generator.rb +16 -0
  360. data/lib/generators/active_admin/assets/templates/active_admin.css.scss +17 -0
  361. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
  362. data/lib/generators/active_admin/devise/devise_generator.rb +86 -0
  363. data/lib/generators/active_admin/install/install_generator.rb +46 -0
  364. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +235 -0
  365. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +27 -0
  366. data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
  367. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +19 -0
  368. data/lib/generators/active_admin/resource/resource_generator.rb +16 -0
  369. data/lib/generators/active_admin/resource/templates/admin.rb +3 -0
  370. data/lib/ransack_ext.rb +12 -0
  371. data/script/local +44 -0
  372. data/script/use_rails +53 -0
  373. data/spec/integration/default_namespace_spec.rb +61 -0
  374. data/spec/integration/javascript_spec.rb +20 -0
  375. data/spec/integration/memory_spec.rb +29 -0
  376. data/spec/integration/stylesheets_spec.rb +41 -0
  377. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
  378. data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
  379. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
  380. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
  381. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
  382. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
  383. data/spec/javascripts/fixtures/checkboxes.html +9 -0
  384. data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
  385. data/spec/javascripts/helpers/SpecHelper.js +3 -0
  386. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
  387. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
  388. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
  389. data/spec/javascripts/support/jasmine.yml +74 -0
  390. data/spec/javascripts/support/jasmine_config.rb +23 -0
  391. data/spec/javascripts/support/jasmine_runner.rb +32 -0
  392. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
  393. data/spec/javascripts/support/jquery.min.js +4 -0
  394. data/spec/spec_helper.rb +175 -0
  395. data/spec/spec_helper_without_rails.rb +16 -0
  396. data/spec/support/deferred_garbage_collection.rb +19 -0
  397. data/spec/support/detect_rails_version.rb +42 -0
  398. data/spec/support/integration_example_group.rb +31 -0
  399. data/spec/support/jslint.yml +80 -0
  400. data/spec/support/rails_template.rb +111 -0
  401. data/spec/support/rails_template_with_data.rb +59 -0
  402. data/spec/support/templates/admin/stores.rb +11 -0
  403. data/spec/support/templates/cucumber.rb +24 -0
  404. data/spec/support/templates/cucumber_with_reloading.rb +5 -0
  405. data/spec/support/templates/en.yml +8 -0
  406. data/spec/support/templates/post_decorator.rb +53 -0
  407. data/spec/unit/abstract_view_factory_spec.rb +79 -0
  408. data/spec/unit/action_builder_spec.rb +126 -0
  409. data/spec/unit/active_admin_spec.rb +11 -0
  410. data/spec/unit/application_spec.rb +141 -0
  411. data/spec/unit/asset_registration_spec.rb +52 -0
  412. data/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
  413. data/spec/unit/authorization/controller_authorization_spec.rb +39 -0
  414. data/spec/unit/auto_link_spec.rb +32 -0
  415. data/spec/unit/batch_actions/resource_spec.rb +91 -0
  416. data/spec/unit/batch_actions/settings_spec.rb +61 -0
  417. data/spec/unit/belongs_to_spec.rb +42 -0
  418. data/spec/unit/cancan_adapter_spec.rb +43 -0
  419. data/spec/unit/comments_spec.rb +106 -0
  420. data/spec/unit/component_spec.rb +18 -0
  421. data/spec/unit/config_shared_examples.rb +59 -0
  422. data/spec/unit/controller_filters_spec.rb +32 -0
  423. data/spec/unit/csv_builder_spec.rb +103 -0
  424. data/spec/unit/devise_spec.rb +116 -0
  425. data/spec/unit/dsl_spec.rb +61 -0
  426. data/spec/unit/event_spec.rb +47 -0
  427. data/spec/unit/filters/filter_form_builder_spec.rb +423 -0
  428. data/spec/unit/filters/resource_spec.rb +119 -0
  429. data/spec/unit/form_builder_spec.rb +514 -0
  430. data/spec/unit/generators/install_spec.rb +23 -0
  431. data/spec/unit/helpers/collection_spec.rb +65 -0
  432. data/spec/unit/helpers/scope_chain_spec.rb +36 -0
  433. data/spec/unit/helpers/settings_spec.rb +30 -0
  434. data/spec/unit/menu_collection_spec.rb +62 -0
  435. data/spec/unit/menu_item_spec.rb +143 -0
  436. data/spec/unit/menu_spec.rb +71 -0
  437. data/spec/unit/namespace/authorization_spec.rb +27 -0
  438. data/spec/unit/namespace/register_page_spec.rb +74 -0
  439. data/spec/unit/namespace/register_resource_spec.rb +163 -0
  440. data/spec/unit/namespace_spec.rb +103 -0
  441. data/spec/unit/page_controller_spec.rb +5 -0
  442. data/spec/unit/page_spec.rb +72 -0
  443. data/spec/unit/pretty_format_spec.rb +35 -0
  444. data/spec/unit/resource/action_items_spec.rb +62 -0
  445. data/spec/unit/resource/menu_spec.rb +18 -0
  446. data/spec/unit/resource/naming_spec.rb +122 -0
  447. data/spec/unit/resource/page_presenters_spec.rb +44 -0
  448. data/spec/unit/resource/pagination_spec.rb +38 -0
  449. data/spec/unit/resource/routes_spec.rb +73 -0
  450. data/spec/unit/resource/scopes_spec.rb +43 -0
  451. data/spec/unit/resource/sidebars_spec.rb +43 -0
  452. data/spec/unit/resource_collection_spec.rb +160 -0
  453. data/spec/unit/resource_controller/data_access_spec.rb +73 -0
  454. data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
  455. data/spec/unit/resource_controller_spec.rb +265 -0
  456. data/spec/unit/resource_registration_spec.rb +56 -0
  457. data/spec/unit/resource_spec.rb +243 -0
  458. data/spec/unit/routing_spec.rb +172 -0
  459. data/spec/unit/scope_spec.rb +108 -0
  460. data/spec/unit/settings_spec.rb +88 -0
  461. data/spec/unit/view_factory_spec.rb +21 -0
  462. data/spec/unit/view_helpers/breadcrumbs_spec.rb +149 -0
  463. data/spec/unit/view_helpers/display_name_spec.rb +41 -0
  464. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
  465. data/spec/unit/view_helpers/fields_for_spec.rb +50 -0
  466. data/spec/unit/view_helpers/form_helper_spec.rb +56 -0
  467. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +101 -0
  468. data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
  469. data/spec/unit/views/components/attributes_table_spec.rb +230 -0
  470. data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
  471. data/spec/unit/views/components/blank_slate_spec.rb +17 -0
  472. data/spec/unit/views/components/columns_spec.rb +142 -0
  473. data/spec/unit/views/components/index_list_spec.rb +32 -0
  474. data/spec/unit/views/components/paginated_collection_spec.rb +227 -0
  475. data/spec/unit/views/components/panel_spec.rb +51 -0
  476. data/spec/unit/views/components/popover_spec.rb +33 -0
  477. data/spec/unit/views/components/sidebar_section_spec.rb +37 -0
  478. data/spec/unit/views/components/site_title_spec.rb +78 -0
  479. data/spec/unit/views/components/status_tag_spec.rb +95 -0
  480. data/spec/unit/views/components/table_for_spec.rb +201 -0
  481. data/spec/unit/views/pages/form_spec.rb +35 -0
  482. data/spec/unit/views/pages/layout_spec.rb +63 -0
  483. data/spec/unit/views/pages/show_spec.rb +20 -0
  484. data/spec/unit/views/tabbed_navigation_spec.rb +149 -0
  485. data/tasks/docs.rake +37 -0
  486. data/tasks/js.rake +32 -0
  487. data/tasks/parallel_tests.rake +60 -0
  488. data/tasks/test.rake +79 -0
  489. data/tasks/yard.rake +7 -0
  490. metadata +896 -0
@@ -0,0 +1,139 @@
1
+ # Custom Controller Actions
2
+
3
+ Active Admin allows you to override and modify the underlying controller which
4
+ is generated for you. There are helpers to add collection and member actions, or
5
+ you can drop right in to the controller and modify its behavior.
6
+
7
+ ## Collection Actions
8
+
9
+ A collection action is a controller action which operates on the collection of
10
+ resources. This method adds both the action to the controller as well as
11
+ generating a route for you.
12
+
13
+ To add a collection action, use the collection_action method:
14
+
15
+
16
+ ActiveAdmin.register Post do
17
+
18
+ collection_action :import_csv, :method => :post do
19
+ # Do some CSV importing work here...
20
+ redirect_to {:action => :index}, {:notice => "CSV imported successfully!"}
21
+ end
22
+
23
+ end
24
+
25
+ This collection action will generate a route at "/admin/posts/import_csv"
26
+ pointing to the Admin::PostsController#import_csv controller action.
27
+
28
+ ## Member Actions
29
+
30
+ A member action is a controller action which operates on a single resource.
31
+
32
+ For example, to add a lock action to a user resource, you would do the
33
+ following:
34
+
35
+ ActiveAdmin.register User do
36
+
37
+ member_action :lock, :method => :put do
38
+ user = User.find(params[:id])
39
+ user.lock!
40
+ redirect_to {:action => :show}, {:notice => "Locked!"}
41
+ end
42
+
43
+ end
44
+
45
+ This will generate a route at "/admin/users/:id/lock" pointing to the
46
+ Admin::UserController#lock controller action.
47
+
48
+ ## Controller Action HTTP Verb
49
+
50
+ The collection_action and member_actions methods both accept the "method"
51
+ argument to set the HTTP verb for the controller action and route.
52
+
53
+ The generated routes will be scoped to the given method you pass in. By default
54
+ your action will use the :get verb.
55
+
56
+ ## Rendering in Custom Actions
57
+
58
+ Custom controller actions support rendering within the standard Active Admin
59
+ layout.
60
+
61
+ ActiveAdmin.register Post do
62
+
63
+ # /admin/posts/:id/comments
64
+ member_action :comments do
65
+ @post = Post.find(params[:id])
66
+
67
+ # This will render app/views/admin/posts/comments.html.erb
68
+ end
69
+
70
+ end
71
+
72
+ If you would like to use the same view syntax as the rest of Active Admin, you
73
+ can use the Arbre file extension: .arb.
74
+
75
+ For example, create app/views/admin/posts/comments.html.arb with:
76
+
77
+ table_for assigns[:post].comments do
78
+ column :id
79
+ column :author
80
+ column :body do |comment|
81
+ simple_format comment.body
82
+ end
83
+ end
84
+
85
+ ### Custom Action Items
86
+
87
+ To include your own action items (like the New, Edit and Delete buttons), add an
88
+ `action_item` block. For example, to add a "View on site" button to view a blog
89
+ post:
90
+
91
+ action_item :only => :show do
92
+ link_to('View on site', post_path(post)) if post.published?
93
+ end
94
+
95
+ Actions items also accept the :if option to conditionally display them:
96
+
97
+ action_item :only => :show, :if => proc{ current_admin_user.super_admin? } do
98
+ "Only display this to super admins on the show screen"
99
+ end
100
+
101
+ ### Page Titles
102
+
103
+ The page title for the custom action will be the internationalized version of
104
+ the controller action name. For example, a member_action named "upload_csv" will
105
+ look up a translation key of "active_admin.upload_csv". If none are found, it
106
+ just title cases the controller action's name.
107
+
108
+ If this method doesn't work for your requirements, you can always set the
109
+ @page_title instance variable in your controller action to customize the page
110
+ title.
111
+
112
+ ActiveAdmin.register Post do
113
+
114
+ # /admin/posts/:id/comments
115
+ member_action :comments do
116
+ @post = Post.find(params[:id])
117
+ @page_title = "#{@post.title}: Comments" # Set the page title
118
+
119
+ # This will render app/views/admin/posts/comments.html.erb
120
+ end
121
+
122
+ end
123
+
124
+ ## Modify the Controller
125
+
126
+ The generated controller is available to you within the registration block by
127
+ using the #controller method.
128
+
129
+ ActiveAdmin.register Post do
130
+
131
+ controller do
132
+ # This code is evaluated within the controller class
133
+
134
+ def define_a_method
135
+ # Instance method
136
+ end
137
+ end
138
+
139
+ end
@@ -0,0 +1,155 @@
1
+ # Index Batch Actions
2
+
3
+ By default, the index view includes a way to quickly delete records from the listing,
4
+ as well as an API for you to easily create your own "Batch Action" for handling a request to operate
5
+ on multiple records at once. If you override the default index, `selectable_column` must be used as the first column to enable batch actions:
6
+
7
+ index do
8
+ selectable_column
9
+ # add other columns here...
10
+ end
11
+
12
+ ## Provided Batch Action
13
+
14
+ The `batch_action` API provides one default batch action for use in your application immediately, for deleting
15
+ multiple records at once. You are able to disable this action if you desire (see below).
16
+
17
+ ## Creating Your Own Batch Actions
18
+
19
+ To create your own batch action, use the `batch_action` method. You are provided an array of record IDs
20
+ to operate on. The array should contain at least one ID.
21
+
22
+ ActiveAdmin.register Post do
23
+ batch_action :flag do |selection|
24
+ Post.find(selection).each do |post|
25
+ post.flag! :hot
26
+ end
27
+ redirect_to collection_path, :alert => "The posts have been flagged."
28
+ end
29
+ end
30
+
31
+ ### Disabling Batch Actions
32
+
33
+ You can disable batch actions at the application or namespace level in
34
+ `config/initializers/active_admin.rb`:
35
+
36
+ ActiveAdmin.setup do |config|
37
+
38
+ # Disable all batch actions
39
+ config.batch_actions = false
40
+
41
+
42
+ # Or disable for a given namespace
43
+ config.namespace :admin do |admin|
44
+ admin.batch_actions = false
45
+ end
46
+ end
47
+
48
+ You can disable batch actions on any given resource using:
49
+
50
+ ActiveAdmin.register Post do
51
+ config.batch_actions = false
52
+ end
53
+
54
+
55
+ ### Modifying a Previously Registered Batch Action
56
+
57
+ If you wanted to modify the behavior of the provided "Delete" batch action, you can override by:
58
+
59
+ ActiveAdmin.register Post do
60
+ batch_action :destroy, :if => proc { can?( :destroy, Post ) } do |selection|
61
+ redirect_to collection_path, :alert => "Didn't really delete these!"
62
+ end
63
+ end
64
+
65
+ ### Removing a Batch Action
66
+
67
+ You can also remove batch actions by simply passing false as the second parameter:
68
+
69
+ ActiveAdmin.register Post do
70
+ batch_action :destroy, false
71
+ end
72
+
73
+ ### Conditional Display of Batch Action
74
+
75
+ You can control whether or not the batch action is available via the `:if` option. Provide a boolean or a proc, which is executed in context of the view.
76
+
77
+ ActiveAdmin.register Post do
78
+ batch_action :flag, :if => proc { false } do |selection|
79
+ # This action won't ever be displayed
80
+ end
81
+ end
82
+
83
+ ### Batch Action Priority in Menu
84
+
85
+ You can also change the order of batch actions, by providing a value for the :priority param:
86
+
87
+ ActiveAdmin.register Post do
88
+ batch_action :destroy, :priority => 1 do |selection|
89
+ # Do some deleting in here...
90
+ end
91
+ end
92
+
93
+ ### Batch Action I18n of Labels
94
+
95
+ By default, the name of the batch action will be used to lookup a label for the
96
+ menu. It will lookup in `active_admin.batch_actions.labels.#{your_batch_action_name}`. For
97
+ example:
98
+
99
+ ActiveAdmin.register Post do
100
+ batch_action :publish do |selection|
101
+ # do some publishing...
102
+ end
103
+ end
104
+
105
+ Can be translated with:
106
+
107
+ # config/locales/en.yml
108
+ en:
109
+ active_admin:
110
+ batch_actions:
111
+ labels:
112
+ publish: "Publish"
113
+
114
+ ### Batch Action Confirmation
115
+
116
+ You can also request that the user confirm the action, before the action is performed:
117
+
118
+ ActiveAdmin.register Post do
119
+ batch_action :destroy, :confirm => "Are you sure you want to delete all of these?" do |selection|
120
+ # Do some deleting...
121
+ end
122
+ end
123
+
124
+ ### Support for Other Index Types
125
+
126
+ You can easily use `batch_action` in the other index views, *Grid*, *Block*, and *Blog*; however, these views will require more custom styling to fit your application needs.
127
+
128
+ ActiveAdmin.register Post do
129
+
130
+ # By default, the "Delete" batch action is provided
131
+
132
+ # Index as Grid
133
+ index as: :grid do |post|
134
+ resource_selection_cell post
135
+ h2 auto_link( post )
136
+ end
137
+
138
+ # Index as Blog requires nothing special
139
+
140
+ # Index as Block
141
+ index as: :block do |post|
142
+ div for: post do
143
+ resource_selection_cell post
144
+ end
145
+ end
146
+
147
+ end
148
+
149
+ ### Batch Actions and Custom Actions
150
+
151
+ In order to perform the batch action, the entire *Table*, *Grid*, etc. is wrapped in a form that submits the id's of the selected rows to your batch_action.
152
+
153
+ Since nested `<form>` tags in HTML often results in unexpected behavior, you may need to modify custom actions or forms you are using on your page with batch actions enabled.
154
+
155
+ Specifically, if you are using HTTP methods like `PUT` or `PATCH` with a custom form on your index page this may result in your batch action being `PUT`ed instead of `POST`ed which in turn will create a routing error. You can get around this by either moving the nested form to another page (ie. the Object's show page) or, if possible, changing the method of the custom action to `POST` so that it doesn't override the batch action. Remember, behavior may vary by browser.
@@ -0,0 +1,73 @@
1
+ Feature: Action Item
2
+
3
+ Creating and Configuring action items
4
+
5
+ Background:
6
+ Given I am logged in
7
+ And a post with the title "Hello World" exists
8
+
9
+ Scenario: Create an member action
10
+ Given a configuration of:
11
+ """
12
+ ActiveAdmin.register Post do
13
+ action_item do
14
+ link_to "Embiggen", '/'
15
+ end
16
+ end
17
+ """
18
+ When I am on the index page for posts
19
+ Then I should not see a member link to "Embiggen"
20
+
21
+ When I follow "View"
22
+ Then I should see an action item link to "Embiggen"
23
+
24
+ When I follow "Edit Post"
25
+ Then I should see an action item link to "Embiggen"
26
+
27
+ When I am on the index page for posts
28
+ When I follow "New Post"
29
+ Then I should see an action item link to "Embiggen"
30
+
31
+ Scenario: Create an member action with if clause that returns true
32
+ Given a configuration of:
33
+ """
34
+ ActiveAdmin.register Post do
35
+ action_item :if => proc{ !current_active_admin_user.nil? } do
36
+ link_to "Embiggen", '/'
37
+ end
38
+ end
39
+ """
40
+ When I am on the index page for posts
41
+ Then I should not see a member link to "Embiggen"
42
+
43
+ When I follow "View"
44
+ Then I should see an action item link to "Embiggen"
45
+
46
+ When I follow "Edit Post"
47
+ Then I should see an action item link to "Embiggen"
48
+
49
+ When I am on the index page for posts
50
+ When I follow "New Post"
51
+ Then I should see an action item link to "Embiggen"
52
+
53
+ Scenario: Create an member action with if clause that returns false
54
+ Given a configuration of:
55
+ """
56
+ ActiveAdmin.register Post do
57
+ action_item :if => proc{ current_active_admin_user.nil? } do
58
+ link_to "Embiggen", '/'
59
+ end
60
+ end
61
+ """
62
+ When I am on the index page for posts
63
+ Then I should not see a member link to "Embiggen"
64
+
65
+ When I follow "View"
66
+ Then I should not see an action item link to "Embiggen"
67
+
68
+ When I follow "Edit Post"
69
+ Then I should not see an action item link to "Embiggen"
70
+
71
+ When I am on the index page for posts
72
+ When I follow "New Post"
73
+ Then I should not see an action item link to "Embiggen"
@@ -0,0 +1,64 @@
1
+ Feature: Authorizing Access
2
+
3
+ Ensure that access denied exceptions are managed
4
+
5
+ Background:
6
+ Given I am logged in
7
+ And 1 post exists
8
+ And a configuration of:
9
+ """
10
+ class OnlyAuthorsAuthorization < ActiveAdmin::AuthorizationAdapter
11
+
12
+ def authorized?(action, subject = nil)
13
+ case subject
14
+
15
+ when normalized(Post)
16
+ case action
17
+ when ActiveAdmin::Auth::UPDATE, ActiveAdmin::Auth::DESTROY
18
+ false
19
+ else
20
+ true
21
+ end
22
+
23
+ when ActiveAdmin::Page
24
+ if subject.name == "No Access"
25
+ false
26
+ else
27
+ true
28
+ end
29
+
30
+ else
31
+ false
32
+ end
33
+ end
34
+
35
+ end
36
+
37
+ ActiveAdmin.application.namespace(:admin).authorization_adapter = OnlyAuthorsAuthorization
38
+
39
+ ActiveAdmin.register Post do
40
+ end
41
+
42
+ ActiveAdmin.register_page "No Access" do
43
+ end
44
+ """
45
+ And I am on the index page for posts
46
+
47
+ @allow-rescue
48
+ Scenario: Attempt to access a resource I am not authorized to see
49
+ When I go to the last post's edit page
50
+ Then I should see "You are not authorized to perform this action"
51
+
52
+ Scenario: Viewing the default action items
53
+ When I follow "View"
54
+ Then I should not see an action item link to "Edit"
55
+
56
+ @allow-rescue
57
+ Scenario: Attempting to visit a Page without authorization
58
+ When I go to the admin no access page
59
+ Then I should see "You are not authorized to perform this action"
60
+
61
+ @allow-rescue
62
+ Scenario: Viewing a page with authorization
63
+ When I go to the admin dashboard page
64
+ Then I should see "Dashboard"
@@ -0,0 +1,52 @@
1
+ Feature: Authorizing Access using CanCan
2
+
3
+ Background:
4
+ Given I am logged in
5
+ And 1 post exists
6
+ And a configuration of:
7
+ """
8
+ require 'cancan'
9
+
10
+ class ::Ability
11
+ include ::CanCan::Ability
12
+
13
+ def initialize(user)
14
+ # Manage Posts
15
+ can [:edit, :destroy], Post, :author_id => user.id
16
+ can :read, Post
17
+
18
+ # View Pages
19
+ can :read, ActiveAdmin::Page, :name => "Dashboard"
20
+ cannot :read, ActiveAdmin::Page, :name => "No Access"
21
+ end
22
+
23
+ end
24
+
25
+ ActiveAdmin.application.namespace(:admin).authorization_adapter = ActiveAdmin::CanCanAdapter
26
+
27
+ ActiveAdmin.register Post do
28
+ end
29
+
30
+ ActiveAdmin.register_page "No Access" do
31
+ end
32
+ """
33
+ And I am on the index page for posts
34
+
35
+ @allow-rescue
36
+ Scenario: Attempt to access a resource I am not authorized to see
37
+ When I go to the last post's edit page
38
+ Then I should see "You are not authorized to perform this action"
39
+
40
+ Scenario: Viewing the default action items
41
+ When I follow "View"
42
+ Then I should not see an action item link to "Edit"
43
+
44
+ @allow-rescue
45
+ Scenario: Attempting to visit a Page without authorization
46
+ When I go to the admin no access page
47
+ Then I should see "You are not authorized to perform this action"
48
+
49
+ @allow-rescue
50
+ Scenario: Viewing a page with authorization
51
+ When I go to the admin dashboard page
52
+ Then I should see "Dashboard"
@@ -0,0 +1,63 @@
1
+ Feature: Belongs To
2
+
3
+ A resource belongs to another resource
4
+
5
+ Background:
6
+ Given I am logged in
7
+ And a post with the title "Hello World" written by "John Doe" exists
8
+ And a post with the title "Hello World" written by "Jane Doe" exists
9
+
10
+ Scenario: Viewing the child resource index page
11
+ Given a configuration of:
12
+ """
13
+ ActiveAdmin.register User
14
+ ActiveAdmin.register Post do
15
+ belongs_to :user
16
+ end
17
+ """
18
+ When I go to the last author's posts
19
+ Then the "Posts" tab should be selected
20
+ And I should not see a menu item for "Users"
21
+ And I should see "Displaying 1 Post"
22
+ And I should see a link to "Users" in the breadcrumb
23
+
24
+ Scenario: Viewing a child resource page
25
+ Given a configuration of:
26
+ """
27
+ ActiveAdmin.register User
28
+ ActiveAdmin.register Post do
29
+ belongs_to :user
30
+ end
31
+ """
32
+ When I go to the last author's posts
33
+ And I follow "View"
34
+ Then I should be on the last author's last post page
35
+ And the "Posts" tab should be selected
36
+
37
+ Scenario: When the belongs to is optional
38
+ Given a configuration of:
39
+ """
40
+ ActiveAdmin.register User
41
+ ActiveAdmin.register Post do
42
+ belongs_to :user, :optional => true
43
+ end
44
+ """
45
+ When I go to the last author's posts
46
+ Then the "Users" tab should be selected
47
+ And I should see a menu item for "Posts"
48
+
49
+ When I follow "Posts"
50
+ Then the "Posts" tab should be selected
51
+
52
+ Scenario: Displaying belongs to resources in main menu
53
+ Given a configuration of:
54
+ """
55
+ ActiveAdmin.register User
56
+ ActiveAdmin.register Post do
57
+ belongs_to :user
58
+ navigation_menu :user
59
+ end
60
+ """
61
+ When I go to the last author's posts
62
+ And I follow "View"
63
+ Then the "Posts" tab should be selected
@@ -0,0 +1,27 @@
1
+ Feature: Breadcrumb
2
+
3
+ Background:
4
+ Given I am logged in
5
+
6
+ Scenario: Default breadcrumb links
7
+ Given a configuration of:
8
+ """
9
+ ActiveAdmin.register Post do
10
+ end
11
+ """
12
+ When I am on the new post page
13
+ Then I should see a link to "Post" in the breadcrumb
14
+
15
+ Scenario: Rewritten breadcrumb links
16
+ Given a configuration of:
17
+ """
18
+ ActiveAdmin.register Post do
19
+ breadcrumb do
20
+ [
21
+ link_to('test', '/admin/test/url')
22
+ ]
23
+ end
24
+ end
25
+ """
26
+ When I am on the new post page
27
+ Then I should see a link to "test" in the breadcrumb