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
@@ -2,13 +2,15 @@ module ActiveAdmin
|
|
2
2
|
module Comments
|
3
3
|
|
4
4
|
module Configuration
|
5
|
+
extend ActiveSupport::Concern
|
5
6
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
7
|
+
included do
|
8
|
+
# Set the namespaces that can create and view comments
|
9
|
+
#
|
10
|
+
# config.allow_comments_in = [:admin, :root]
|
11
|
+
#
|
12
|
+
setting :allow_comments_in, [:admin]
|
13
|
+
end
|
12
14
|
|
13
15
|
end
|
14
16
|
|
@@ -21,7 +21,7 @@ module ActiveAdmin
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def record_comments
|
24
|
-
@record_comments ||= @record.active_admin_comments.where(:namespace => active_admin_namespace.name)
|
24
|
+
@record_comments ||= @record.active_admin_comments.where(:namespace => active_admin_namespace.name.to_s)
|
25
25
|
end
|
26
26
|
|
27
27
|
def build_comments
|
@@ -0,0 +1,45 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
# CSVBuilder stores CSV configuration
|
3
|
+
#
|
4
|
+
# Usage example:
|
5
|
+
#
|
6
|
+
# csv_builder = CSVBuilder.new
|
7
|
+
# csv_builder.column :id
|
8
|
+
# csv_builder.column("Name") { |resource| resource.full_name }
|
9
|
+
#
|
10
|
+
class CSVBuilder
|
11
|
+
|
12
|
+
# Return a default CSVBuilder for a resource
|
13
|
+
# The CSVBuilder's columns would be Id followed by this
|
14
|
+
# resource's content columns
|
15
|
+
def self.default_for_resource(resource)
|
16
|
+
new.tap do |csv_builder|
|
17
|
+
csv_builder.column(:id)
|
18
|
+
resource.content_columns.each do |content_column|
|
19
|
+
csv_builder.column(content_column.name.to_sym)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
attr_reader :columns
|
25
|
+
|
26
|
+
def initialize(&block)
|
27
|
+
@columns = []
|
28
|
+
instance_eval &block if block_given?
|
29
|
+
end
|
30
|
+
|
31
|
+
# Add a column
|
32
|
+
def column(name, &block)
|
33
|
+
@columns << Column.new(name, block)
|
34
|
+
end
|
35
|
+
|
36
|
+
class Column
|
37
|
+
attr_reader :name, :data
|
38
|
+
|
39
|
+
def initialize(name, block = nil)
|
40
|
+
@name = name.is_a?(Symbol) ? name.to_s.titleize : name
|
41
|
+
@data = block || name.to_sym
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -27,7 +27,7 @@ module ActiveAdmin
|
|
27
27
|
# Add a new dashboard section to a namespace. If no namespace is given
|
28
28
|
# it will be added to the default namespace.
|
29
29
|
def add_section(name, options = {}, &block)
|
30
|
-
namespace = options.delete(:namespace) || ActiveAdmin.default_namespace
|
30
|
+
namespace = options.delete(:namespace) || ActiveAdmin.application.default_namespace || :root
|
31
31
|
self.sections[namespace] ||= []
|
32
32
|
self.sections[namespace] << Section.new(namespace, name, options, &block)
|
33
33
|
self.sections[namespace].sort!
|
@@ -2,24 +2,17 @@ module ActiveAdmin
|
|
2
2
|
module Dashboards
|
3
3
|
class DashboardController < ResourceController
|
4
4
|
|
5
|
-
before_filter :skip_sidebar!
|
6
|
-
|
7
5
|
actions :index
|
8
6
|
|
9
|
-
# Render from here if not overriden
|
10
|
-
self.default_views = 'active_admin_dashboard'
|
11
|
-
|
12
|
-
clear_action_items!
|
13
|
-
|
14
7
|
def index
|
15
8
|
@dashboard_sections = find_sections
|
16
|
-
|
9
|
+
render 'active_admin/dashboard/index.html.arb'
|
17
10
|
end
|
18
11
|
|
19
12
|
protected
|
20
13
|
|
21
14
|
def set_current_tab
|
22
|
-
@current_tab = "
|
15
|
+
@current_tab = I18n.t("active_admin.dashboard")
|
23
16
|
end
|
24
17
|
|
25
18
|
def find_sections
|
@@ -37,7 +30,7 @@ module ActiveAdmin
|
|
37
30
|
|
38
31
|
# Return the current menu for the view. This is a helper method
|
39
32
|
def current_menu
|
40
|
-
ActiveAdmin.namespaces[namespace].menu
|
33
|
+
ActiveAdmin.application.namespaces[namespace].menu
|
41
34
|
end
|
42
35
|
|
43
36
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'rails/version'
|
2
|
+
|
3
|
+
module ActiveAdmin
|
4
|
+
module DependencyChecker
|
5
|
+
class << self
|
6
|
+
def check!
|
7
|
+
if rails_3_1?
|
8
|
+
unless meta_search_1_1? && sass_rails_3_1?
|
9
|
+
warn "ActiveAdmin requires meta_search >= 1.1.0.pre and sass-rails ~> 3.1.0.rc to work with rails >= 3.1.0"
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def rails_3_1?
|
15
|
+
Rails::VERSION::MAJOR == 3 && Rails::VERSION::MINOR >= 1
|
16
|
+
end
|
17
|
+
|
18
|
+
def meta_search_1_1?
|
19
|
+
Gem.loaded_specs['meta_search'].version.to_s >= "1.1"
|
20
|
+
end
|
21
|
+
|
22
|
+
def sass_rails_3_1?
|
23
|
+
require 'sass/rails/version'
|
24
|
+
Sass::Rails::VERSION >= "3.1"
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module Deprecation
|
3
|
+
extend self
|
4
|
+
|
5
|
+
def warn(message, callstack = caller)
|
6
|
+
ActiveSupport::Deprecation.warn "Active Admin: #{message}", callstack
|
7
|
+
end
|
8
|
+
|
9
|
+
# Deprecate a method.
|
10
|
+
#
|
11
|
+
# @param [Module] klass the Class or Module to deprecate the method on
|
12
|
+
# @param [Symbol] method the method to deprecate
|
13
|
+
# @param [String] message the message to display to the end user
|
14
|
+
#
|
15
|
+
# Example:
|
16
|
+
#
|
17
|
+
# class MyClass
|
18
|
+
# def my_method
|
19
|
+
# # ...
|
20
|
+
# end
|
21
|
+
# ActiveAdmin::Deprecation.deprecate self, :my_method,
|
22
|
+
# "MyClass#my_method is being removed in the next release"
|
23
|
+
# end
|
24
|
+
#
|
25
|
+
def deprecate(klass, method, message)
|
26
|
+
klass.class_eval <<-EOC, __FILE__, __LINE__
|
27
|
+
alias_method :"deprecated_#{method}", :#{method}
|
28
|
+
def #{method}(*args)
|
29
|
+
ActiveAdmin::Deprecation.warn('#{message}', caller)
|
30
|
+
send(:deprecated_#{method}, *args)
|
31
|
+
end
|
32
|
+
EOC
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
data/lib/active_admin/devise.rb
CHANGED
@@ -4,11 +4,18 @@ module ActiveAdmin
|
|
4
4
|
module Devise
|
5
5
|
|
6
6
|
def self.config
|
7
|
-
{
|
8
|
-
:path => ActiveAdmin.default_namespace,
|
7
|
+
config = {
|
8
|
+
:path => ActiveAdmin.application.default_namespace,
|
9
9
|
:controllers => ActiveAdmin::Devise.controllers,
|
10
10
|
:path_names => { :sign_in => 'login', :sign_out => "logout" }
|
11
11
|
}
|
12
|
+
|
13
|
+
if ::Devise.respond_to?(:sign_out_via)
|
14
|
+
logout_methods = [::Devise.sign_out_via, ActiveAdmin.application.logout_link_method].flatten.uniq
|
15
|
+
config.merge!( :sign_out_via => logout_methods)
|
16
|
+
end
|
17
|
+
|
18
|
+
config
|
12
19
|
end
|
13
20
|
|
14
21
|
def self.controllers
|
@@ -27,7 +34,11 @@ module ActiveAdmin
|
|
27
34
|
|
28
35
|
# Redirect to the default namespace on logout
|
29
36
|
def root_path
|
30
|
-
|
37
|
+
if ActiveAdmin.application.default_namespace
|
38
|
+
"/#{ActiveAdmin.application.default_namespace}"
|
39
|
+
else
|
40
|
+
"/"
|
41
|
+
end
|
31
42
|
end
|
32
43
|
end
|
33
44
|
|
data/lib/active_admin/dsl.rb
CHANGED
@@ -94,8 +94,15 @@ module ActiveAdmin
|
|
94
94
|
config.scope(*args, &block)
|
95
95
|
end
|
96
96
|
|
97
|
+
# Add a new action item to the resource
|
98
|
+
#
|
99
|
+
# @param [Hash] options valid keys include:
|
100
|
+
# :only: A single or array of controller actions to display
|
101
|
+
# this action item on.
|
102
|
+
# :except: A single or array of controller actions not to
|
103
|
+
# display this action item on.
|
97
104
|
def action_item(options = {}, &block)
|
98
|
-
|
105
|
+
config.add_action_item(options, &block)
|
99
106
|
end
|
100
107
|
|
101
108
|
# Configure the index page for the resource
|
@@ -115,6 +122,23 @@ module ActiveAdmin
|
|
115
122
|
controller.form_config = options
|
116
123
|
end
|
117
124
|
|
125
|
+
def sidebar(name, options = {}, &block)
|
126
|
+
config.sidebar_sections << ActiveAdmin::SidebarSection.new(name, options, &block)
|
127
|
+
end
|
128
|
+
|
129
|
+
# Configure the CSV format
|
130
|
+
#
|
131
|
+
# For example:
|
132
|
+
#
|
133
|
+
# csv do
|
134
|
+
# column :name
|
135
|
+
# column("Author") { |post| post.author.full_name }
|
136
|
+
# end
|
137
|
+
#
|
138
|
+
def csv(&block)
|
139
|
+
config.csv_builder = CSVBuilder.new(&block)
|
140
|
+
end
|
141
|
+
|
118
142
|
# Member Actions give you the functionality of defining both the
|
119
143
|
# action and the route directly from your ActiveAdmin registration
|
120
144
|
# block.
|
@@ -181,11 +205,9 @@ module ActiveAdmin
|
|
181
205
|
# Filters
|
182
206
|
delegate :filter, :to => :controller
|
183
207
|
|
184
|
-
# Sidebar
|
185
|
-
delegate :sidebar, :to => :controller
|
186
208
|
|
187
209
|
# Standard rails filters
|
188
|
-
delegate :before_filter, :after_filter, :around_filter, :to => :controller
|
210
|
+
delegate :before_filter, :skip_before_filter, :after_filter, :around_filter, :to => :controller
|
189
211
|
|
190
212
|
# Specify which actions to create in the controller
|
191
213
|
#
|
@@ -4,7 +4,7 @@ module ActiveAdmin
|
|
4
4
|
class FormBuilder < ::Formtastic::SemanticFormBuilder
|
5
5
|
|
6
6
|
attr_reader :form_buffers
|
7
|
-
|
7
|
+
|
8
8
|
def initialize(*args)
|
9
9
|
@form_buffers = ["".html_safe]
|
10
10
|
super
|
@@ -20,7 +20,9 @@ module ActiveAdmin
|
|
20
20
|
# The input method returns a properly formatted string for
|
21
21
|
# its contents, so we want to skip the internal buffering
|
22
22
|
# while building up its contents
|
23
|
-
def input(*args)
|
23
|
+
def input(method, *args)
|
24
|
+
return if polymorphic_belongs_to_association?(method)
|
25
|
+
|
24
26
|
content = with_new_form_buffer { super }
|
25
27
|
return content.html_safe unless @inputs_with_block
|
26
28
|
form_buffers.last << content.html_safe
|
@@ -38,18 +40,18 @@ module ActiveAdmin
|
|
38
40
|
content = with_new_form_buffer{ super }
|
39
41
|
form_buffers.last << content.html_safe
|
40
42
|
end
|
41
|
-
|
43
|
+
|
42
44
|
def cancel_link(url = nil, html_options = {}, li_attributes = {})
|
43
45
|
li_attributes[:class] ||= "cancel"
|
44
46
|
url ||= {:action => "index"}
|
45
|
-
template.content_tag(:li, (template.link_to
|
47
|
+
template.content_tag(:li, (template.link_to I18n.t('active_admin.cancel'), url, html_options), li_attributes)
|
46
48
|
end
|
47
|
-
|
49
|
+
|
48
50
|
def commit_button_with_cancel_link
|
49
51
|
content = commit_button
|
50
52
|
content << cancel_link
|
51
53
|
end
|
52
|
-
|
54
|
+
|
53
55
|
def datepicker_input(method, options)
|
54
56
|
options = options.dup
|
55
57
|
options[:input_html] ||= {}
|
@@ -67,7 +69,7 @@ module ActiveAdmin
|
|
67
69
|
form_block = proc do |has_many_form|
|
68
70
|
block.call(has_many_form) + if has_many_form.object.new_record?
|
69
71
|
template.content_tag :li do
|
70
|
-
template.link_to
|
72
|
+
template.link_to I18n.t('active_admin.has_many_delete'), "#", :onclick => "$(this).closest('.has_many_fields').remove(); return false;", :class => "button"
|
71
73
|
end
|
72
74
|
else
|
73
75
|
end
|
@@ -88,7 +90,7 @@ module ActiveAdmin
|
|
88
90
|
end
|
89
91
|
|
90
92
|
js = template.escape_javascript(js)
|
91
|
-
js = template.link_to
|
93
|
+
js = template.link_to I18n.t('active_admin.has_many_new', :model => association.to_s.singularize.titlecase), "#", :onclick => "$(this).before('#{js}'.replace(/NEW_RECORD/g, new Date().getTime())); return false;", :class => "button"
|
92
94
|
|
93
95
|
form_buffers.last << js.html_safe
|
94
96
|
end
|
@@ -98,12 +100,19 @@ module ActiveAdmin
|
|
98
100
|
|
99
101
|
private
|
100
102
|
|
103
|
+
# Pass in a method to check if it's a polymorphic association
|
104
|
+
def polymorphic_belongs_to_association?(method)
|
105
|
+
reflection = reflection_for(method)
|
106
|
+
|
107
|
+
reflection && reflection.macro == :belongs_to && reflection.options[:polymorphic]
|
108
|
+
end
|
109
|
+
|
101
110
|
def with_new_form_buffer
|
102
111
|
form_buffers << "".html_safe
|
103
112
|
return_value = yield
|
104
113
|
form_buffers.pop
|
105
114
|
return_value
|
106
115
|
end
|
107
|
-
|
116
|
+
|
108
117
|
end
|
109
118
|
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module ScopeChain
|
3
|
+
# Scope an ActiveRecord::Relation chain
|
4
|
+
#
|
5
|
+
# Example:
|
6
|
+
# scope_chain(Scope.new(:published), Article)
|
7
|
+
# # => Article.published
|
8
|
+
#
|
9
|
+
# @param scope The <ActiveAdmin::Scope> we want to scope on
|
10
|
+
# @param chain The ActiveRecord::Relation chain or ActiveRecord::Base class to scope
|
11
|
+
# @return <ActiveRecord::Relation or ActiveRecord::Base> The scoped relation chain
|
12
|
+
#
|
13
|
+
def scope_chain(scope, chain)
|
14
|
+
if scope.scope_method
|
15
|
+
chain.send(scope.scope_method)
|
16
|
+
elsif scope.scope_block
|
17
|
+
instance_exec chain, &scope.scope_block
|
18
|
+
else
|
19
|
+
chain
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
require 'active_support/concern'
|
2
|
+
|
3
|
+
module ActiveAdmin
|
4
|
+
|
5
|
+
# Adds a class method to a class to create settings with default values.
|
6
|
+
#
|
7
|
+
# Example:
|
8
|
+
#
|
9
|
+
# class Configuration
|
10
|
+
# include ActiveAdmin::Settings
|
11
|
+
#
|
12
|
+
# setting :site_title, "Default Site Title"
|
13
|
+
# end
|
14
|
+
#
|
15
|
+
# conf = Configuration.new
|
16
|
+
# conf.site_title #=> "Default Site Title"
|
17
|
+
# conf.site_title = "Override Default"
|
18
|
+
# conf.site_title #=> "Override Default"
|
19
|
+
#
|
20
|
+
module Settings
|
21
|
+
extend ActiveSupport::Concern
|
22
|
+
|
23
|
+
module InstanceMethods
|
24
|
+
|
25
|
+
def read_default_setting(name)
|
26
|
+
default_settings[name]
|
27
|
+
end
|
28
|
+
|
29
|
+
private
|
30
|
+
|
31
|
+
def default_settings
|
32
|
+
self.class.default_settings
|
33
|
+
end
|
34
|
+
|
35
|
+
end
|
36
|
+
|
37
|
+
module ClassMethods
|
38
|
+
|
39
|
+
def setting(name, default)
|
40
|
+
default_settings[name] = default
|
41
|
+
attr_accessor(name)
|
42
|
+
|
43
|
+
# Create an accessor that grabs from the defaults
|
44
|
+
# if @name has not been set yet
|
45
|
+
class_eval <<-EOC, __FILE__, __LINE__ + 1
|
46
|
+
def #{name}
|
47
|
+
if instance_variable_defined? :@#{name}
|
48
|
+
@#{name}
|
49
|
+
else
|
50
|
+
read_default_setting(:#{name})
|
51
|
+
end
|
52
|
+
end
|
53
|
+
EOC
|
54
|
+
end
|
55
|
+
|
56
|
+
def deprecated_setting(name, default, message = nil)
|
57
|
+
message = message || "The #{name} setting is deprecated and will be removed."
|
58
|
+
setting(name, default)
|
59
|
+
|
60
|
+
ActiveAdmin::Deprecation.deprecate self, name, message
|
61
|
+
ActiveAdmin::Deprecation.deprecate self, :"#{name}=", message
|
62
|
+
end
|
63
|
+
|
64
|
+
def default_settings
|
65
|
+
@default_settings ||= {}
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|