aa-rails4 0.6.0

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 (487) hide show
  1. checksums.yaml +7 -0
  2. data/.document +5 -0
  3. data/.gitignore +43 -0
  4. data/.travis.yml +8 -0
  5. data/.yardopts +7 -0
  6. data/CHANGELOG.md +894 -0
  7. data/CONTRIBUTING.md +121 -0
  8. data/Gemfile +40 -0
  9. data/Guardfile +7 -0
  10. data/LICENSE +25 -0
  11. data/README.rdoc +118 -0
  12. data/Rakefile +26 -0
  13. data/activeadmin.gemspec +33 -0
  14. data/app/assets/images/active_admin/admin_notes_icon.png +0 -0
  15. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  16. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  17. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  18. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  19. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  20. data/app/assets/images/active_admin/index_list_icons/block_icon.svg +10 -0
  21. data/app/assets/images/active_admin/index_list_icons/blog_icon.svg +4 -0
  22. data/app/assets/images/active_admin/index_list_icons/grid_icon.svg +13 -0
  23. data/app/assets/images/active_admin/index_list_icons/table_icon.svg +3 -0
  24. data/app/assets/images/active_admin/loading.gif +0 -0
  25. data/app/assets/images/active_admin/nested_menu_arrow.gif +0 -0
  26. data/app/assets/images/active_admin/nested_menu_arrow_dark.gif +0 -0
  27. data/app/assets/images/active_admin/orderable.png +0 -0
  28. data/app/assets/javascripts/active_admin/application.js +3 -0
  29. data/app/assets/javascripts/active_admin/base.js +5 -0
  30. data/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee +37 -0
  31. data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +105 -0
  32. data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +97 -0
  33. data/app/assets/javascripts/active_admin/components/jquery.aa.table-checkbox-toggler.js.coffee +25 -0
  34. data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +3 -0
  35. data/app/assets/javascripts/active_admin/pages/application.js.coffee +21 -0
  36. data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +26 -0
  37. data/app/assets/stylesheets/active_admin/_base.css.scss +41 -0
  38. data/app/assets/stylesheets/active_admin/_forms.css.scss +281 -0
  39. data/app/assets/stylesheets/active_admin/_header.css.scss +152 -0
  40. data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
  41. data/app/assets/stylesheets/active_admin/_typography.css.scss +100 -0
  42. data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
  43. data/app/assets/stylesheets/active_admin/components/_blank_slates.scss +31 -0
  44. data/app/assets/stylesheets/active_admin/components/_breadcrumbs.scss +20 -0
  45. data/app/assets/stylesheets/active_admin/components/_buttons.scss +11 -0
  46. data/app/assets/stylesheets/active_admin/components/_columns.scss +3 -0
  47. data/app/assets/stylesheets/active_admin/components/_comments.css.scss +41 -0
  48. data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
  49. data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
  50. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +39 -0
  51. data/app/assets/stylesheets/active_admin/components/_grid.scss +9 -0
  52. data/app/assets/stylesheets/active_admin/components/_index_list.scss +12 -0
  53. data/app/assets/stylesheets/active_admin/components/_links.scss +5 -0
  54. data/app/assets/stylesheets/active_admin/components/_pagination.scss +34 -0
  55. data/app/assets/stylesheets/active_admin/components/_panels.scss +6 -0
  56. data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
  57. data/app/assets/stylesheets/active_admin/components/_scopes.scss +10 -0
  58. data/app/assets/stylesheets/active_admin/components/_status_tags.scss +12 -0
  59. data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +95 -0
  60. data/app/assets/stylesheets/active_admin/components/_tables.css.scss +108 -0
  61. data/app/assets/stylesheets/active_admin/mixins/_all.css.scss +11 -0
  62. data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +66 -0
  63. data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +38 -0
  64. data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +21 -0
  65. data/app/assets/stylesheets/active_admin/mixins/_reset.css.scss +165 -0
  66. data/app/assets/stylesheets/active_admin/mixins/_rounded.css.scss +43 -0
  67. data/app/assets/stylesheets/active_admin/mixins/_sections.css.scss +36 -0
  68. data/app/assets/stylesheets/active_admin/mixins/_shadows.css.scss +22 -0
  69. data/app/assets/stylesheets/active_admin/mixins/_typography.scss +3 -0
  70. data/app/assets/stylesheets/active_admin/mixins/_utilities.scss +26 -0
  71. data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +24 -0
  72. data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +44 -0
  73. data/app/assets/stylesheets/active_admin/print.css.scss +284 -0
  74. data/app/assets/stylesheets/active_admin/structure/_footer.scss +14 -0
  75. data/app/assets/stylesheets/active_admin/structure/_main_structure.scss +26 -0
  76. data/app/assets/stylesheets/active_admin/structure/_title_bar.scss +44 -0
  77. data/app/views/active_admin/dashboard/index.html.arb +1 -0
  78. data/app/views/active_admin/devise/mailer/reset_password_instructions.html.erb +8 -0
  79. data/app/views/active_admin/devise/mailer/unlock_instructions.html.erb +7 -0
  80. data/app/views/active_admin/devise/passwords/edit.html.erb +19 -0
  81. data/app/views/active_admin/devise/passwords/new.html.erb +14 -0
  82. data/app/views/active_admin/devise/sessions/new.html.erb +18 -0
  83. data/app/views/active_admin/devise/shared/_links.erb +27 -0
  84. data/app/views/active_admin/devise/unlocks/new.html.erb +14 -0
  85. data/app/views/active_admin/page/index.html.arb +1 -0
  86. data/app/views/active_admin/resource/edit.html.arb +1 -0
  87. data/app/views/active_admin/resource/index.csv.erb +17 -0
  88. data/app/views/active_admin/resource/index.html.arb +1 -0
  89. data/app/views/active_admin/resource/new.html.arb +1 -0
  90. data/app/views/active_admin/resource/show.html.arb +1 -0
  91. data/app/views/layouts/active_admin.html.arb +1 -0
  92. data/app/views/layouts/active_admin_logged_out.html.erb +37 -0
  93. data/config/locales/bg.yml +101 -0
  94. data/config/locales/ca.yml +98 -0
  95. data/config/locales/cs.yml +92 -0
  96. data/config/locales/da.yml +102 -0
  97. data/config/locales/de-CH.yml +117 -0
  98. data/config/locales/de.yml +119 -0
  99. data/config/locales/en-GB.yml +90 -0
  100. data/config/locales/en.yml +101 -0
  101. data/config/locales/es.yml +106 -0
  102. data/config/locales/es_MX.yml +104 -0
  103. data/config/locales/fr.yml +89 -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 +87 -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 +89 -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 +56 -0
  127. data/docs/1-general-configuration.md +129 -0
  128. data/docs/10-custom-pages.md +96 -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 +206 -0
  132. data/docs/2-resource-customization.md +292 -0
  133. data/docs/3-index-pages.md +191 -0
  134. data/docs/3-index-pages/create-an-index.md +29 -0
  135. data/docs/3-index-pages/index-as-block.md +16 -0
  136. data/docs/3-index-pages/index-as-blog.md +61 -0
  137. data/docs/3-index-pages/index-as-grid.md +21 -0
  138. data/docs/3-index-pages/index-as-table.md +120 -0
  139. data/docs/4-csv-format.md +32 -0
  140. data/docs/5-forms.md +72 -0
  141. data/docs/6-show-pages.md +43 -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 +161 -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 +128 -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 +94 -0
  162. data/features/index/format_as_csv.feature +117 -0
  163. data/features/index/formats.feature +39 -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 +93 -0
  195. data/features/step_definitions/dashboard_steps.rb +15 -0
  196. data/features/step_definitions/factory_steps.rb +33 -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 +46 -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/tab_steps.rb +3 -0
  210. data/features/step_definitions/table_steps.rb +119 -0
  211. data/features/step_definitions/user_steps.rb +39 -0
  212. data/features/step_definitions/web_steps.rb +82 -0
  213. data/features/sti_resource.feature +73 -0
  214. data/features/support/env.rb +118 -0
  215. data/features/support/paths.rb +63 -0
  216. data/features/support/selectors.rb +45 -0
  217. data/features/users/logging_in.feature +34 -0
  218. data/features/users/logging_out.feature +13 -0
  219. data/features/users/resetting_password.feature +34 -0
  220. data/lib/active_admin.rb +120 -0
  221. data/lib/active_admin/abstract_view_factory.rb +95 -0
  222. data/lib/active_admin/application.rb +245 -0
  223. data/lib/active_admin/asset_registration.rb +29 -0
  224. data/lib/active_admin/authorization_adapter.rb +132 -0
  225. data/lib/active_admin/base_controller.rb +78 -0
  226. data/lib/active_admin/base_controller/authorization.rb +153 -0
  227. data/lib/active_admin/base_controller/menu.rb +34 -0
  228. data/lib/active_admin/batch_actions.rb +17 -0
  229. data/lib/active_admin/batch_actions/controller.rb +25 -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/callbacks.rb +87 -0
  236. data/lib/active_admin/cancan_adapter.rb +40 -0
  237. data/lib/active_admin/comments.rb +83 -0
  238. data/lib/active_admin/comments/comment.rb +49 -0
  239. data/lib/active_admin/comments/namespace_helper.rb +14 -0
  240. data/lib/active_admin/comments/resource_helper.rb +17 -0
  241. data/lib/active_admin/comments/show_page_helper.rb +23 -0
  242. data/lib/active_admin/comments/views.rb +2 -0
  243. data/lib/active_admin/comments/views/active_admin_comments.rb +75 -0
  244. data/lib/active_admin/component.rb +5 -0
  245. data/lib/active_admin/controller_action.rb +12 -0
  246. data/lib/active_admin/csv_builder.rb +49 -0
  247. data/lib/active_admin/deprecation.rb +36 -0
  248. data/lib/active_admin/devise.rb +70 -0
  249. data/lib/active_admin/dsl.rb +166 -0
  250. data/lib/active_admin/engine.rb +7 -0
  251. data/lib/active_admin/event.rb +33 -0
  252. data/lib/active_admin/filters.rb +9 -0
  253. data/lib/active_admin/filters/dsl.rb +21 -0
  254. data/lib/active_admin/filters/forms.rb +89 -0
  255. data/lib/active_admin/filters/formtastic_addons.rb +50 -0
  256. data/lib/active_admin/filters/resource_extension.rb +129 -0
  257. data/lib/active_admin/form_builder.rb +189 -0
  258. data/lib/active_admin/helpers/collection.rb +23 -0
  259. data/lib/active_admin/helpers/optional_display.rb +38 -0
  260. data/lib/active_admin/helpers/scope_chain.rb +23 -0
  261. data/lib/active_admin/helpers/settings.rb +108 -0
  262. data/lib/active_admin/iconic.rb +51 -0
  263. data/lib/active_admin/iconic/icons.rb +142 -0
  264. data/lib/active_admin/inputs.rb +15 -0
  265. data/lib/active_admin/inputs/datepicker_input.rb +11 -0
  266. data/lib/active_admin/inputs/filter_base.rb +33 -0
  267. data/lib/active_admin/inputs/filter_base/search_method_select.rb +73 -0
  268. data/lib/active_admin/inputs/filter_boolean_input.rb +32 -0
  269. data/lib/active_admin/inputs/filter_check_boxes_input.rb +40 -0
  270. data/lib/active_admin/inputs/filter_date_range_input.rb +34 -0
  271. data/lib/active_admin/inputs/filter_numeric_input.rb +10 -0
  272. data/lib/active_admin/inputs/filter_select_input.rb +45 -0
  273. data/lib/active_admin/inputs/filter_string_input.rb +24 -0
  274. data/lib/active_admin/menu.rb +107 -0
  275. data/lib/active_admin/menu_collection.rb +96 -0
  276. data/lib/active_admin/menu_item.rb +97 -0
  277. data/lib/active_admin/namespace.rb +221 -0
  278. data/lib/active_admin/page.rb +88 -0
  279. data/lib/active_admin/page_controller.rb +29 -0
  280. data/lib/active_admin/page_dsl.rb +28 -0
  281. data/lib/active_admin/page_presenter.rb +32 -0
  282. data/lib/active_admin/resource.rb +160 -0
  283. data/lib/active_admin/resource/action_items.rb +93 -0
  284. data/lib/active_admin/resource/belongs_to.rb +36 -0
  285. data/lib/active_admin/resource/controllers.rb +18 -0
  286. data/lib/active_admin/resource/menu.rb +64 -0
  287. data/lib/active_admin/resource/naming.rb +78 -0
  288. data/lib/active_admin/resource/page_presenters.rb +82 -0
  289. data/lib/active_admin/resource/pagination.rb +19 -0
  290. data/lib/active_admin/resource/routes.rb +99 -0
  291. data/lib/active_admin/resource/scope_to.rb +74 -0
  292. data/lib/active_admin/resource/scopes.rb +50 -0
  293. data/lib/active_admin/resource/sidebars.rb +27 -0
  294. data/lib/active_admin/resource_collection.rb +42 -0
  295. data/lib/active_admin/resource_controller.rb +51 -0
  296. data/lib/active_admin/resource_controller/action_builder.rb +21 -0
  297. data/lib/active_admin/resource_controller/actions.rb +81 -0
  298. data/lib/active_admin/resource_controller/data_access.rb +303 -0
  299. data/lib/active_admin/resource_controller/decorators.rb +20 -0
  300. data/lib/active_admin/resource_controller/resource_class_methods.rb +24 -0
  301. data/lib/active_admin/resource_controller/scoping.rb +31 -0
  302. data/lib/active_admin/resource_controller/sidebars.rb +18 -0
  303. data/lib/active_admin/resource_dsl.rb +134 -0
  304. data/lib/active_admin/router.rb +106 -0
  305. data/lib/active_admin/scope.rb +57 -0
  306. data/lib/active_admin/sidebar_section.rb +37 -0
  307. data/lib/active_admin/version.rb +3 -0
  308. data/lib/active_admin/view_factory.rb +28 -0
  309. data/lib/active_admin/view_helpers.rb +21 -0
  310. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
  311. data/lib/active_admin/view_helpers/assigns_with_indifferent_access_helper.rb +7 -0
  312. data/lib/active_admin/view_helpers/auto_link_helper.rb +34 -0
  313. data/lib/active_admin/view_helpers/breadcrumb_helper.rb +26 -0
  314. data/lib/active_admin/view_helpers/display_helper.rb +47 -0
  315. data/lib/active_admin/view_helpers/download_format_links_helper.rb +50 -0
  316. data/lib/active_admin/view_helpers/fields_for.rb +50 -0
  317. data/lib/active_admin/view_helpers/flash_helper.rb +13 -0
  318. data/lib/active_admin/view_helpers/form_helper.rb +24 -0
  319. data/lib/active_admin/view_helpers/icon_helper.rb +12 -0
  320. data/lib/active_admin/view_helpers/method_or_proc_helper.rb +93 -0
  321. data/lib/active_admin/view_helpers/sidebar_helper.rb +15 -0
  322. data/lib/active_admin/view_helpers/title_helper.rb +11 -0
  323. data/lib/active_admin/view_helpers/view_factory_helper.rb +11 -0
  324. data/lib/active_admin/views.rb +8 -0
  325. data/lib/active_admin/views/action_items.rb +17 -0
  326. data/lib/active_admin/views/components/action_list_popover.rb +29 -0
  327. data/lib/active_admin/views/components/attributes_table.rb +70 -0
  328. data/lib/active_admin/views/components/blank_slate.rb +17 -0
  329. data/lib/active_admin/views/components/columns.rb +150 -0
  330. data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
  331. data/lib/active_admin/views/components/index_list.rb +68 -0
  332. data/lib/active_admin/views/components/paginated_collection.rb +123 -0
  333. data/lib/active_admin/views/components/panel.rb +34 -0
  334. data/lib/active_admin/views/components/popover.rb +27 -0
  335. data/lib/active_admin/views/components/scopes.rb +65 -0
  336. data/lib/active_admin/views/components/sidebar_section.rb +28 -0
  337. data/lib/active_admin/views/components/site_title.rb +55 -0
  338. data/lib/active_admin/views/components/status_tag.rb +56 -0
  339. data/lib/active_admin/views/components/table_for.rb +191 -0
  340. data/lib/active_admin/views/dashboard_section_renderer.rb +19 -0
  341. data/lib/active_admin/views/footer.rb +20 -0
  342. data/lib/active_admin/views/header.rb +32 -0
  343. data/lib/active_admin/views/index_as_block.rb +36 -0
  344. data/lib/active_admin/views/index_as_blog.rb +150 -0
  345. data/lib/active_admin/views/index_as_grid.rb +76 -0
  346. data/lib/active_admin/views/index_as_table.rb +238 -0
  347. data/lib/active_admin/views/pages/base.rb +139 -0
  348. data/lib/active_admin/views/pages/dashboard.rb +62 -0
  349. data/lib/active_admin/views/pages/form.rb +51 -0
  350. data/lib/active_admin/views/pages/index.rb +158 -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/activeadmin.rb +1 -0
  357. data/lib/generators/active_admin/assets/assets_generator.rb +16 -0
  358. data/lib/generators/active_admin/assets/templates/active_admin.css.scss +17 -0
  359. data/lib/generators/active_admin/assets/templates/active_admin.js.coffee +1 -0
  360. data/lib/generators/active_admin/devise/devise_generator.rb +78 -0
  361. data/lib/generators/active_admin/install/install_generator.rb +46 -0
  362. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +214 -0
  363. data/lib/generators/active_admin/install/templates/admin_user.rb.erb +27 -0
  364. data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
  365. data/lib/generators/active_admin/install/templates/migrations/create_active_admin_comments.rb +19 -0
  366. data/lib/generators/active_admin/resource/resource_generator.rb +16 -0
  367. data/lib/generators/active_admin/resource/templates/admin.rb +3 -0
  368. data/lib/ransack_ext.rb +12 -0
  369. data/script/local +44 -0
  370. data/script/use_rails +53 -0
  371. data/spec/integration/default_namespace_spec.rb +61 -0
  372. data/spec/integration/javascript_spec.rb +20 -0
  373. data/spec/integration/memory_spec.rb +29 -0
  374. data/spec/integration/stylesheets_spec.rb +41 -0
  375. data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
  376. data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
  377. data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
  378. data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
  379. data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
  380. data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
  381. data/spec/javascripts/fixtures/checkboxes.html +9 -0
  382. data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
  383. data/spec/javascripts/helpers/SpecHelper.js +3 -0
  384. data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
  385. data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
  386. data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
  387. data/spec/javascripts/support/jasmine.yml +74 -0
  388. data/spec/javascripts/support/jasmine_config.rb +23 -0
  389. data/spec/javascripts/support/jasmine_runner.rb +32 -0
  390. data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
  391. data/spec/javascripts/support/jquery.min.js +4 -0
  392. data/spec/spec_helper.rb +175 -0
  393. data/spec/spec_helper_without_rails.rb +11 -0
  394. data/spec/support/deferred_garbage_collection.rb +19 -0
  395. data/spec/support/detect_rails_version.rb +42 -0
  396. data/spec/support/integration_example_group.rb +31 -0
  397. data/spec/support/jslint.yml +80 -0
  398. data/spec/support/rails_template.rb +104 -0
  399. data/spec/support/rails_template_with_data.rb +59 -0
  400. data/spec/support/templates/admin/stores.rb +11 -0
  401. data/spec/support/templates/cucumber.rb +24 -0
  402. data/spec/support/templates/cucumber_with_reloading.rb +5 -0
  403. data/spec/support/templates/en.yml +8 -0
  404. data/spec/support/templates/post_decorator.rb +53 -0
  405. data/spec/unit/abstract_view_factory_spec.rb +79 -0
  406. data/spec/unit/action_builder_spec.rb +126 -0
  407. data/spec/unit/active_admin_spec.rb +11 -0
  408. data/spec/unit/application_spec.rb +141 -0
  409. data/spec/unit/asset_registration_spec.rb +56 -0
  410. data/spec/unit/authorization/authorization_adapter_spec.rb +61 -0
  411. data/spec/unit/authorization/controller_authorization_spec.rb +39 -0
  412. data/spec/unit/auto_link_spec.rb +39 -0
  413. data/spec/unit/batch_actions/resource_spec.rb +91 -0
  414. data/spec/unit/batch_actions/settings_spec.rb +61 -0
  415. data/spec/unit/belongs_to_spec.rb +42 -0
  416. data/spec/unit/cancan_adapter_spec.rb +43 -0
  417. data/spec/unit/comments_spec.rb +106 -0
  418. data/spec/unit/component_spec.rb +18 -0
  419. data/spec/unit/config_shared_examples.rb +59 -0
  420. data/spec/unit/controller_filters_spec.rb +27 -0
  421. data/spec/unit/csv_builder_spec.rb +103 -0
  422. data/spec/unit/devise_spec.rb +116 -0
  423. data/spec/unit/dsl_spec.rb +61 -0
  424. data/spec/unit/event_spec.rb +47 -0
  425. data/spec/unit/filters/filter_form_builder_spec.rb +338 -0
  426. data/spec/unit/filters/resource_spec.rb +87 -0
  427. data/spec/unit/form_builder_spec.rb +478 -0
  428. data/spec/unit/generators/install_spec.rb +23 -0
  429. data/spec/unit/helpers/collection_spec.rb +65 -0
  430. data/spec/unit/helpers/scope_chain_spec.rb +36 -0
  431. data/spec/unit/helpers/settings_spec.rb +30 -0
  432. data/spec/unit/menu_collection_spec.rb +62 -0
  433. data/spec/unit/menu_item_spec.rb +143 -0
  434. data/spec/unit/menu_spec.rb +71 -0
  435. data/spec/unit/namespace/authorization_spec.rb +27 -0
  436. data/spec/unit/namespace/register_page_spec.rb +74 -0
  437. data/spec/unit/namespace/register_resource_spec.rb +163 -0
  438. data/spec/unit/namespace_spec.rb +103 -0
  439. data/spec/unit/page_controller_spec.rb +5 -0
  440. data/spec/unit/page_spec.rb +72 -0
  441. data/spec/unit/pretty_format_spec.rb +35 -0
  442. data/spec/unit/resource/action_items_spec.rb +62 -0
  443. data/spec/unit/resource/menu_spec.rb +18 -0
  444. data/spec/unit/resource/naming_spec.rb +108 -0
  445. data/spec/unit/resource/page_presenters_spec.rb +44 -0
  446. data/spec/unit/resource/pagination_spec.rb +38 -0
  447. data/spec/unit/resource/routes_spec.rb +73 -0
  448. data/spec/unit/resource/scopes_spec.rb +43 -0
  449. data/spec/unit/resource/sidebars_spec.rb +43 -0
  450. data/spec/unit/resource_collection_spec.rb +79 -0
  451. data/spec/unit/resource_controller/data_access_spec.rb +73 -0
  452. data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
  453. data/spec/unit/resource_controller_spec.rb +265 -0
  454. data/spec/unit/resource_registration_spec.rb +56 -0
  455. data/spec/unit/resource_spec.rb +243 -0
  456. data/spec/unit/routing_spec.rb +172 -0
  457. data/spec/unit/scope_spec.rb +108 -0
  458. data/spec/unit/settings_spec.rb +88 -0
  459. data/spec/unit/view_factory_spec.rb +22 -0
  460. data/spec/unit/view_helpers/breadcrumbs_spec.rb +152 -0
  461. data/spec/unit/view_helpers/display_name_spec.rb +41 -0
  462. data/spec/unit/view_helpers/download_format_links_helper_spec.rb +39 -0
  463. data/spec/unit/view_helpers/fields_for_spec.rb +50 -0
  464. data/spec/unit/view_helpers/form_helper_spec.rb +56 -0
  465. data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +97 -0
  466. data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
  467. data/spec/unit/views/components/attributes_table_spec.rb +131 -0
  468. data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
  469. data/spec/unit/views/components/blank_slate_spec.rb +17 -0
  470. data/spec/unit/views/components/columns_spec.rb +142 -0
  471. data/spec/unit/views/components/index_list_spec.rb +32 -0
  472. data/spec/unit/views/components/paginated_collection_spec.rb +247 -0
  473. data/spec/unit/views/components/panel_spec.rb +51 -0
  474. data/spec/unit/views/components/popover_spec.rb +33 -0
  475. data/spec/unit/views/components/sidebar_section_spec.rb +37 -0
  476. data/spec/unit/views/components/site_title_spec.rb +78 -0
  477. data/spec/unit/views/components/status_tag_spec.rb +95 -0
  478. data/spec/unit/views/components/table_for_spec.rb +182 -0
  479. data/spec/unit/views/pages/layout_spec.rb +63 -0
  480. data/spec/unit/views/pages/show_spec.rb +20 -0
  481. data/spec/unit/views/tabbed_navigation_spec.rb +149 -0
  482. data/tasks/docs.rake +39 -0
  483. data/tasks/js.rake +32 -0
  484. data/tasks/parallel_tests.rake +60 -0
  485. data/tasks/test.rake +79 -0
  486. data/tasks/yard.rake +6 -0
  487. metadata +883 -0
