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.
- data/.gitignore +34 -0
- data/.travis.yml +4 -0
- data/.yardopts +8 -0
- data/CHANGELOG.md +177 -0
- data/Gemfile +21 -32
- data/Guardfile +8 -0
- data/README.rdoc +75 -14
- data/Rakefile +7 -100
- data/activeadmin.gemspec +21 -353
- data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/admin_notes_icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-header-bg.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-next-link-icon.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-nipple.png +0 -0
- data/app/assets/images/active_admin/datepicker/datepicker-prev-link-icon.png +0 -0
- data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/loading.gif +0 -0
- data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/nested_menu_arrow.gif +0 -0
- data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/nested_menu_arrow_dark.gif +0 -0
- data/{lib/generators/active_admin/install/templates/images → app/assets/images/active_admin}/orderable.png +0 -0
- data/app/assets/javascripts/active_admin/base.js +12 -0
- data/{lib/generators/active_admin/install/templates/active_admin_vendor.js → app/assets/javascripts/active_admin/vendor.js} +0 -0
- data/{lib/active_admin/stylesheets/active_admin.scss → app/assets/stylesheets/active_admin/_base.css.scss} +58 -82
- data/{lib/active_admin/stylesheets/active_admin/_forms.scss → app/assets/stylesheets/active_admin/_forms.css.scss} +94 -5
- data/{lib/active_admin/stylesheets/active_admin/_header.scss → app/assets/stylesheets/active_admin/_header.css.scss} +13 -11
- data/app/assets/stylesheets/active_admin/_mixins.css.scss +1 -0
- data/{lib/active_admin/stylesheets/active_admin/_typography.scss → app/assets/stylesheets/active_admin/_typography.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/_comments.scss → app/assets/stylesheets/active_admin/components/_comments.css.scss} +0 -0
- data/app/assets/stylesheets/active_admin/components/_date_picker.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +38 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_all.scss → app/assets/stylesheets/active_admin/mixins/_all.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_buttons.scss → app/assets/stylesheets/active_admin/mixins/_buttons.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_gradients.scss → app/assets/stylesheets/active_admin/mixins/_gradients.css.scss} +8 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_icons.scss → app/assets/stylesheets/active_admin/mixins/_icons.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_reset.scss → app/assets/stylesheets/active_admin/mixins/_reset.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_rounded.scss → app/assets/stylesheets/active_admin/mixins/_rounded.css.scss} +0 -0
- data/{lib/active_admin/stylesheets/active_admin/mixins/_sections.scss → app/assets/stylesheets/active_admin/mixins/_sections.css.scss} +9 -2
- data/{lib/active_admin/stylesheets/active_admin/mixins/_shadows.scss → app/assets/stylesheets/active_admin/mixins/_shadows.css.scss} +1 -1
- data/{lib/active_admin/stylesheets/active_admin/mixins/_variables.scss → app/assets/stylesheets/active_admin/mixins/_variables.css.scss} +12 -3
- data/{lib/active_admin/views/templates/active_admin_dashboard → app/views/active_admin/dashboard}/index.html.arb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/mailer/reset_password_instructions.html.erb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/mailer/unlock_instructions.html.erb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/passwords/edit.html.erb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/passwords/new.html.erb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/sessions/new.html.erb +1 -1
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/shared/_links.erb +0 -0
- data/{lib/active_admin/views/templates → app/views}/active_admin/devise/unlocks/new.html.erb +0 -0
- data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/edit.html.arb +0 -0
- data/app/views/active_admin/resource/index.csv.erb +20 -0
- data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/index.html.arb +0 -0
- data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/new.html.arb +0 -0
- data/{lib/active_admin/views/templates/active_admin_default → app/views/active_admin/resource}/show.html.arb +0 -0
- data/app/views/layouts/active_admin.html.arb +1 -0
- data/{lib/active_admin/views/templates → app/views}/layouts/active_admin_logged_out.html.erb +8 -4
- data/docs/0-installation.md +50 -0
- data/docs/1-general-configuration.md +43 -0
- data/docs/2-resource-customization.md +35 -0
- data/docs/3-index-pages.md +55 -0
- data/docs/3-index-pages/index-as-block.md +16 -0
- data/docs/3-index-pages/index-as-blog.md +61 -0
- data/docs/3-index-pages/index-as-grid.md +21 -0
- data/docs/3-index-pages/index-as-table.md +90 -0
- data/docs/4-csv-format.md +14 -0
- data/docs/5-forms.md +39 -0
- data/docs/6-show-screens.md +22 -0
- data/docs/7-sidebars.md +35 -0
- data/docs/8-custom-actions.md +123 -0
- data/features/comments/commenting.feature +31 -4
- data/features/edit_page.feature +30 -1
- data/features/index/filters.feature +35 -0
- data/features/index/format_as_csv.feature +46 -0
- data/features/index/formats.feature +2 -0
- data/features/index/index_as_block.feature +1 -1
- data/features/index/index_as_grid.feature +1 -1
- data/features/index/index_as_table.feature +2 -0
- data/features/index/index_blank_slate.feature +56 -0
- data/features/index/pagination.feature +0 -6
- data/features/registering_assets.feature +2 -2
- data/features/sidebar_sections.feature +7 -8
- data/features/specifying_actions.feature +72 -1
- data/features/step_definitions/action_item_steps.rb +2 -2
- data/features/step_definitions/additional_web_steps.rb +26 -16
- data/features/step_definitions/attribute_steps.rb +5 -7
- data/features/step_definitions/configuration_steps.rb +9 -9
- data/features/step_definitions/factory_steps.rb +4 -3
- data/features/step_definitions/format_steps.rb +29 -1
- data/features/step_definitions/layout_steps.rb +3 -0
- data/features/step_definitions/menu_steps.rb +2 -2
- data/features/step_definitions/sidebar_steps.rb +1 -5
- data/features/step_definitions/user_steps.rb +8 -2
- data/features/step_definitions/web_steps.rb +82 -90
- data/features/sti_resource.feature +12 -0
- data/features/support/env.rb +12 -10
- data/features/support/paths.rb +2 -0
- data/features/support/selectors.rb +45 -0
- data/lib/active_admin.rb +33 -263
- data/lib/active_admin/application.rb +228 -0
- data/lib/active_admin/arbre.rb +10 -10
- data/lib/active_admin/arbre/{html.rb → builder.rb} +29 -2
- data/lib/active_admin/arbre/context.rb +8 -0
- data/lib/active_admin/arbre/{attributes.rb → html/attributes.rb} +0 -0
- data/lib/active_admin/arbre/{class_list.rb → html/class_list.rb} +0 -0
- data/lib/active_admin/arbre/{collection.rb → html/collection.rb} +0 -0
- data/lib/active_admin/arbre/{document.rb → html/document.rb} +0 -0
- data/lib/active_admin/arbre/{element.rb → html/element.rb} +6 -6
- data/lib/active_admin/arbre/{html5_elements.rb → html/html5_elements.rb} +0 -0
- data/lib/active_admin/arbre/{tag.rb → html/tag.rb} +0 -0
- data/lib/active_admin/arbre/{text_node.rb → html/text_node.rb} +0 -0
- data/lib/active_admin/asset_registration.rb +1 -1
- data/lib/active_admin/callbacks.rb +5 -3
- data/lib/active_admin/comments.rb +3 -3
- data/lib/active_admin/comments/comment.rb +6 -0
- data/lib/active_admin/comments/configuration.rb +8 -6
- data/lib/active_admin/comments/namespace_helper.rb +1 -1
- data/lib/active_admin/comments/views/active_admin_comments.rb +1 -1
- data/lib/active_admin/csv_builder.rb +45 -0
- data/lib/active_admin/dashboards.rb +1 -1
- data/lib/active_admin/dashboards/dashboard_controller.rb +3 -10
- data/lib/active_admin/dependency_checker.rb +28 -0
- data/lib/active_admin/deprecation.rb +36 -0
- data/lib/active_admin/devise.rb +14 -3
- data/lib/active_admin/dsl.rb +26 -4
- data/lib/active_admin/engine.rb +4 -0
- data/lib/active_admin/form_builder.rb +18 -9
- data/lib/active_admin/helpers/scope_chain.rb +23 -0
- data/lib/active_admin/helpers/settings.rb +70 -0
- data/lib/active_admin/locales/cs.yml +34 -0
- data/lib/active_admin/locales/da.yml +28 -0
- data/lib/active_admin/locales/en.yml +40 -0
- data/lib/active_admin/locales/es.yml +40 -0
- data/lib/active_admin/locales/fr.yml +40 -0
- data/lib/active_admin/locales/it.yml +39 -0
- data/lib/active_admin/locales/pl.yml +34 -0
- data/lib/active_admin/locales/pt-BR.yml +41 -0
- data/lib/active_admin/locales/ru.yml +40 -0
- data/lib/active_admin/locales/zh_cn.yml +40 -0
- data/lib/active_admin/menu_item.rb +6 -0
- data/lib/active_admin/namespace.rb +14 -5
- data/lib/active_admin/reloader.rb +30 -0
- data/lib/active_admin/renderer.rb +1 -1
- data/lib/active_admin/resource.rb +45 -88
- data/lib/active_admin/resource/action_items.rb +88 -0
- data/lib/active_admin/resource/menu.rb +45 -0
- data/lib/active_admin/resource/naming.rb +46 -0
- data/lib/active_admin/resource/scopes.rb +33 -0
- data/lib/active_admin/resource/sidebars.rb +36 -0
- data/lib/active_admin/resource_controller.rb +32 -37
- data/lib/active_admin/resource_controller/action_builder.rb +1 -1
- data/lib/active_admin/resource_controller/actions.rb +66 -40
- data/lib/active_admin/resource_controller/callbacks.rb +1 -1
- data/lib/active_admin/resource_controller/collection.rb +9 -14
- data/lib/active_admin/resource_controller/filters.rb +1 -1
- data/lib/active_admin/resource_controller/form.rb +1 -1
- data/lib/active_admin/resource_controller/menu.rb +1 -1
- data/lib/active_admin/resource_controller/page_configurations.rb +2 -2
- data/lib/active_admin/resource_controller/scoping.rb +1 -1
- data/lib/active_admin/resource_controller/sidebars.rb +1 -21
- data/lib/active_admin/router.rb +85 -0
- data/lib/active_admin/sass/active_admin.scss +3 -0
- data/lib/active_admin/sass/css_loader.rb +16 -0
- data/lib/active_admin/sass/helpers.rb +45 -0
- data/lib/active_admin/scope.rb +16 -2
- data/lib/active_admin/sidebar_section.rb +41 -0
- data/lib/active_admin/stylesheets/active_admin/mixins/_utilities.scss +0 -0
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +5 -3
- data/lib/active_admin/view_helpers.rb +1 -2
- data/lib/active_admin/view_helpers/active_admin_application_helper.rb +12 -0
- data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
- data/lib/active_admin/view_helpers/display_helper.rb +1 -1
- data/lib/active_admin/view_helpers/filter_form_helper.rb +26 -14
- data/lib/active_admin/view_helpers/form_helper.rb +1 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -1
- data/lib/active_admin/views/components/attributes_table.rb +2 -2
- data/lib/active_admin/views/components/blank_slate.rb +17 -0
- data/lib/active_admin/views/components/columns.rb +1 -3
- data/lib/active_admin/views/components/paginated_collection.rb +26 -8
- data/lib/active_admin/views/components/scopes.rb +13 -8
- data/lib/active_admin/views/components/sidebar_section.rb +1 -3
- data/lib/active_admin/views/components/status_tag.rb +55 -0
- data/lib/active_admin/views/components/table_for.rb +25 -6
- data/lib/active_admin/views/header_renderer.rb +20 -4
- data/lib/active_admin/views/index_as_block.rb +12 -7
- data/lib/active_admin/views/index_as_blog.rb +61 -21
- data/lib/active_admin/views/index_as_grid.rb +22 -1
- data/lib/active_admin/views/index_as_table.rb +97 -6
- data/lib/active_admin/views/pages/base.rb +20 -9
- data/lib/active_admin/views/pages/dashboard.rb +7 -4
- data/lib/active_admin/views/pages/edit.rb +3 -2
- data/lib/active_admin/views/pages/index.rb +30 -5
- data/lib/active_admin/views/pages/layout.rb +26 -0
- data/lib/active_admin/views/pages/new.rb +3 -2
- data/lib/active_admin/views/pages/show.rb +1 -1
- data/lib/active_admin/views/tabbed_navigation.rb +94 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +21 -0
- data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +427 -0
- data/lib/generators/active_admin/assets/templates/3.1/active_admin.css.scss +6 -0
- data/lib/generators/active_admin/assets/templates/3.1/active_admin.js +1 -0
- data/lib/generators/active_admin/assets/templates/dashboards.rb +36 -0
- data/lib/generators/active_admin/install/install_generator.rb +2 -4
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +26 -4
- data/lib/generators/active_admin/install/templates/dashboards.rb +4 -2
- data/lib/generators/active_admin/install/templates/migrations/2_move_admin_notes_to_comments.rb +2 -2
- data/script/local +44 -0
- data/script/use_rails +46 -0
- data/spec/integration/belongs_to_spec.rb +1 -1
- data/spec/integration/default_namespace.rb +77 -0
- data/spec/integration/javascript_spec.rb +20 -0
- data/spec/integration/stylesheets_spec.rb +41 -0
- data/spec/spec_helper.rb +21 -11
- data/spec/support/detect_rails_version.rb +10 -0
- data/spec/support/integration_example_group.rb +1 -1
- data/spec/support/jslint.yml +80 -0
- data/spec/support/rails_template.rb +1 -1
- data/spec/support/rails_template_with_data.rb +2 -1
- data/spec/support/templates/cucumber.rb +0 -4
- data/spec/unit/active_admin_spec.rb +8 -44
- data/spec/unit/application_spec.rb +78 -0
- data/spec/unit/arbre/context_spec.rb +22 -0
- data/spec/unit/arbre/html/element_finder_methods_spec.rb +2 -2
- data/spec/unit/arbre/html/element_spec.rb +2 -3
- data/spec/unit/arbre/html/tag_attributes_spec.rb +2 -2
- data/spec/unit/arbre/html/tag_spec.rb +2 -2
- data/spec/unit/arbre/html_spec.rb +2 -3
- data/spec/unit/auto_link_spec.rb +2 -1
- data/spec/unit/belongs_to_spec.rb +2 -1
- data/spec/unit/comments_spec.rb +43 -39
- data/spec/unit/controller_filters_spec.rb +11 -3
- data/spec/unit/csv_builder_spec.rb +83 -0
- data/spec/unit/devise_spec.rb +66 -0
- data/spec/unit/display_name_spec.rb +2 -2
- data/spec/unit/filter_form_builder_spec.rb +6 -3
- data/spec/unit/form_builder_spec.rb +20 -2
- data/spec/unit/generators/install_rails_3_1_spec.rb +16 -0
- data/spec/unit/helpers/scope_chain_spec.rb +36 -0
- data/spec/unit/helpers/settings_spec.rb +30 -0
- data/spec/unit/menu_item_spec.rb +6 -0
- data/spec/unit/namespace_spec.rb +68 -19
- data/spec/unit/rails_spec.rb +43 -0
- data/spec/unit/registration_spec.rb +18 -27
- data/spec/unit/reloader_spec.rb +28 -0
- data/spec/unit/resource/action_items_spec.rb +62 -0
- data/spec/unit/resource/menu_spec.rb +80 -0
- data/spec/unit/resource/naming_spec.rb +64 -0
- data/spec/unit/resource/scopes_spec.rb +30 -0
- data/spec/unit/resource/sidebars_spec.rb +50 -0
- data/spec/unit/resource_controller/collection_spec.rb +1 -1
- data/spec/unit/resource_controller_spec.rb +29 -24
- data/spec/unit/resource_spec.rb +78 -94
- data/spec/unit/sass/helpers_spec.rb +47 -0
- data/spec/unit/scope_spec.rb +11 -1
- data/spec/unit/view_factory_spec.rb +4 -1
- data/spec/unit/{components → views/components}/attributes_table_spec.rb +2 -2
- data/spec/unit/views/components/blank_slate_spec.rb +15 -0
- data/spec/unit/{components → views/components}/columns_spec.rb +2 -2
- data/spec/unit/{components → views/components}/panel_spec.rb +1 -3
- data/spec/unit/{components → views/components}/sidebar_section_spec.rb +3 -3
- data/spec/unit/views/components/status_tag_spec.rb +79 -0
- data/spec/unit/{components → views/components}/table_for_spec.rb +2 -1
- data/spec/unit/views/pages/layout_spec.rb +22 -0
- data/spec/unit/views/tabbed_navigation_spec.rb +125 -0
- data/tasks/docs.rake +39 -0
- data/tasks/test.rake +55 -0
- data/tasks/yard.rake +6 -0
- metadata +310 -189
- data/CHANGELOG.rdoc +0 -76
- data/lib/active_admin/action_items.rb +0 -37
- data/lib/active_admin/sidebar.rb +0 -39
- data/lib/active_admin/stylesheets/active_admin/_flash_messages.scss +0 -13
- data/lib/active_admin/view_helpers/status_tag_helper.rb +0 -13
- data/lib/active_admin/view_helpers/table_helper.rb +0 -12
- data/lib/active_admin/views/tabs_renderer.rb +0 -52
- data/lib/active_admin/views/templates/active_admin_default/index.csv.erb +0 -2
- data/lib/active_admin/views/templates/layouts/active_admin.html.erb +0 -39
- data/lib/generators/active_admin/install/templates/active_admin.js +0 -51
- data/spec/controllers/index_as_csv_spec.rb +0 -35
- data/spec/unit/action_items_spec.rb +0 -27
- data/spec/unit/tabs_renderer_spec.rb +0 -56
@@ -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
|
32
|
-
|
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
|
-
|
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
|
71
|
+
# Admin comments allow you to add comments to any model for admin use
|
51
72
|
#
|
52
|
-
# Admin
|
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
|
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
|
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
|
-
#
|
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
|
data/lib/generators/active_admin/install/templates/migrations/2_move_admin_notes_to_comments.rb
CHANGED
@@ -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
|
data/script/local
ADDED
@@ -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(" ")}"
|
data/script/use_rails
ADDED
@@ -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")
|
@@ -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
|
data/spec/spec_helper.rb
CHANGED
@@ -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 '
|
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
|