activeadmin 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of activeadmin might be problematic. Click here for more details.

Files changed (277) hide show
  1. data/.gitignore +34 -0
  2. data/.travis.yml +4 -0
  3. data/.yardopts +8 -0
  4. data/CHANGELOG.md +177 -0
  5. data/Gemfile +21 -32
  6. data/Guardfile +8 -0
  7. data/README.rdoc +75 -14
  8. data/Rakefile +7 -100
  9. data/activeadmin.gemspec +21 -353
  10. data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/admin_notes_icon.png +0 -0
  11. data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
  12. data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
  13. data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
  14. data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
  15. data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
  16. data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/loading.gif +0 -0
  17. data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/nested_menu_arrow.gif +0 -0
  18. data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/nested_menu_arrow_dark.gif +0 -0
  19. data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/orderable.png +0 -0
  20. data/app/assets/javascripts/active_admin/base.js +12 -0
  21. data/{lib/generators/active_admin/install/templates/active_admin_vendor.js → app/assets/javascripts/active_admin/vendor.js} +0 -0
  22. data/{lib/active_admin/stylesheets/active_admin.scss → app/assets/stylesheets/active_admin/_base.css.scss} +58 -82
  23. data/{lib/active_admin/stylesheets/active_admin/_forms.scss → app/assets/stylesheets/active_admin/_forms.css.scss} +94 -5
  24. data/{lib/active_admin/stylesheets/active_admin/_header.scss → app/assets/stylesheets/active_admin/_header.css.scss} +13 -11
  25. data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
  26. data/{lib/active_admin/stylesheets/active_admin/_typography.scss → app/assets/stylesheets/active_admin/_typography.css.scss} +0 -0
  27. data/{lib/active_admin/stylesheets/active_admin/_comments.scss → app/assets/stylesheets/active_admin/components/_comments.css.scss} +0 -0
  28. data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
  29. data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +38 -0
  30. data/{lib/active_admin/stylesheets/active_admin/mixins/_all.scss → app/assets/stylesheets/active_admin/mixins/_all.css.scss} +0 -0
  31. data/{lib/active_admin/stylesheets/active_admin/mixins/_buttons.scss → app/assets/stylesheets/active_admin/mixins/_buttons.css.scss} +0 -0
  32. data/{lib/active_admin/stylesheets/active_admin/mixins/_gradients.scss → app/assets/stylesheets/active_admin/mixins/_gradients.css.scss} +8 -0
  33. data/{lib/active_admin/stylesheets/active_admin/mixins/_icons.scss → app/assets/stylesheets/active_admin/mixins/_icons.css.scss} +0 -0
  34. data/{lib/active_admin/stylesheets/active_admin/mixins/_reset.scss → app/assets/stylesheets/active_admin/mixins/_reset.css.scss} +0 -0
  35. data/{lib/active_admin/stylesheets/active_admin/mixins/_rounded.scss → app/assets/stylesheets/active_admin/mixins/_rounded.css.scss} +0 -0
  36. data/{lib/active_admin/stylesheets/active_admin/mixins/_sections.scss → app/assets/stylesheets/active_admin/mixins/_sections.css.scss} +9 -2
  37. data/{lib/active_admin/stylesheets/active_admin/mixins/_shadows.scss → app/assets/stylesheets/active_admin/mixins/_shadows.css.scss} +1 -1
  38. data/{lib/active_admin/stylesheets/active_admin/mixins/_variables.scss → app/assets/stylesheets/active_admin/mixins/_variables.css.scss} +12 -3
  39. data/{lib/active_admin/views/templates/active_admin_dashboard → app/views/active_admin/dashboard}/index.html.arb +0 -0
  40. data/{lib/active_admin/views/templates → app/views}/active_admin/devise/mailer/reset_password_instructions.html.erb +0 -0
  41. data/{lib/active_admin/views/templates → app/views}/active_admin/devise/mailer/unlock_instructions.html.erb +0 -0
  42. data/{lib/active_admin/views/templates → app/views}/active_admin/devise/passwords/edit.html.erb +0 -0
  43. data/{lib/active_admin/views/templates → app/views}/active_admin/devise/passwords/new.html.erb +0 -0
  44. data/{lib/active_admin/views/templates → app/views}/active_admin/devise/sessions/new.html.erb +1 -1
  45. data/{lib/active_admin/views/templates → app/views}/active_admin/devise/shared/_links.erb +0 -0
  46. data/{lib/active_admin/views/templates → app/views}/active_admin/devise/unlocks/new.html.erb +0 -0
  47. data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/edit.html.arb +0 -0
  48. data/app/views/active_admin/resource/index.csv.erb +20 -0
  49. data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/index.html.arb +0 -0
  50. data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/new.html.arb +0 -0
  51. data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/show.html.arb +0 -0
  52. data/app/views/layouts/active_admin.html.arb +1 -0
  53. data/{lib/active_admin/views/templates → app/views}/layouts/active_admin_logged_out.html.erb +8 -4
  54. data/docs/0-installation.md +50 -0
  55. data/docs/1-general-configuration.md +43 -0
  56. data/docs/2-resource-customization.md +35 -0
  57. data/docs/3-index-pages.md +55 -0
  58. data/docs/3-index-pages/index-as-block.md +16 -0
  59. data/docs/3-index-pages/index-as-blog.md +61 -0
  60. data/docs/3-index-pages/index-as-grid.md +21 -0
  61. data/docs/3-index-pages/index-as-table.md +90 -0
  62. data/docs/4-csv-format.md +14 -0
  63. data/docs/5-forms.md +39 -0
  64. data/docs/6-show-screens.md +22 -0
  65. data/docs/7-sidebars.md +35 -0
  66. data/docs/8-custom-actions.md +123 -0
  67. data/features/comments/commenting.feature +31 -4
  68. data/features/edit_page.feature +30 -1
  69. data/features/index/filters.feature +35 -0
  70. data/features/index/format_as_csv.feature +46 -0
  71. data/features/index/formats.feature +2 -0
  72. data/features/index/index_as_block.feature +1 -1
  73. data/features/index/index_as_grid.feature +1 -1
  74. data/features/index/index_as_table.feature +2 -0
  75. data/features/index/index_blank_slate.feature +56 -0
  76. data/features/index/pagination.feature +0 -6
  77. data/features/registering_assets.feature +2 -2
  78. data/features/sidebar_sections.feature +7 -8
  79. data/features/specifying_actions.feature +72 -1
  80. data/features/step_definitions/action_item_steps.rb +2 -2
  81. data/features/step_definitions/additional_web_steps.rb +26 -16
  82. data/features/step_definitions/attribute_steps.rb +5 -7
  83. data/features/step_definitions/configuration_steps.rb +9 -9
  84. data/features/step_definitions/factory_steps.rb +4 -3
  85. data/features/step_definitions/format_steps.rb +29 -1
  86. data/features/step_definitions/layout_steps.rb +3 -0
  87. data/features/step_definitions/menu_steps.rb +2 -2
  88. data/features/step_definitions/sidebar_steps.rb +1 -5
  89. data/features/step_definitions/user_steps.rb +8 -2
  90. data/features/step_definitions/web_steps.rb +82 -90
  91. data/features/sti_resource.feature +12 -0
  92. data/features/support/env.rb +12 -10
  93. data/features/support/paths.rb +2 -0
  94. data/features/support/selectors.rb +45 -0
  95. data/lib/active_admin.rb +33 -263
  96. data/lib/active_admin/application.rb +228 -0
  97. data/lib/active_admin/arbre.rb +10 -10
  98. data/lib/active_admin/arbre/{html.rb → builder.rb} +29 -2
  99. data/lib/active_admin/arbre/context.rb +8 -0
  100. data/lib/active_admin/arbre/{attributes.rb → html/attributes.rb} +0 -0
  101. data/lib/active_admin/arbre/{class_list.rb → html/class_list.rb} +0 -0
  102. data/lib/active_admin/arbre/{collection.rb → html/collection.rb} +0 -0
  103. data/lib/active_admin/arbre/{document.rb → html/document.rb} +0 -0
  104. data/lib/active_admin/arbre/{element.rb → html/element.rb} +6 -6
  105. data/lib/active_admin/arbre/{html5_elements.rb → html/html5_elements.rb} +0 -0
  106. data/lib/active_admin/arbre/{tag.rb → html/tag.rb} +0 -0
  107. data/lib/active_admin/arbre/{text_node.rb → html/text_node.rb} +0 -0
  108. data/lib/active_admin/asset_registration.rb +1 -1
  109. data/lib/active_admin/callbacks.rb +5 -3
  110. data/lib/active_admin/comments.rb +3 -3
  111. data/lib/active_admin/comments/comment.rb +6 -0
  112. data/lib/active_admin/comments/configuration.rb +8 -6
  113. data/lib/active_admin/comments/namespace_helper.rb +1 -1
  114. data/lib/active_admin/comments/views/active_admin_comments.rb +1 -1
  115. data/lib/active_admin/csv_builder.rb +45 -0
  116. data/lib/active_admin/dashboards.rb +1 -1
  117. data/lib/active_admin/dashboards/dashboard_controller.rb +3 -10
  118. data/lib/active_admin/dependency_checker.rb +28 -0
  119. data/lib/active_admin/deprecation.rb +36 -0
  120. data/lib/active_admin/devise.rb +14 -3
  121. data/lib/active_admin/dsl.rb +26 -4
  122. data/lib/active_admin/engine.rb +4 -0
  123. data/lib/active_admin/form_builder.rb +18 -9
  124. data/lib/active_admin/helpers/scope_chain.rb +23 -0
  125. data/lib/active_admin/helpers/settings.rb +70 -0
  126. data/lib/active_admin/locales/cs.yml +34 -0
  127. data/lib/active_admin/locales/da.yml +28 -0
  128. data/lib/active_admin/locales/en.yml +40 -0
  129. data/lib/active_admin/locales/es.yml +40 -0
  130. data/lib/active_admin/locales/fr.yml +40 -0
  131. data/lib/active_admin/locales/it.yml +39 -0
  132. data/lib/active_admin/locales/pl.yml +34 -0
  133. data/lib/active_admin/locales/pt-BR.yml +41 -0
  134. data/lib/active_admin/locales/ru.yml +40 -0
  135. data/lib/active_admin/locales/zh_cn.yml +40 -0
  136. data/lib/active_admin/menu_item.rb +6 -0
  137. data/lib/active_admin/namespace.rb +14 -5
  138. data/lib/active_admin/reloader.rb +30 -0
  139. data/lib/active_admin/renderer.rb +1 -1
  140. data/lib/active_admin/resource.rb +45 -88
  141. data/lib/active_admin/resource/action_items.rb +88 -0
  142. data/lib/active_admin/resource/menu.rb +45 -0
  143. data/lib/active_admin/resource/naming.rb +46 -0
  144. data/lib/active_admin/resource/scopes.rb +33 -0
  145. data/lib/active_admin/resource/sidebars.rb +36 -0
  146. data/lib/active_admin/resource_controller.rb +32 -37
  147. data/lib/active_admin/resource_controller/action_builder.rb +1 -1
  148. data/lib/active_admin/resource_controller/actions.rb +66 -40
  149. data/lib/active_admin/resource_controller/callbacks.rb +1 -1
  150. data/lib/active_admin/resource_controller/collection.rb +9 -14
  151. data/lib/active_admin/resource_controller/filters.rb +1 -1
  152. data/lib/active_admin/resource_controller/form.rb +1 -1
  153. data/lib/active_admin/resource_controller/menu.rb +1 -1
  154. data/lib/active_admin/resource_controller/page_configurations.rb +2 -2
  155. data/lib/active_admin/resource_controller/scoping.rb +1 -1
  156. data/lib/active_admin/resource_controller/sidebars.rb +1 -21
  157. data/lib/active_admin/router.rb +85 -0
  158. data/lib/active_admin/sass/active_admin.scss +3 -0
  159. data/lib/active_admin/sass/css_loader.rb +16 -0
  160. data/lib/active_admin/sass/helpers.rb +45 -0
  161. data/lib/active_admin/scope.rb +16 -2
  162. data/lib/active_admin/sidebar_section.rb +41 -0
  163. data/lib/active_admin/stylesheets/active_admin/mixins/_utilities.scss +0 -0
  164. data/lib/active_admin/version.rb +1 -1
  165. data/lib/active_admin/view_factory.rb +5 -3
  166. data/lib/active_admin/view_helpers.rb +1 -2
  167. data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
  168. data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
  169. data/lib/active_admin/view_helpers/display_helper.rb +1 -1
  170. data/lib/active_admin/view_helpers/filter_form_helper.rb +26 -14
  171. data/lib/active_admin/view_helpers/form_helper.rb +1 -0
  172. data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -1
  173. data/lib/active_admin/views/components/attributes_table.rb +2 -2
  174. data/lib/active_admin/views/components/blank_slate.rb +17 -0
  175. data/lib/active_admin/views/components/columns.rb +1 -3
  176. data/lib/active_admin/views/components/paginated_collection.rb +26 -8
  177. data/lib/active_admin/views/components/scopes.rb +13 -8
  178. data/lib/active_admin/views/components/sidebar_section.rb +1 -3
  179. data/lib/active_admin/views/components/status_tag.rb +55 -0
  180. data/lib/active_admin/views/components/table_for.rb +25 -6
  181. data/lib/active_admin/views/header_renderer.rb +20 -4
  182. data/lib/active_admin/views/index_as_block.rb +12 -7
  183. data/lib/active_admin/views/index_as_blog.rb +61 -21
  184. data/lib/active_admin/views/index_as_grid.rb +22 -1
  185. data/lib/active_admin/views/index_as_table.rb +97 -6
  186. data/lib/active_admin/views/pages/base.rb +20 -9
  187. data/lib/active_admin/views/pages/dashboard.rb +7 -4
  188. data/lib/active_admin/views/pages/edit.rb +3 -2
  189. data/lib/active_admin/views/pages/index.rb +30 -5
  190. data/lib/active_admin/views/pages/layout.rb +26 -0
  191. data/lib/active_admin/views/pages/new.rb +3 -2
  192. data/lib/active_admin/views/pages/show.rb +1 -1
  193. data/lib/active_admin/views/tabbed_navigation.rb +94 -0
  194. data/lib/generators/active_admin/assets/assets_generator.rb +21 -0
  195. data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +427 -0
  196. data/lib/generators/active_admin/assets/templates/3.1/active_admin.css.scss +6 -0
  197. data/lib/generators/active_admin/assets/templates/3.1/active_admin.js +1 -0
  198. data/lib/generators/active_admin/assets/templates/dashboards.rb +36 -0
  199. data/lib/generators/active_admin/install/install_generator.rb +2 -4
  200. data/lib/generators/active_admin/install/templates/active_admin.rb.erb +26 -4
  201. data/lib/generators/active_admin/install/templates/dashboards.rb +4 -2
  202. data/lib/generators/active_admin/install/templates/migrations/2_move_admin_notes_to_comments.rb +2 -2
  203. data/script/local +44 -0
  204. data/script/use_rails +46 -0
  205. data/spec/integration/belongs_to_spec.rb +1 -1
  206. data/spec/integration/default_namespace.rb +77 -0
  207. data/spec/integration/javascript_spec.rb +20 -0
  208. data/spec/integration/stylesheets_spec.rb +41 -0
  209. data/spec/spec_helper.rb +21 -11
  210. data/spec/support/detect_rails_version.rb +10 -0
  211. data/spec/support/integration_example_group.rb +1 -1
  212. data/spec/support/jslint.yml +80 -0
  213. data/spec/support/rails_template.rb +1 -1
  214. data/spec/support/rails_template_with_data.rb +2 -1
  215. data/spec/support/templates/cucumber.rb +0 -4
  216. data/spec/unit/active_admin_spec.rb +8 -44
  217. data/spec/unit/application_spec.rb +78 -0
  218. data/spec/unit/arbre/context_spec.rb +22 -0
  219. data/spec/unit/arbre/html/element_finder_methods_spec.rb +2 -2
  220. data/spec/unit/arbre/html/element_spec.rb +2 -3
  221. data/spec/unit/arbre/html/tag_attributes_spec.rb +2 -2
  222. data/spec/unit/arbre/html/tag_spec.rb +2 -2
  223. data/spec/unit/arbre/html_spec.rb +2 -3
  224. data/spec/unit/auto_link_spec.rb +2 -1
  225. data/spec/unit/belongs_to_spec.rb +2 -1
  226. data/spec/unit/comments_spec.rb +43 -39
  227. data/spec/unit/controller_filters_spec.rb +11 -3
  228. data/spec/unit/csv_builder_spec.rb +83 -0
  229. data/spec/unit/devise_spec.rb +66 -0
  230. data/spec/unit/display_name_spec.rb +2 -2
  231. data/spec/unit/filter_form_builder_spec.rb +6 -3
  232. data/spec/unit/form_builder_spec.rb +20 -2
  233. data/spec/unit/generators/install_rails_3_1_spec.rb +16 -0
  234. data/spec/unit/helpers/scope_chain_spec.rb +36 -0
  235. data/spec/unit/helpers/settings_spec.rb +30 -0
  236. data/spec/unit/menu_item_spec.rb +6 -0
  237. data/spec/unit/namespace_spec.rb +68 -19
  238. data/spec/unit/rails_spec.rb +43 -0
  239. data/spec/unit/registration_spec.rb +18 -27
  240. data/spec/unit/reloader_spec.rb +28 -0
  241. data/spec/unit/resource/action_items_spec.rb +62 -0
  242. data/spec/unit/resource/menu_spec.rb +80 -0
  243. data/spec/unit/resource/naming_spec.rb +64 -0
  244. data/spec/unit/resource/scopes_spec.rb +30 -0
  245. data/spec/unit/resource/sidebars_spec.rb +50 -0
  246. data/spec/unit/resource_controller/collection_spec.rb +1 -1
  247. data/spec/unit/resource_controller_spec.rb +29 -24
  248. data/spec/unit/resource_spec.rb +78 -94
  249. data/spec/unit/sass/helpers_spec.rb +47 -0
  250. data/spec/unit/scope_spec.rb +11 -1
  251. data/spec/unit/view_factory_spec.rb +4 -1
  252. data/spec/unit/{components → views/components}/attributes_table_spec.rb +2 -2
  253. data/spec/unit/views/components/blank_slate_spec.rb +15 -0
  254. data/spec/unit/{components → views/components}/columns_spec.rb +2 -2
  255. data/spec/unit/{components → views/components}/panel_spec.rb +1 -3
  256. data/spec/unit/{components → views/components}/sidebar_section_spec.rb +3 -3
  257. data/spec/unit/views/components/status_tag_spec.rb +79 -0
  258. data/spec/unit/{components → views/components}/table_for_spec.rb +2 -1
  259. data/spec/unit/views/pages/layout_spec.rb +22 -0
  260. data/spec/unit/views/tabbed_navigation_spec.rb +125 -0
  261. data/tasks/docs.rake +39 -0
  262. data/tasks/test.rake +55 -0
  263. data/tasks/yard.rake +6 -0
  264. metadata +310 -189
  265. data/CHANGELOG.rdoc +0 -76
  266. data/lib/active_admin/action_items.rb +0 -37
  267. data/lib/active_admin/sidebar.rb +0 -39
  268. data/lib/active_admin/stylesheets/active_admin/_flash_messages.scss +0 -13
  269. data/lib/active_admin/view_helpers/status_tag_helper.rb +0 -13
  270. data/lib/active_admin/view_helpers/table_helper.rb +0 -12
  271. data/lib/active_admin/views/tabs_renderer.rb +0 -52
  272. data/lib/active_admin/views/templates/active_admin_default/index.csv.erb +0 -2
  273. data/lib/active_admin/views/templates/layouts/active_admin.html.erb +0 -39
  274. data/lib/generators/active_admin/install/templates/active_admin.js +0 -51
  275. data/spec/controllers/index_as_csv_spec.rb +0 -35
  276. data/spec/unit/action_items_spec.rb +0 -27
  277. data/spec/unit/tabs_renderer_spec.rb +0 -56