@@ -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
@@ -0,0 +1,128 @@
1
+ Feature: Commenting
2
+
3
+ As a user
4
+ In order to document changes and have a discussion
5
+ I want to store and view comments on a resource
6
+
7
+ Background:
8
+ Given a post with the title "Hello World" written by "Jane Doe" exists
9
+
10
+ Scenario: View a resource with no comments
11
+ Given a show configuration of:
12
+ """
13
+ ActiveAdmin.register Post
14
+ """
15
+ Then I should see "Comments (0)"
16
+ And I should see "No comments yet."
17
+
18
+ Scenario: Create a new comment
19
+ Given a show configuration of:
20
+ """
21
+ ActiveAdmin.register Post
22
+ """
23
+ When I add a comment "Hello from Comment"
24
+ Then I should see a flash with "Comment was successfully created"
25
+ And I should be in the resource section for posts
26
+ And I should see "Comments (1)"
27
+ And I should see "Hello from Comment"
28
+ And I should see a comment by "admin@example.com"
29
+
30
+ Scenario: View resource with comments turned off
31
+ Given a show configuration of:
32
+ """
33
+ ActiveAdmin.register Post do
34
+ config.comments = false
35
+ end
36
+ """
37
+ Then I should not see the element "div.comments.panel"
38
+
39
+ Scenario: View a resource in a namespace that doesn't have comments
40
+ Given a configuration of:
41
+ """
42
+ ActiveAdmin.application.namespace(:new_namespace).allow_comments = false
43
+ ActiveAdmin.register Post, :namespace => :new_namespace
44
+ ActiveAdmin.register AdminUser, :namespace => :new_namespace
45
+ """
46
+ Given I am logged in
47
+ When I am on the index page for posts in the new_namespace namespace
48
+ And I follow "View"
49
+ Then I should not see "Comments"
50
+
51
+ Scenario: Creating a comment in one namespace does not create it in another
52
+ Given a show configuration of:
53
+ """
54
+ ActiveAdmin.register Post
55
+ ActiveAdmin.register Post, :namespace => :public
56
+ ActiveAdmin.register AdminUser, :namespace => :public
57
+ """
58
+ When I add a comment "Hello world in admin namespace"
59
+ Then I should see "Hello world in admin namespace"
60
+
61
+ When I am on the index page for posts in the public namespace
62
+ And I follow "View"
63
+ Then I should not see "Hello world in admin namespace"
64
+ And I should see "Comments (0)"
65
+
66
+ When I add a comment "Hello world in public namespace"
67
+ Then I should see "Hello world in public namespace"
68
+ When I am on the index page for posts in the admin namespace
69
+ And I follow "View"
70
+ Then I should not see "Hello world in public namespace"
71
+ And I should see "Comments (1)"
72
+
73
+ Scenario: Creating a comment on an aliased resource
74
+ Given a configuration of:
75
+ """
76
+ ActiveAdmin.register Post, :as => "Article"
77
+ """
78
+ Given I am logged in
79
+ When I am on the index page for articles
80
+ And I follow "View"
81
+ When I add a comment "Hello from Comment"
82
+ Then I should see a flash with "Comment was successfully created"
83
+ And I should be in the resource section for articles
84
+
85
+ Scenario: Create an empty comment
86
+ Given a show configuration of:
87
+ """
88
+ ActiveAdmin.register Post
89
+ """
90
+ When I add a comment ""
91
+ Then I should see a flash with "Comment wasn't saved, text was empty."
92
+ And I should see "Comments (0)"
93
+
94
+ Scenario: Viewing all comments for a namespace
95
+ Given a show configuration of:
96
+ """
97
+ ActiveAdmin.register Post
98
+ """
99
+ When I add a comment "Hello from Comment"
100
+ When I am on the index page for comments
101
+ Then I should see a table header with "Body"
102
+ And I should see "Hello from Comment"
103
+
104
+ Scenario: Commenting on a STI subclass
105
+ Given a configuration of:
106
+ """
107
+ ActiveAdmin.register User
108
+ """
109
+ Given I am logged in
110
+ And a publisher named "Pragmatic Publishers" exists
111
+ When I am on the index page for users
112
+ And I follow "View"
113
+ When I add a comment "Hello World"
114
+ Then I should see a flash with "Comment was successfully created"
115
+ And I should be in the resource section for users
116
+
117
+ Scenario: Commenting on a class with string id
118
+ Given a tag with the name "coolness" exists
119
+ Given a configuration of:
120
+ """
121
+ ActiveAdmin.register Tag
122
+ """
123
+ Given I am logged in
124
+ When I am on the index page for tags
125
+ And I follow "View"
126
+ When I add a comment "Tag Comment"
127
+ Then I should see a flash with "Comment was successfully created"
128
+ And I should be in the resource section for tags
@@ -0,0 +1,19 @@
1
+ Feature: Viewing Index of Comments
2
+
3
+ Background:
4
+ Given a post with the title "Hello World" written by "Jane Doe" exists
5
+ Given a show configuration of:
6
+ """
7
+ ActiveAdmin.register Post
8
+ """
9
+
10
+ Scenario: Viewing all commments for a namespace
11
+ When I add a comment "Hello from Comment"
12
+ When I am on the index page for comments
13
+ Then I should see a table header with "Body"
14
+ And I should see a table header with "Resource"
15
+ And I should see a table header with "Author"
16
+ And I should see "Hello from Comment"
17
+ And I should see a link to "Hello World"
18
+ And I should see "admin@example.com"
19
+ And I should not see an action item button "New Comment"
@@ -0,0 +1,16 @@
1
+ Feature: Dashboard
2
+
3
+ Scenario: With default configuration
4
+ Given a configuration of:
5
+ """
6
+ ActiveAdmin.register_page "Dashboard" do
7
+ content do
8
+ para "Hello world from the dashboard page"
9
+ end
10
+ end
11
+ """
12
+ Given I am logged in
13
+ When I go to the dashboard
14
+ Then I should see the Active Admin layout
15
+ And I should not see the default welcome message
16
+ And I should see "Hello world from the dashboard page"