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,119 @@
1
+ Feature: New Page
2
+
3
+ Customizing the form to create new resources
4
+
5
+ Background:
6
+ Given a category named "Music" exists
7
+ Given a user named "John Doe" exists
8
+ And I am logged in
9
+ Given a configuration of:
10
+ """
11
+ ActiveAdmin.register Post do
12
+ controller do
13
+ def permitted_params
14
+ params.permit post: [:category_id, :author_id, :title, :body, :published_at, :starred]
15
+ end if Rails::VERSION::MAJOR == 4
16
+ end
17
+ end
18
+ """
19
+ When I am on the index page for posts
20
+
21
+ Scenario: Default form with no config
22
+ Given I follow "New Post"
23
+ When I fill in "Title" with "Hello World"
24
+ And I fill in "Body" with "This is the body"
25
+ And I select "Music" from "Category"
26
+ And I select "John Doe" from "Author"
27
+ And I press "Create Post"
28
+ Then I should see "Post was successfully created."
29
+ And I should see the attribute "Title" with "Hello World"
30
+ And I should see the attribute "Body" with "This is the body"
31
+ And I should see the attribute "Category" with "Music"
32
+ And I should see the attribute "Author" with "John Doe"
33
+
34
+ Scenario: Generating a custom form
35
+ Given a configuration of:
36
+ """
37
+ ActiveAdmin.register Post do
38
+ controller do
39
+ def permitted_params
40
+ params.permit post: [:category_id, :author_id, :title, :body, :published_at, :starred]
41
+ end if Rails::VERSION::MAJOR == 4
42
+ end
43
+ form do |f|
44
+ f.inputs "Your Post" do
45
+ f.input :title
46
+ f.input :body
47
+ end
48
+ f.inputs "Publishing" do
49
+ f.input :published_at
50
+ end
51
+ f.actions
52
+ end
53
+ end
54
+ """
55
+ Given I follow "New Post"
56
+ Then I should see a fieldset titled "Your Post"
57
+ And I should see a fieldset titled "Publishing"
58
+ When I fill in "Title" with "Hello World"
59
+ And I fill in "Body" with "This is the body"
60
+ And I press "Create Post"
61
+ Then I should see "Post was successfully created."
62
+ And I should see the attribute "Title" with "Hello World"
63
+ And I should see the attribute "Body" with "This is the body"
64
+
65
+ Scenario: Generating a form from a partial
66
+ Given "app/views/admin/posts/_form.html.erb" contains:
67
+ """
68
+ <% url = @post.new_record? ? admin_posts_path : admin_post_path(@post) %>
69
+ <%= active_admin_form_for @post, :url => url do |f|
70
+ f.inputs :title, :body
71
+ f.actions
72
+ end %>
73
+ """
74
+ Given a configuration of:
75
+ """
76
+ ActiveAdmin.register Post do
77
+ controller do
78
+ def permitted_params
79
+ params.permit post: [:category_id, :author_id, :title, :body, :published_at, :starred]
80
+ end if Rails::VERSION::MAJOR == 4
81
+ end
82
+ form :partial => "form"
83
+ end
84
+ """
85
+ Given I follow "New Post"
86
+ When I fill in "Title" with "Hello World"
87
+ And I fill in "Body" with "This is the body"
88
+ And I press "Create Post"
89
+ Then I should see "Post was successfully created."
90
+ And I should see the attribute "Title" with "Hello World"
91
+ And I should see the attribute "Body" with "This is the body"
92
+
93
+ Scenario: Displaying fields at runtime
94
+ Given a configuration of:
95
+ """
96
+ ActiveAdmin.register Post do
97
+ controller do
98
+ def permitted_params
99
+ params.permit post: [:category_id, :author_id, :title, :body, :published_at, :starred]
100
+ end if Rails::VERSION::MAJOR == 4
101
+ end
102
+ form do |f|
103
+ f.inputs "Your Post" do
104
+ if current_admin_user && false
105
+ f.input :title
106
+ end
107
+
108
+ f.input :body
109
+ end
110
+ f.inputs "Publishing" do
111
+ f.input :published_at
112
+ end
113
+ f.actions
114
+ end
115
+ end
116
+ """
117
+ Given I follow "New Post"
118
+ Then I should not see "Title"
119
+ And I should see "Body"
@@ -0,0 +1,35 @@
1
+ Feature: Registering Assets
2
+
3
+ Registering CSS and JS files
4
+
5
+ Background:
6
+ Given a configuration of:
7
+ """
8
+ ActiveAdmin.register Post
9
+ """
10
+ And I am logged in
11
+
12
+
13
+ Scenario: Viewing default asset files
14
+ When I am on the index page for posts
15
+ Then I should see the css file "admin/active_admin.css"
16
+ Then I should see the js file "active_admin_vendor.js"
17
+ Then I should see the js file "active_admin.js"
18
+
19
+ Scenario: Registering a CSS file
20
+ Given a configuration of:
21
+ """
22
+ ActiveAdmin.application.register_stylesheet "some-random-css.css", :media => :print
23
+ ActiveAdmin.register Post
24
+ """
25
+ When I am on the index page for posts
26
+ Then I should see the css file "some-random-css.css" of media "print"
27
+
28
+ Scenario: Registering a JS file
29
+ Given a configuration of:
30
+ """
31
+ ActiveAdmin.application.register_javascript "some-random-js.js"
32
+ ActiveAdmin.register Post
33
+ """
34
+ When I am on the index page for posts
35
+ Then I should see the js file "some-random-js.js"
@@ -0,0 +1,148 @@
1
+ Feature: Registering Pages
2
+
3
+ Registering pages within Active Admin
4
+
5
+ Background:
6
+ Given I am logged in
7
+
8
+ Scenario: Registering a page
9
+ Given a configuration of:
10
+ """
11
+ ActiveAdmin.register_page "Status" do
12
+ content do
13
+ "I love chocolate."
14
+ end
15
+ end
16
+ """
17
+ When I go to the dashboard
18
+ And I follow "Status"
19
+ Then I should see the page title "Status"
20
+ And I should see the Active Admin layout
21
+ And I should see the content "I love chocolate."
22
+
23
+ Scenario: Registering a page with a complex name
24
+ Given a configuration of:
25
+ """
26
+ ActiveAdmin.register_page "Chocolate I lØve You!" do
27
+ content do
28
+ "I love chocolate."
29
+ end
30
+ end
31
+ """
32
+ When I go to the dashboard
33
+ And I follow "Chocolate I lØve You!"
34
+ Then I should see the page title "Chocolate I lØve You!"
35
+ And I should see the Active Admin layout
36
+ And I should see the content "I love chocolate."
37
+
38
+ Scenario: Registering an empty page
39
+ Given a configuration of:
40
+ """
41
+ ActiveAdmin.register_page "Status"
42
+ """
43
+ When I go to the dashboard
44
+ And I follow "Status"
45
+ Then I should see the page title "Status"
46
+ And I should see the Active Admin layout
47
+
48
+ Scenario: Registering a page with a custom title as a string
49
+ Given a configuration of:
50
+ """
51
+ ActiveAdmin.register_page "Status" do
52
+ content :title => "Custom Page Title" do
53
+ "I love chocolate."
54
+ end
55
+ end
56
+ """
57
+ When I go to the dashboard
58
+ And I follow "Status"
59
+ Then I should see the page title "Custom Page Title"
60
+
61
+ Scenario: Registering a page with a custom title as a proc
62
+ Given a configuration of:
63
+ """
64
+ ActiveAdmin.register_page "Status" do
65
+ content :title => proc{ "Custom Page Title from Proc" } do
66
+ "I love chocolate."
67
+ end
68
+ end
69
+ """
70
+ When I go to the dashboard
71
+ And I follow "Status"
72
+ Then I should see the page title "Custom Page Title from Proc"
73
+
74
+ Scenario: Adding a sidebar section to a page
75
+ Given a configuration of:
76
+ """
77
+ ActiveAdmin.register_page "Status" do
78
+ sidebar :help do
79
+ "Need help? Email us at help@example.com"
80
+ end
81
+
82
+ content do
83
+ "I love chocolate."
84
+ end
85
+ end
86
+ """
87
+ When I go to the dashboard
88
+ And I follow "Status"
89
+ Then I should see a sidebar titled "Help"
90
+
91
+
92
+ Scenario: Adding an action item to a page
93
+ Given a configuration of:
94
+ """
95
+ ActiveAdmin.register_page "Status" do
96
+ action_item do
97
+ link_to "Visit", "/"
98
+ end
99
+
100
+ content do
101
+ "I love chocolate."
102
+ end
103
+ end
104
+ """
105
+ When I go to the dashboard
106
+ And I follow "Status"
107
+ Then I should see an action item link to "Visit"
108
+
109
+ Scenario: Adding a page action to a page
110
+ Given a configuration of:
111
+ """
112
+ ActiveAdmin.register_page "Status" do
113
+ page_action :check do
114
+ redirect_to admin_status_path
115
+ end
116
+
117
+ content do
118
+ ("Chocolate I lØve You!" + link_to("Check", admin_status_check_path)).html_safe
119
+ end
120
+ end
121
+ """
122
+ When I go to the dashboard
123
+ And I follow "Status"
124
+ And I follow "Check"
125
+ Then I should see the content "Chocolate I lØve You!"
126
+ And I should see the Active Admin layout
127
+
128
+ Scenario: Adding a page action to a page with erb view
129
+ Given a configuration of:
130
+ """
131
+ ActiveAdmin.register_page "Status" do
132
+ page_action :check do
133
+ end
134
+
135
+ content do
136
+ ("Chocolate I lØve You!" + link_to("Check", admin_status_check_path)).html_safe
137
+ end
138
+ end
139
+ """
140
+ Given "app/views/admin/status/check.html.erb" contains:
141
+ """
142
+ <div>Chocolate lØves You Too!</div>
143
+ """
144
+ When I go to the dashboard
145
+ And I follow "Status"
146
+ And I follow "Check"
147
+ Then I should see the content "Chocolate lØves You Too!"
148
+ And I should see the Active Admin layout
@@ -0,0 +1,33 @@
1
+ Feature: Registering Resources
2
+
3
+ Registering resources within Active Admin
4
+
5
+ Background:
6
+ Given I am logged in
7
+ And a post with the title "Hello World" exists
8
+
9
+ Scenario: Registering a resource with the defaults
10
+ Given a configuration of:
11
+ """
12
+ ActiveAdmin.register Post
13
+ """
14
+ When I go to the dashboard
15
+ Then I should see "Posts"
16
+ When I follow "Posts"
17
+ Then I should see "Hello World"
18
+ When I follow "View"
19
+ Then I should see "Hello World"
20
+ And I should be in the resource section for Post
21
+
22
+ Scenario: Registering a resource with another name
23
+ Given a configuration of:
24
+ """
25
+ ActiveAdmin.register Post, :as => "My Post"
26
+ """
27
+ When I go to the dashboard
28
+ Then I should see "My Posts"
29
+ When I follow "My Posts"
30
+ Then I should see "Hello World"
31
+ When I follow "View"
32
+ Then I should see "Hello World"
33
+ And I should be in the resource section for My Post
@@ -0,0 +1,17 @@
1
+ Feature: Namespace root
2
+
3
+ As a developer
4
+ In order to customize the welcome page
5
+ I want to set it in the configuration
6
+
7
+ Scenario: Default root is the Dashboard
8
+ Given I am logged in with capybara
9
+ Then I should be on the dashboard
10
+
11
+ Scenario: Set root to "stores#index"
12
+ Given a configuration of:
13
+ """
14
+ ActiveAdmin.application.root_to = 'stores#index'
15
+ """
16
+ Given I am logged in with capybara
17
+ Then I should see the page title "Bookstores"
@@ -0,0 +1,43 @@
1
+ Feature: Show - Default Content
2
+
3
+ Viewing the show page for a resource
4
+
5
+ Background:
6
+ Given a post with the title "Hello World" written by "Jane Doe" exists
7
+
8
+ Scenario: Viewing the default show page
9
+ Given a show configuration of:
10
+ """
11
+ ActiveAdmin.register Post
12
+ """
13
+ Then I should see the attribute "Title" with "Hello World"
14
+ And I should see the attribute "Body" with "Empty"
15
+ And I should see the attribute "Created At" with a nicely formatted datetime
16
+ And I should see the attribute "Author" with "Jane Doe"
17
+ And I should see an action item button "Delete Post"
18
+ And I should see an action item button "Edit Post"
19
+
20
+ Scenario: Attributes should link when linked resource is registered
21
+ Given a show configuration of:
22
+ """
23
+ ActiveAdmin.register Post
24
+ ActiveAdmin.register User
25
+ """
26
+ Then I should see the attribute "Author" with "Jane Doe"
27
+ And I should see a link to "Jane Doe"
28
+
29
+ Scenario: Customizing the attributes table with a set of attributes
30
+ Given a show configuration of:
31
+ """
32
+ ActiveAdmin.register Post do
33
+
34
+ show do
35
+ attributes_table :title, :body, :created_at, :updated_at
36
+ end
37
+
38
+ end
39
+ """
40
+ Then I should see the attribute "Title" with "Hello World"
41
+ And I should see the attribute "Body" with "Empty"
42
+ And I should see the attribute "Created At" with a nicely formatted datetime
43
+ And I should not see the attribute "Author"
@@ -0,0 +1,47 @@
1
+ Feature: Show - Page Title
2
+
3
+ Modifying the page title on the show screen
4
+
5
+ Background:
6
+ Given a post with the title "Hello World" written by "Jane Doe" exists
7
+
8
+ Scenario: Set a method to be called on the resource as the title
9
+ Given a show configuration of:
10
+ """
11
+ ActiveAdmin.register Post do
12
+ show :title => :title
13
+ end
14
+ """
15
+ Then I should see the page title "Hello World"
16
+
17
+ Scenario: Set a string as the title
18
+ Given a show configuration of:
19
+ """
20
+ ActiveAdmin.register Post do
21
+ show :title => "Title From String"
22
+ end
23
+ """
24
+ Then I should see the page title "Title From String"
25
+
26
+ Scenario: Set a proc as the title
27
+ Given a show configuration of:
28
+ """
29
+ ActiveAdmin.register Post do
30
+ show :title => proc{|post| "Title: " + post.title }
31
+ end
32
+ """
33
+ Then I should see the page title "Title: Hello World"
34
+
35
+ Scenario: Default title
36
+ Given a show configuration of:
37
+ """
38
+ ActiveAdmin.register Post
39
+ """
40
+ Then I should see the page title "Hello World"
41
+
42
+ Scenario: Default title with no display name method candidate
43
+ Given a show configuration of:
44
+ """
45
+ ActiveAdmin.register Tag
46
+ """
47
+ Then I should see the page title "Tag #"
@@ -0,0 +1,198 @@
1
+ Feature: Sidebar Sections
2
+
3
+ Creating and Configuring sidebar sections
4
+
5
+ Background:
6
+ Given I am logged in
7
+ And a post with the title "Hello World" exists
8
+
9
+ Scenario: Create a sidebar for all actions
10
+ Given a configuration of:
11
+ """
12
+ ActiveAdmin.register Post do
13
+ sidebar :help do
14
+ "Need help? Email us at help@example.com"
15
+ end
16
+ end
17
+ """
18
+ When I am on the index page for posts
19
+ Then I should see a sidebar titled "Help"
20
+ Then I should see "Need help" within the "Help" sidebar
21
+
22
+ When I follow "View"
23
+ Then I should see a sidebar titled "Help"
24
+
25
+ When I follow "Edit Post"
26
+ Then I should see a sidebar titled "Help"
27
+
28
+ When I am on the index page for posts
29
+ When I follow "New Post"
30
+ Then I should see a sidebar titled "Help"
31
+
32
+
33
+ Scenario: Create a sidebar for only one action
34
+ Given a configuration of:
35
+ """
36
+ ActiveAdmin.register Post do
37
+ sidebar :help, :only => :index do
38
+ "Need help? Email us at help@example.com"
39
+ end
40
+ end
41
+ """
42
+ When I am on the index page for posts
43
+ Then I should see a sidebar titled "Help"
44
+ Then I should see "Need help" within the "Help" sidebar
45
+
46
+ When I follow "View"
47
+ Then I should not see a sidebar titled "Help"
48
+
49
+ When I follow "Edit Post"
50
+ Then I should not see a sidebar titled "Help"
51
+
52
+ When I am on the index page for posts
53
+ When I follow "New Post"
54
+ Then I should not see a sidebar titled "Help"
55
+
56
+
57
+ Scenario: Create a sidebar for all except one action
58
+ Given a configuration of:
59
+ """
60
+ ActiveAdmin.register Post do
61
+ sidebar :help, :except => :index do
62
+ "Need help? Email us at help@example.com"
63
+ end
64
+ end
65
+ """
66
+ When I am on the index page for posts
67
+ Then I should not see a sidebar titled "Help"
68
+
69
+ When I follow "View"
70
+ Then I should see a sidebar titled "Help"
71
+
72
+ When I follow "Edit Post"
73
+ Then I should see a sidebar titled "Help"
74
+
75
+ When I am on the index page for posts
76
+ When I follow "New Post"
77
+ Then I should see a sidebar titled "Help"
78
+
79
+ Scenario: Create a sidebar for only one action with if clause that returns false
80
+ Given a configuration of:
81
+ """
82
+ ActiveAdmin.register Post do
83
+ sidebar :help, :only => :index, :if => proc{ current_active_admin_user.nil? } do
84
+ "Need help? Email us at help@example.com"
85
+ end
86
+ end
87
+ """
88
+ When I am on the index page for posts
89
+ Then I should not see a sidebar titled "Help"
90
+
91
+ When I follow "View"
92
+ Then I should not see a sidebar titled "Help"
93
+
94
+ When I follow "Edit Post"
95
+ Then I should not see a sidebar titled "Help"
96
+
97
+ When I am on the index page for posts
98
+ When I follow "New Post"
99
+ Then I should not see a sidebar titled "Help"
100
+
101
+ Scenario: Create a sidebar for only one action with if clause with method symbol
102
+ Given a configuration of:
103
+ """
104
+ module SidebarHelper
105
+ def can_sidebar?; false; end
106
+ end
107
+ ActiveAdmin.register Post do
108
+ controller { helper SidebarHelper }
109
+ sidebar :help, :only => :index, :if => :can_sidebar? do
110
+ "Need help? Email us at help@example.com"
111
+ end
112
+ end
113
+ """
114
+ When I am on the index page for posts
115
+ Then I should not see a sidebar titled "Help"
116
+
117
+ When I follow "View"
118
+ Then I should not see a sidebar titled "Help"
119
+
120
+ When I follow "Edit Post"
121
+ Then I should not see a sidebar titled "Help"
122
+
123
+ When I am on the index page for posts
124
+ When I follow "New Post"
125
+ Then I should not see a sidebar titled "Help"
126
+
127
+ Scenario: Create a sidebar for only one action with if clause that returns true
128
+ Given a configuration of:
129
+ """
130
+ ActiveAdmin.register Post do
131
+ sidebar :help, :only => :show, :if => proc{ !current_active_admin_user.nil? } do
132
+ "Need help? Email us at help@example.com"
133
+ end
134
+ end
135
+ """
136
+ When I am on the index page for posts
137
+ Then I should not see a sidebar titled "Help"
138
+
139
+ When I follow "View"
140
+ Then I should see a sidebar titled "Help"
141
+ Then I should see "Need help" within the "Help" sidebar
142
+
143
+ When I follow "Edit Post"
144
+ Then I should not see a sidebar titled "Help"
145
+
146
+ When I am on the index page for posts
147
+ When I follow "New Post"
148
+ Then I should not see a sidebar titled "Help"
149
+
150
+ Scenario: Create a sidebar with deep content
151
+ Given a configuration of:
152
+ """
153
+ ActiveAdmin.register Post do
154
+ sidebar :help do
155
+ ul do
156
+ li "First List First Item"
157
+ li "First List Second Item"
158
+ end
159
+ ul do
160
+ li "Second List First Item"
161
+ li "Second List Second Item"
162
+ end
163
+ end
164
+ end
165
+ """
166
+ When I am on the index page for posts
167
+ Then I should see a sidebar titled "Help"
168
+ And I should see "First List First Item" within the "Help" sidebar
169
+ And I should see "Second List Second Item" within the "Help" sidebar
170
+
171
+ Scenario: Rendering sidebar by default without a block or partial name
172
+ Given "app/views/admin/posts/_help_sidebar.html.erb" contains:
173
+ """
174
+ <p>Hello World from a partial</p>
175
+ """
176
+ Given a configuration of:
177
+ """
178
+ ActiveAdmin.register Post do
179
+ sidebar :help
180
+ end
181
+ """
182
+ When I am on the index page for posts
183
+ Then I should see "Hello World from a partial" within the "Help" sidebar
184
+
185
+ Scenario: Rendering a partial as the sidebar content
186
+ Given "app/views/admin/posts/_custom_help_partial.html.erb" contains:
187
+ """
188
+ <p>Hello World from a custom partial</p>
189
+ """
190
+ Given a configuration of:
191
+ """
192
+ ActiveAdmin.register Post do
193
+ sidebar :help, :partial => "custom_help_partial"
194
+ end
195
+ """
196
+ When I am on the index page for posts
197
+ Then I should see "Hello World from a custom partial" within the "Help" sidebar
198
+
@@ -0,0 +1,47 @@
1
+ Feature: Site title
2
+
3
+ As a developer
4
+ In order to customize the site title
5
+ I want to set it in the configuration
6
+
7
+ Background:
8
+ Given I am logged in
9
+
10
+ Scenario: Set the site title and site title link
11
+ Given a configuration of:
12
+ """
13
+ ActiveAdmin.application.site_title = "My Great Site"
14
+ ActiveAdmin.application.site_title_link = "/admin"
15
+ """
16
+ When I am on the dashboard
17
+ And I should see the site title "My Great Site"
18
+ When I follow "My Great Site"
19
+ Then I should see the site title "My Great Site"
20
+
21
+ Scenario: Set the site title image
22
+ Given a configuration of:
23
+ """
24
+ ActiveAdmin.application.site_title_image = "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
25
+ """
26
+ When I am on the dashboard
27
+ And I should not see the site title "My Great Site"
28
+ And I should see the site title image "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
29
+
30
+ Scenario: Set the site title image with link
31
+ Given a configuration of:
32
+ """
33
+ ActiveAdmin.application.site_title_link = "http://www.google.com"
34
+ ActiveAdmin.application.site_title_image = "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
35
+ """
36
+ When I am on the dashboard
37
+ And I should see the site title image "http://railscasts.com/assets/episodes/stills/284-active-admin.png?1316476106"
38
+ And I should see the site title image linked to "http://www.google.com"
39
+
40
+ Scenario: Set the site title to a proc
41
+ Given a configuration of:
42
+ """
43
+ ActiveAdmin.application.site_title_image = nil # Configuration is not reset between scenarios
44
+ ActiveAdmin.application.site_title = proc { "Hello #{controller.current_admin_user.try(:email) || 'you!'}" }
45
+ """
46
+ When I am on the dashboard
47
+ And I should see the site title "Hello admin@example.com"