@@ -0,0 +1,6 @@
1
+ // Active Admin CSS Styles
2
+ @import "active_admin/mixins";
3
+ @import "active_admin/base";
4
+
5
+ // To customize the Active Admin interfaces, add your
6
+ // styles here:
@@ -0,0 +1 @@
1
+ //= require active_admin/base
@@ -0,0 +1,36 @@
1
+ ActiveAdmin::Dashboards.build do
2
+
3
+ # Define your dashboard sections here. Each block will be
4
+ # rendered on the dashboard in the context of the view. So just
5
+ # return the content which you would like to display.
6
+
7
+ # == Simple Dashboard Section
8
+ # Here is an example of a simple dashboard section
9
+ #
10
+ # section "Recent Posts" do
11
+ # ul do
12
+ # Post.recent(5).collect do |post|
13
+ # li link_to(post.title, admin_post_path(post))
14
+ # end
15
+ # end
16
+ # end
17
+
18
+ # == Render Partial Section
19
+ # The block is rendererd within the context of the view, so you can
20
+ # easily render a partial rather than build content in ruby.
21
+ #
22
+ # section "Recent Posts" do
23
+ # render 'recent_posts' # => this will render /app/views/admin/dashboard/_recent_posts.html.erb
24
+ # end
25
+
26
+ # == Section Ordering
27
+ # The dashboard sections are ordered by a given priority from top left to
28
+ # bottom right. The default priority is 10. By giving a section numerically lower
29
+ # priority it will be sorted higher. For example:
30
+ #
31
+ # section "Recent Posts", :priority => 10
32
+ # section "Recent User", :priority => 1
33
+ #
34
+ # Will render the "Recent Users" then the "Recent Posts" sections on the dashboard.
35
+
36
+ end
@@ -28,10 +28,8 @@ module ActiveAdmin
28
28
  route "ActiveAdmin.routes(self)"
29
29
  end
30
30
 
31
- def copy_assets
32
- template 'active_admin_vendor.js', 'public/javascripts/active_admin_vendor.js'
33
- template 'active_admin.js', 'public/javascripts/active_admin.js'
34
- directory 'images', 'public/images/active_admin'
31
+ def create_assets
32
+ generate "active_admin:assets"
35
33
  end
36
34
 
37
35
  def create_migrations
@@ -21,7 +21,9 @@ ActiveAdmin.setup do |config|
21
21
  #
22
22
  # To set no namespace by default, use:
23
23
  # config.default_namespace = false
24
- config.default_namespace = :admin
24
+ #
25
+ # Default:
26
+ # config.default_namespace = :admin
25
27
 
26
28
 
27
29
  # == User Authentication
@@ -45,14 +47,34 @@ ActiveAdmin.setup do |config|
45
47
  config.current_user_method = :current_admin_user
46
48
 
47
49
 
50
+ # == Logging Out
51
+ #
52
+ # Active Admin displays a logout link on each screen. These
53
+ # settings configure the location and method used for the link.
54
+ #
55
+ # This setting changes the path where the link points to. If it's
56
+ # a string, the strings is used as the path. If it's a Symbol, we
57
+ # will call the method to return the path.
58
+ #
59
+ # Default:
60
+ # config.logout_link_path = :destroy_admin_user_session_path
61
+
62
+ # This setting changes the http method used when rendering the
63
+ # link. For example :get, :delete, :put, etc..
64
+ #
65
+ # Default:
66
+ # config.logout_link_method = :get
67
+
68
+
48
69
  # == Admin Comments
49
70
  #
50
- # Admin notes allow you to add notes to any model
71
+ # Admin comments allow you to add comments to any model for admin use
51
72
  #
52
- # Admin notes are enabled by default in the default
73
+ # Admin comments are enabled by default in the default
53
74
  # namespace only. You can turn them on in a namesapce
54
75
  # by adding them to the comments array.
55
76
  #
77
+ # Default:
56
78
  # config.allow_comments_in = [:admin]
57
79
 
58
80
 
@@ -66,7 +88,7 @@ ActiveAdmin.setup do |config|
66
88
 
67
89
  # == Register Stylesheets & Javascripts
68
90
  #
69
- # We recomend using the built in Active Admin layout and loading
91
+ # We recommend using the built in Active Admin layout and loading
70
92
  # up your own stylesheets / javascripts to customize the look
71
93
  # and feel.
72
94
  #
@@ -16,11 +16,13 @@ ActiveAdmin::Dashboards.build do
16
16
  # end
17
17
 
18
18
  # == Render Partial Section
19
- # The block is rendererd within the context of the view, so you can
19
+ # The block is rendered within the context of the view, so you can
20
20
  # easily render a partial rather than build content in ruby.
21
21
  #
22
22
  # section "Recent Posts" do
23
- # render 'recent_posts' # => this will render /app/views/admin/dashboard/_recent_posts.html.erb
23
+ # div do
24
+ # render 'recent_posts' # => this will render /app/views/admin/dashboard/_recent_posts.html.erb
25
+ # end
24
26
  # end
25
27
 
26
28
  # == Section Ordering
@@ -9,8 +9,8 @@ class MoveAdminNotesToComments < ActiveRecord::Migration
9
9
  add_index :active_admin_comments, [:author_type, :author_id]
10
10
 
11
11
  # Update all the existing comments to the default namespace
12
- say "Updating any existing comments to the #{ActiveAdmin.default_namespace} namespace."
13
- execute "UPDATE active_admin_comments SET namespace='#{ActiveAdmin.default_namespace}'"
12
+ say "Updating any existing comments to the #{ActiveAdmin.application.default_namespace} namespace."
13
+ execute "UPDATE active_admin_comments SET namespace='#{ActiveAdmin.application.default_namespace}'"
14
14
  end
15
15
 
16
16
  def self.down
@@ -0,0 +1,44 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require File.expand_path('../../spec/support/detect_rails_version', __FILE__)
4
+
5
+ unless ARGV[0]
6
+ puts <<-EOF
7
+ Usage: ./script/#{__FILE__} COMMAND [ARGS]
8
+
9
+ The command will be run in the context of the local rails
10
+ app stored in test-rails-app.
11
+
12
+ Examples:
13
+
14
+ ./script/local server
15
+ ./script/local c
16
+ ./script/local rake db:migrate
17
+ EOF
18
+ exit(1)
19
+ end
20
+
21
+ # Set up some variables
22
+ rails_version = detect_rails_version || '3.0.0'
23
+
24
+ test_app_dir = ".test-rails-apps"
25
+ test_app_path = "#{test_app_dir}/test-rails-app-#{rails_version}"
26
+
27
+ # Ensure .test-rails-apps is created
28
+ system "mkdir #{test_app_dir}" unless File.exists?(test_app_dir)
29
+
30
+ # Create the sample rails app if it doesn't already exist
31
+ unless File.exists? test_app_path
32
+ system "RAILS='#{rails_version}' bundle exec rails new #{test_app_path} -m spec/support/rails_template_with_data.rb"
33
+ end
34
+
35
+ # Link this rails app
36
+ system "rm test-rails-app"
37
+ system "ln -s #{test_app_path} test-rails-app"
38
+
39
+ # If it's a rails command, auto add the rails script
40
+ RAILS_COMMANDS = %w{generate console server dbconsole g c s runner}
41
+ args = RAILS_COMMANDS.include?(ARGV[0]) ? ["rails", ARGV].flatten : ARGV
42
+
43
+ # Run the command
44
+ exec "cd test-rails-app && GEMFILE=../Gemfile bundle exec #{args.join(" ")}"
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env ruby
2
+ #
3
+ # Switches the development environment to use the given
4
+ # version of rails. Caches the Gemfile.locks so that
5
+ # switching it very fast.
6
+
7
+ def cmd(command)
8
+ puts command
9
+ exit 1 unless system command
10
+ end
11
+
12
+ version = ARGV[0]
13
+
14
+ unless version
15
+ puts "USAGE: ./script/#{__FILE__} VERSION [OPTIONS]"
16
+ puts
17
+ puts "Options:"
18
+ puts " --clobber Add this flag to remove the existing Gemfile.lock before running"
19
+ exit(1)
20
+ end
21
+
22
+ def file_or_symlink?(path)
23
+ File.exist?(path) || File.symlink?(path)
24
+ end
25
+
26
+ gem_lock_dir = ".gemfile-locks"
27
+ gem_lock_file = "#{gem_lock_dir}/Gemfile-#{version}.lock"
28
+
29
+ # Ensure our lock dir is created
30
+ cmd "mkdir #{gem_lock_dir}" unless File.exists?(gem_lock_dir)
31
+
32
+ # --clobber passed in
33
+ if File.exists?(gem_lock_file) && ARGV.include?('--clobber')
34
+ cmd "rm #{gem_lock_file}"
35
+ end
36
+
37
+ unless File.exists?(gem_lock_file)
38
+ # Generate it
39
+ cmd "rm Gemfile.lock" if file_or_symlink?("Gemfile.lock")
40
+ cmd "export RAILS=#{version} && bundle install"
41
+ cmd "mv Gemfile.lock #{gem_lock_file}"
42
+ end
43
+
44
+ cmd("rm Gemfile.lock") if file_or_symlink?("Gemfile.lock")
45
+ cmd("ln -s #{gem_lock_file} Gemfile.lock")
46
+ cmd("bundle")
@@ -33,7 +33,7 @@ describe_with_capybara "Belongs To" do
33
33
 
34
34
  describe "the view links" do
35
35
  it "should take you to the sub resource" do
36
- click "View"
36
+ click_link "View"
37
37
  current_path.should == "/admin/users/#{user.id}/posts/#{post.id}"
38
38
  end
39
39
  end
@@ -0,0 +1,77 @@
1
+ require 'spec_helper'
2
+
3
+ describe ActiveAdmin::Application do
4
+
5
+ include Rails.application.routes.url_helpers
6
+
7
+ [false, nil].each do |value|
8
+
9
+ describe "with a #{value} default namespace" do
10
+
11
+ before(:all) do
12
+ @__original_application = ActiveAdmin.application
13
+ application = ActiveAdmin::Application.new
14
+ application.default_namespace = value
15
+ ActiveAdmin.application = application
16
+ load_defaults!
17
+ reload_routes!
18
+ end
19
+
20
+ after(:all) do
21
+ ActiveAdmin.application = @__original_application
22
+ end
23
+
24
+ it "should generate a dashboard controller" do
25
+ defined?(::DashboardController).should be_true
26
+ end
27
+
28
+ it "should generate a dashboard route" do
29
+ dashboard_path.should == "/"
30
+ end
31
+
32
+ it "should generate a log out path" do
33
+ destroy_admin_user_session_path.should == "/admin_users/logout"
34
+ end
35
+
36
+ it "should generate a log in path" do
37
+ new_admin_user_session_path.should == "/admin_users/login"
38
+ end
39
+
40
+ end
41
+
42
+ end
43
+
44
+ describe "with a test default namespace" do
45
+
46
+ before(:all) do
47
+ @__original_application = ActiveAdmin.application
48
+ application = ActiveAdmin::Application.new
49
+ application.default_namespace = :test
50
+ ActiveAdmin.application = application
51
+ load_defaults!
52
+ reload_routes!
53
+ end
54
+
55
+ after(:all) do
56
+ ActiveAdmin.application = @__original_application
57
+ end
58
+
59
+ it "should generate a dashboard controller" do
60
+ defined?(::Test::DashboardController).should be_true
61
+ end
62
+
63
+ it "should generate a dashboard route" do
64
+ test_dashboard_path.should == "/test"
65
+ end
66
+
67
+ it "should generate a log out path" do
68
+ destroy_admin_user_session_path.should == "/test/logout"
69
+ end
70
+
71
+ it "should generate a log in path" do
72
+ new_admin_user_session_path.should == "/test/login"
73
+ end
74
+
75
+ end
76
+
77
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+ require 'jslint'
3
+
4
+ %x[which java]
5
+ if $? == 0 # Only run the JS Lint test if Java is installed
6
+ describe "Javascript" do
7
+ before do
8
+ @lint = JSLint::Lint.new(
9
+ :paths => ['public/javascripts/**/*.js'],
10
+ :exclude_paths => ['public/javascripts/vendor/**/*.js'],
11
+ :config_path => 'spec/support/jslint.yml'
12
+ )
13
+ end
14
+
15
+ it "should not have any syntax errors" do
16
+ @lint.run
17
+ end
18
+ end
19
+ end
20
+
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ describe "Stylesheets" do
4
+ if Rails.version[0..2] == '3.1'
5
+ require "sprockets"
6
+ context "when Rails 3.1.x" do
7
+ let(:css) do
8
+ assets = Rails.application.assets
9
+ assets.find_asset("active_admin.css")
10
+ end
11
+ it "should successfully render the scss stylesheets using sprockets" do
12
+ css.should_not be_nil
13
+ end
14
+ it "should not have any syntax errors" do
15
+ css.to_s.should_not include("Syntax error:")
16
+ end
17
+ end
18
+ end
19
+
20
+ if Rails.version[0..2] == '3.0'
21
+ context "when Rails 3.0.x" do
22
+ let(:stylesheet_path) do
23
+ Rails.root + 'public/stylesheets/active_admin.css'
24
+ end
25
+
26
+ before do
27
+ "rm #{stylesheet_path}" if File.exists?(stylesheet_path)
28
+ Sass::Plugin.force_update_stylesheets
29
+ end
30
+
31
+ it "should render the scss stylesheets using SASS" do
32
+ File.exists?(stylesheet_path).should be_true
33
+ end
34
+
35
+ it "should not have any syntax errors" do
36
+ css = File.read(stylesheet_path)
37
+ css.should_not include("Syntax error:")
38
+ end
39
+ end
40
+ end
41
+ end
@@ -3,18 +3,15 @@ $LOAD_PATH << File.expand_path('../support', __FILE__)
3
3
 
4
4
  ENV['BUNDLE_GEMFILE'] = File.expand_path('../../Gemfile', __FILE__)
5
5
 
6
- require 'rubygems'
6
+ require 'detect_rails_version'
7
+ ENV['RAILS'] = detect_rails_version
8
+
7
9
  require "bundler"
8
10
  Bundler.setup
9
11
 
10
12
  require 'shoulda/active_record'
11
13
  include Shoulda::ActiveRecord::Macros
12
14
 
13
- # Setup autoloading of ActiveAdmin and the load path
14
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
15
- autoload :ActiveAdmin, 'active_admin'
16
-
17
-
18
15
  module ActiveAdminIntegrationSpecHelper
19
16
  extend self
20
17
 
@@ -28,7 +25,7 @@ module ActiveAdminIntegrationSpecHelper
28
25
  end
29
26
 
30
27
  def reload_menus!
31
- ActiveAdmin.namespaces.values.each{|n| n.load_menu! }
28
+ ActiveAdmin.application.namespaces.values.each{|n| n.load_menu! }
32
29
  end
33
30
 
34
31
  # Sometimes we need to reload the routes within
@@ -64,6 +61,16 @@ module ActiveAdminIntegrationSpecHelper
64
61
  end
65
62
  end
66
63
 
64
+ # Sets up an Arbre::Builder context
65
+ def setup_arbre_context!
66
+ include Arbre::Builder
67
+ let(:assigns){ {} }
68
+ let(:helpers){ mock_action_view }
69
+ before do
70
+ @_helpers = helpers
71
+ end
72
+ end
73
+
67
74
  # Setup a describe block which uses capybara and rails integration
68
75
  # test methods.
69
76
  def describe_with_capybara(*args, &block)
@@ -85,9 +92,7 @@ module ActiveAdminIntegrationSpecHelper
85
92
 
86
93
  end
87
94
 
88
- ENV['RAILS'] ||= '3.0.0'
89
95
  ENV['RAILS_ENV'] = 'test'
90
-
91
96
  ENV['RAILS_ROOT'] = File.expand_path("../rails/rails-#{ENV["RAILS"]}", __FILE__)
92
97
 
93
98
  # Create the test app if it doesn't exists
@@ -95,6 +100,11 @@ unless File.exists?(ENV['RAILS_ROOT'])
95
100
  system 'rake setup'
96
101
  end
97
102
 
103
+ # Ensure the Active Admin load path is happy
104
+ require 'rails'
105
+ require 'active_admin'
106
+ ActiveAdmin.application.load_paths = [ENV['RAILS_ROOT'] + "/app/admin"]
107
+
98
108
  require ENV['RAILS_ROOT'] + '/config/environment'
99
109
  require 'rspec/rails'
100
110
 
@@ -105,8 +115,8 @@ reload_routes!
105
115
 
106
116
  # Disabling authentication in specs so that we don't have to worry about
107
117
  # it allover the place
108
- ActiveAdmin.authentication_method = false
109
- ActiveAdmin.current_user_method = false
118
+ ActiveAdmin.application.authentication_method = false
119
+ ActiveAdmin.application.current_user_method = false
110
120
 
111
121
  # Don't add asset cache timestamps. Makes it easy to integration
112
122
  # test for the presence of an asset file