activeadmin 0.4.4 → 0.5.0.pre
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 +3 -0
- data/.travis.yml +5 -0
- data/CHANGELOG.md +50 -0
- data/CONTRIBUTING.md +2 -4
- data/Gemfile +10 -4
- data/Guardfile +0 -1
- data/LICENSE +1 -1
- data/README.rdoc +19 -8
- data/Rakefile +10 -1
- data/activeadmin.gemspec +2 -1
- data/app/assets/javascripts/active_admin/application.js +3 -9
- data/app/assets/javascripts/active_admin/base.js +1 -0
- data/app/assets/javascripts/active_admin/components/jquery.aa.checkbox-toggler.js.coffee +64 -0
- data/app/assets/javascripts/active_admin/components/jquery.aa.dropdown-menu.js.coffee +107 -0
- data/app/assets/javascripts/active_admin/components/jquery.aa.popover.js.coffee +100 -0
- data/app/assets/javascripts/active_admin/components/jquery.aa.table-checkbox-toggler.js.coffee +27 -0
- data/app/assets/javascripts/active_admin/lib/namespace.js.coffee +3 -0
- data/app/assets/javascripts/active_admin/pages/application.js.coffee +13 -0
- data/app/assets/javascripts/active_admin/pages/batch_actions.js.coffee +26 -0
- data/app/assets/stylesheets/active_admin/_base.css.scss +32 -26
- data/app/assets/stylesheets/active_admin/_forms.css.scss +12 -5
- data/app/assets/stylesheets/active_admin/_header.css.scss +1 -2
- data/app/assets/stylesheets/active_admin/_typography.css.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/_batch_actions.css.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_buttons.scss +1 -2
- data/app/assets/stylesheets/active_admin/components/_dropdown_menu.scss +151 -0
- data/app/assets/stylesheets/active_admin/components/_flash_messages.css.scss +3 -3
- data/app/assets/stylesheets/active_admin/components/_popovers.css.scss +123 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +1 -1
- data/app/assets/stylesheets/active_admin/components/_table_tools.css.scss +20 -27
- data/app/assets/stylesheets/active_admin/components/_tables.css.scss +1 -0
- data/app/assets/stylesheets/active_admin/mixins/_buttons.css.scss +38 -36
- data/app/assets/stylesheets/active_admin/mixins/_gradients.css.scss +5 -5
- data/app/assets/stylesheets/active_admin/mixins/_icons.css.scss +7 -3
- data/app/assets/stylesheets/active_admin/mixins/_variables.css.scss +19 -17
- data/app/assets/stylesheets/active_admin/pages/_logged_out.scss +2 -2
- data/app/assets/stylesheets/active_admin/print.css.scss +290 -0
- data/app/views/active_admin/dashboard/index.html.arb +1 -1
- data/app/views/active_admin/devise/passwords/edit.html.erb +17 -14
- data/app/views/active_admin/devise/passwords/new.html.erb +4 -4
- data/app/views/active_admin/devise/sessions/new.html.erb +6 -6
- data/app/views/active_admin/devise/shared/_links.erb +6 -6
- data/app/views/active_admin/page/index.html.arb +1 -1
- data/app/views/active_admin/resource/edit.html.arb +1 -1
- data/app/views/active_admin/resource/index.csv.erb +1 -1
- data/app/views/active_admin/resource/index.html.arb +1 -1
- data/app/views/active_admin/resource/new.html.arb +1 -1
- data/app/views/active_admin/resource/show.html.arb +1 -1
- data/app/views/layouts/active_admin.html.arb +1 -1
- data/app/views/layouts/active_admin_logged_out.html.erb +2 -2
- data/cucumber.yml +1 -1
- data/docs/0-installation.md +10 -1
- data/docs/{9-custom-pages.md → 10-custom-pages.md} +0 -0
- data/docs/2-resource-customization.md +19 -1
- data/docs/3-index-pages.md +31 -0
- data/docs/4-csv-format.md +9 -0
- data/docs/6-show-screens.md +1 -1
- data/docs/9-batch-actions.md +161 -0
- data/features/dashboard.feature +31 -8
- data/features/development_reloading.feature +1 -1
- data/features/edit_page.feature +3 -3
- data/features/i18n.feature +35 -0
- data/features/index/batch_actions.feature +98 -0
- data/features/index/filters.feature +26 -0
- data/features/index/format_as_csv.feature +35 -0
- data/features/index/index_as_table.feature +30 -2
- data/features/index/index_blank_slate.feature +8 -3
- data/features/index/index_scopes.feature +130 -24
- data/features/index/page_title.feature +12 -0
- data/features/new_page.feature +3 -3
- data/features/registering_pages.feature +61 -0
- data/features/root_to.feature +17 -0
- data/features/show/default_content.feature +1 -1
- data/features/show/page_title.feature +14 -0
- data/features/sidebar_sections.feature +26 -0
- data/features/site_title.feature +1 -1
- data/features/specifying_actions.feature +7 -6
- data/features/step_definitions/action_link_steps.rb +1 -1
- data/features/step_definitions/additional_web_steps.rb +7 -1
- data/features/step_definitions/batch_action_steps.rb +94 -0
- data/features/step_definitions/configuration_steps.rb +30 -8
- data/features/step_definitions/factory_steps.rb +12 -0
- data/features/step_definitions/format_steps.rb +6 -2
- data/features/step_definitions/i18n_steps.rb +3 -0
- data/features/step_definitions/table_steps.rb +114 -0
- data/features/step_definitions/user_steps.rb +30 -4
- data/features/support/env.rb +54 -15
- data/features/support/paths.rb +2 -0
- data/features/users/logging_in.feature +1 -1
- data/features/users/logging_out.feature +2 -1
- data/features/users/resetting_password.feature +34 -0
- data/lib/active_admin.rb +46 -7
- data/lib/active_admin/application.rb +30 -15
- data/lib/active_admin/base_controller/menu.rb +3 -3
- data/lib/active_admin/batch_actions.rb +17 -0
- data/lib/active_admin/batch_actions/controller.rb +25 -0
- data/lib/active_admin/batch_actions/resource_extension.rb +126 -0
- data/lib/active_admin/batch_actions/views/batch_action_form.rb +35 -0
- data/lib/active_admin/batch_actions/views/batch_action_popover.rb +28 -0
- data/lib/active_admin/batch_actions/views/batch_action_selector.rb +63 -0
- data/lib/active_admin/batch_actions/views/selection_cells.rb +37 -0
- data/lib/active_admin/comments.rb +5 -2
- data/lib/active_admin/comments/comment.rb +4 -3
- data/lib/active_admin/comments/views/active_admin_comments.rb +5 -5
- data/lib/active_admin/component.rb +1 -18
- data/lib/active_admin/csv_builder.rb +8 -3
- data/lib/active_admin/dashboards.rb +21 -4
- data/lib/active_admin/dashboards/dashboard_controller.rb +1 -5
- data/lib/active_admin/dependency_checker.rb +1 -1
- data/lib/active_admin/dsl.rb +61 -4
- data/lib/active_admin/engine.rb +1 -1
- data/lib/active_admin/filters.rb +8 -0
- data/lib/active_admin/filters/dsl.rb +12 -0
- data/lib/active_admin/filters/forms.rb +93 -0
- data/lib/active_admin/filters/resource_extension.rb +92 -0
- data/lib/active_admin/form_builder.rb +88 -33
- data/lib/active_admin/helpers/collection.rb +23 -0
- data/lib/active_admin/helpers/optional_display.rb +1 -1
- data/lib/active_admin/inputs/filter_select_input.rb +1 -1
- data/lib/active_admin/locales/bg.yml +37 -1
- data/lib/active_admin/locales/ca.yml +36 -0
- data/lib/active_admin/locales/cs.yml +36 -0
- data/lib/active_admin/locales/da.yml +36 -0
- data/lib/active_admin/locales/de.yml +42 -0
- data/lib/active_admin/locales/en.yml +27 -2
- data/lib/active_admin/locales/es.yml +45 -4
- data/lib/active_admin/locales/fr.yml +22 -0
- data/lib/active_admin/locales/{he_il.yml → he.yml} +37 -2
- data/lib/active_admin/locales/hr.yml +49 -5
- data/lib/active_admin/locales/hu.yml +21 -0
- data/lib/active_admin/locales/it.yml +36 -1
- data/lib/active_admin/locales/ja.yml +36 -0
- data/lib/active_admin/locales/ko.yml +36 -1
- data/lib/active_admin/locales/lv.yml +28 -2
- data/lib/active_admin/locales/nl.yml +42 -1
- data/lib/active_admin/locales/no-NB.yml +15 -0
- data/lib/active_admin/locales/pl.yml +45 -1
- data/lib/active_admin/locales/pt-BR.yml +36 -1
- data/lib/active_admin/locales/ro.yml +67 -0
- data/lib/active_admin/locales/ru.yml +43 -3
- data/lib/active_admin/locales/sv-SE.yml +41 -1
- data/lib/active_admin/locales/tr.yml +80 -0
- data/lib/active_admin/locales/vi.yml +80 -0
- data/lib/active_admin/locales/{zh_cn.yml → zh-CN.yml} +42 -2
- data/lib/active_admin/locales/zh-TW.yml +36 -1
- data/lib/active_admin/menu.rb +55 -30
- data/lib/active_admin/menu_builder.rb +65 -0
- data/lib/active_admin/menu_item.rb +55 -14
- data/lib/active_admin/namespace.rb +25 -55
- data/lib/active_admin/page.rb +15 -10
- data/lib/active_admin/resource.rb +9 -0
- data/lib/active_admin/resource/action_items.rb +4 -4
- data/lib/active_admin/resource/controllers.rb +1 -1
- data/lib/active_admin/resource/menu.rb +19 -21
- data/lib/active_admin/resource/naming.rb +55 -45
- data/lib/active_admin/resource/sidebars.rb +0 -13
- data/lib/active_admin/resource_collection.rb +10 -10
- data/lib/active_admin/resource_controller.rb +5 -5
- data/lib/active_admin/resource_controller/actions.rb +2 -0
- data/lib/active_admin/resource_controller/collection.rb +13 -4
- data/lib/active_admin/resource_dsl.rb +12 -6
- data/lib/active_admin/router.rb +27 -8
- data/lib/active_admin/scope.rb +1 -0
- data/lib/active_admin/sidebar_section.rb +2 -6
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_factory.rb +18 -13
- data/lib/active_admin/view_helpers.rb +0 -2
- data/lib/active_admin/view_helpers/auto_link_helper.rb +2 -1
- data/lib/active_admin/view_helpers/breadcrumb_helper.rb +24 -25
- data/lib/active_admin/view_helpers/display_helper.rb +1 -1
- data/lib/active_admin/view_helpers/fields_for.rb +44 -0
- data/lib/active_admin/view_helpers/form_helper.rb +6 -0
- data/lib/active_admin/view_helpers/view_factory_helper.rb +1 -1
- data/lib/active_admin/views/components/action_list_popover.rb +29 -0
- data/lib/active_admin/views/components/attributes_table.rb +6 -2
- data/lib/active_admin/views/components/dropdown_menu.rb +73 -0
- data/lib/active_admin/views/components/paginated_collection.rb +13 -14
- data/lib/active_admin/views/components/popover.rb +27 -0
- data/lib/active_admin/views/components/scopes.rb +8 -13
- data/lib/active_admin/views/components/sidebar_section.rb +1 -1
- data/lib/active_admin/views/components/site_title.rb +55 -0
- data/lib/active_admin/views/components/status_tag.rb +4 -4
- data/lib/active_admin/views/components/table_for.rb +18 -18
- data/lib/active_admin/views/dashboard_section_renderer.rb +1 -1
- data/lib/active_admin/views/footer.rb +18 -0
- data/lib/active_admin/views/header.rb +31 -0
- data/lib/active_admin/views/index_as_block.rb +3 -0
- data/lib/active_admin/views/index_as_blog.rb +4 -0
- data/lib/active_admin/views/index_as_grid.rb +2 -0
- data/lib/active_admin/views/index_as_table.rb +19 -6
- data/lib/active_admin/views/pages/base.rb +14 -48
- data/lib/active_admin/views/pages/form.rb +3 -3
- data/lib/active_admin/views/pages/index.rb +56 -24
- data/lib/active_admin/views/pages/layout.rb +2 -2
- data/lib/active_admin/views/pages/page.rb +10 -4
- data/lib/active_admin/views/pages/show.rb +11 -8
- data/lib/active_admin/views/tabbed_navigation.rb +3 -3
- data/lib/active_admin/views/title_bar.rb +50 -0
- data/lib/active_admin/views/utility_nav.rb +41 -0
- data/lib/generators/active_admin/assets/assets_generator.rb +1 -1
- data/lib/generators/active_admin/assets/templates/3.0/active_admin.js +1 -0
- data/lib/generators/active_admin/assets/templates/3.1/active_admin.css.scss +26 -3
- data/lib/generators/active_admin/devise/devise_generator.rb +2 -2
- data/lib/generators/active_admin/install/install_generator.rb +10 -10
- data/lib/generators/active_admin/install/templates/active_admin.rb.erb +21 -1
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +20 -0
- data/lib/generators/active_admin/install/templates/dashboard.rb +33 -0
- data/lib/generators/active_admin/resource/templates/admin.rb +1 -1
- data/spec/integration/memory_spec.rb +1 -11
- data/spec/javascripts/coffeescripts/jquery.aa.checkbox-toggler-spec.js.coffee +50 -0
- data/spec/javascripts/coffeescripts/jquery.aa.popover-spec.js.coffee +82 -0
- data/spec/javascripts/coffeescripts/jquery.aa.table-checkbox-toggler-spec.js.coffee +34 -0
- data/spec/javascripts/compiled/jquery.aa.checkbox-toggler-spec.js +60 -0
- data/spec/javascripts/compiled/jquery.aa.popover-spec.js +106 -0
- data/spec/javascripts/compiled/jquery.aa.table-checkbox-toggler-spec.js +37 -0
- data/spec/javascripts/fixtures/checkboxes.html +9 -0
- data/spec/javascripts/fixtures/table_checkboxes.html +17 -0
- data/spec/javascripts/helpers/SpecHelper.js +3 -0
- data/spec/javascripts/helpers/vendor/jasmine-fixture-0.0.5.js +108 -0
- data/spec/javascripts/helpers/vendor/jasmine-jquery.js +288 -0
- data/spec/javascripts/helpers/vendor/sinon-1.2.0.js +2915 -0
- data/spec/javascripts/support/jasmine.yml +74 -0
- data/spec/javascripts/support/jasmine_config.rb +23 -0
- data/spec/javascripts/support/jasmine_runner.rb +32 -0
- data/spec/javascripts/support/jquery-ui-1.8.16.custom.min.js +34 -0
- data/spec/javascripts/support/jquery.min.js +4 -0
- data/spec/spec_helper.rb +13 -13
- data/spec/spec_helper_without_rails.rb +2 -3
- data/spec/support/detect_rails_version.rb +16 -10
- data/spec/support/rails_template.rb +13 -1
- data/spec/support/templates/admin/stores.rb +1 -0
- data/spec/support/templates/en.yml +6 -0
- data/spec/unit/action_builder_spec.rb +38 -0
- data/spec/unit/application_spec.rb +12 -16
- data/spec/unit/base_controller_shared_examples.rb +3 -6
- data/spec/unit/batch_actions/resource_spec.rb +91 -0
- data/spec/unit/batch_actions/settings_spec.rb +61 -0
- data/spec/unit/breadcrumbs_spec.rb +33 -0
- data/spec/unit/comments_spec.rb +6 -0
- data/spec/unit/config_shared_examples.rb +17 -64
- data/spec/unit/csv_builder_spec.rb +12 -2
- data/spec/unit/dashboard_controller_spec.rb +11 -5
- data/spec/unit/dsl_include_spec.rb +20 -0
- data/spec/unit/{filter_form_builder_spec.rb → filters/filter_form_builder_spec.rb} +10 -7
- data/spec/unit/filters/resource_spec.rb +60 -0
- data/spec/unit/form_builder_spec.rb +180 -28
- data/spec/unit/helpers/collection_spec.rb +65 -0
- data/spec/unit/menu_item_spec.rb +48 -53
- data/spec/unit/menu_spec.rb +46 -32
- data/spec/unit/namespace/register_page_spec.rb +0 -6
- data/spec/unit/namespace/register_resource_spec.rb +1 -8
- data/spec/unit/namespace_spec.rb +8 -2
- data/spec/unit/page_spec.rb +20 -8
- data/spec/unit/resource/naming_spec.rb +27 -26
- data/spec/unit/resource/sidebars_spec.rb +0 -7
- data/spec/unit/resource_collection_spec.rb +11 -11
- data/spec/unit/resource_controller/collection_spec.rb +23 -1
- data/spec/unit/resource_controller/sidebars_spec.rb +46 -0
- data/spec/unit/resource_controller_spec.rb +43 -0
- data/spec/unit/resource_registration_spec.rb +2 -13
- data/spec/unit/resource_spec.rb +0 -42
- data/spec/unit/routing_spec.rb +60 -14
- data/spec/unit/scope_spec.rb +7 -0
- data/spec/unit/view_factory_spec.rb +9 -6
- data/spec/unit/view_helpers/fields_for_spec.rb +41 -0
- data/spec/unit/view_helpers/form_helper_spec.rb +18 -0
- data/spec/unit/views/components/action_list_popover_spec.rb +30 -0
- data/spec/unit/views/components/attributes_table_spec.rb +32 -20
- data/spec/unit/views/components/batch_action_popover_spec.rb +33 -0
- data/spec/unit/views/components/blank_slate_spec.rb +5 -3
- data/spec/unit/views/components/columns_spec.rb +32 -22
- data/spec/unit/views/components/paginated_collection_spec.rb +54 -12
- data/spec/unit/views/components/panel_spec.rb +11 -6
- data/spec/unit/views/components/popover_spec.rb +33 -0
- data/spec/unit/views/components/sidebar_section_spec.rb +6 -6
- data/spec/unit/views/components/site_title_spec.rb +78 -0
- data/spec/unit/views/components/status_tag_spec.rb +17 -10
- data/spec/unit/views/components/table_for_spec.rb +37 -17
- data/spec/unit/views/pages/layout_spec.rb +51 -10
- data/spec/unit/views/tabbed_navigation_spec.rb +44 -23
- data/tasks/js.rake +32 -0
- data/tasks/test.rake +1 -1
- metadata +233 -200
- data/lib/active_admin/arbre.rb +0 -22
- data/lib/active_admin/arbre/builder.rb +0 -125
- data/lib/active_admin/arbre/context.rb +0 -45
- data/lib/active_admin/arbre/html/attributes.rb +0 -20
- data/lib/active_admin/arbre/html/class_list.rb +0 -24
- data/lib/active_admin/arbre/html/collection.rb +0 -27
- data/lib/active_admin/arbre/html/document.rb +0 -42
- data/lib/active_admin/arbre/html/element.rb +0 -161
- data/lib/active_admin/arbre/html/html5_elements.rb +0 -47
- data/lib/active_admin/arbre/html/tag.rb +0 -145
- data/lib/active_admin/arbre/html/text_node.rb +0 -35
- data/lib/active_admin/filter_form_builder.rb +0 -53
- data/lib/active_admin/renderer.rb +0 -87
- data/lib/active_admin/resource_controller/filters.rb +0 -58
- data/lib/active_admin/stylesheets/active_admin/mixins/_utilities.scss +0 -0
- data/lib/active_admin/view_helpers/filter_form_helper.rb +0 -36
- data/lib/active_admin/view_helpers/renderer_helper.rb +0 -29
- data/lib/active_admin/views/header_renderer.rb +0 -82
- data/lib/generators/active_admin/assets/templates/dashboards.rb +0 -36
- data/lib/generators/active_admin/install/templates/dashboards.rb +0 -44
- data/spec/unit/arbre/context_spec.rb +0 -35
- data/spec/unit/arbre/html/element_finder_methods_spec.rb +0 -110
- data/spec/unit/arbre/html/element_spec.rb +0 -236
- data/spec/unit/arbre/html/tag_attributes_spec.rb +0 -61
- data/spec/unit/arbre/html/tag_spec.rb +0 -63
- data/spec/unit/arbre/html_spec.rb +0 -228
- data/spec/unit/renderer_spec.rb +0 -126
@@ -12,21 +12,21 @@ module ActiveAdmin
|
|
12
12
|
|
13
13
|
private
|
14
14
|
|
15
|
-
|
16
15
|
def add_classes_to_body
|
17
16
|
@body.add_class(params[:action])
|
18
17
|
@body.add_class(params[:controller].gsub('/', '_'))
|
18
|
+
@body.add_class("active_admin")
|
19
19
|
@body.add_class("logged_in")
|
20
20
|
@body.add_class(active_admin_namespace.name.to_s + "_namespace")
|
21
21
|
end
|
22
22
|
|
23
23
|
def build_active_admin_head
|
24
24
|
within @head do
|
25
|
-
|
26
|
-
insert_tag Arbre::HTML::Title, [title, active_admin_application.site_title].join(" | ")
|
25
|
+
insert_tag Arbre::HTML::Title, [title, render_or_call_method_or_proc_on(self, active_admin_application.site_title)].join(" | ")
|
27
26
|
active_admin_application.stylesheets.each do |style|
|
28
27
|
text_node(stylesheet_link_tag(style.path, style.options).html_safe)
|
29
28
|
end
|
29
|
+
|
30
30
|
active_admin_application.javascripts.each do |path|
|
31
31
|
script :src => javascript_path(path), :type => "text/javascript"
|
32
32
|
end
|
@@ -46,52 +46,13 @@ module ActiveAdmin
|
|
46
46
|
end
|
47
47
|
|
48
48
|
def build_header
|
49
|
-
|
50
|
-
render view_factory.header
|
51
|
-
end
|
49
|
+
insert_tag view_factory.header, active_admin_namespace, current_menu
|
52
50
|
end
|
53
51
|
|
54
52
|
def build_title_bar
|
55
|
-
|
56
|
-
build_titlebar_left
|
57
|
-
build_titlebar_right
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def build_titlebar_left
|
62
|
-
div :id => "titlebar_left" do
|
63
|
-
build_breadcrumb
|
64
|
-
build_title_tag
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
def build_titlebar_right
|
69
|
-
div :id => "titlebar_right" do
|
70
|
-
build_action_items
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
def build_breadcrumb(separator = "/")
|
75
|
-
links = breadcrumb_links
|
76
|
-
return if links.empty?
|
77
|
-
span :class => "breadcrumb" do
|
78
|
-
links.each do |link|
|
79
|
-
text_node link
|
80
|
-
span(separator, :class => "breadcrumb_sep")
|
81
|
-
end
|
82
|
-
end
|
53
|
+
insert_tag view_factory.title_bar, title, action_items_for_action
|
83
54
|
end
|
84
55
|
|
85
|
-
def build_title_tag
|
86
|
-
h2(title, :id => 'page_title')
|
87
|
-
end
|
88
|
-
|
89
|
-
def build_action_items
|
90
|
-
if active_admin_config && active_admin_config.action_items?
|
91
|
-
items = active_admin_config.action_items_for(params[:action], self)
|
92
|
-
insert_tag view_factory.action_items, items
|
93
|
-
end
|
94
|
-
end
|
95
56
|
|
96
57
|
def build_page_content
|
97
58
|
build_flash_messages
|
@@ -132,7 +93,6 @@ module ActiveAdmin
|
|
132
93
|
set_ivar_on_view "@page_title", title
|
133
94
|
end
|
134
95
|
|
135
|
-
|
136
96
|
# Returns the sidebar sections to render for the current action
|
137
97
|
def sidebar_sections_for_action
|
138
98
|
if active_admin_config && active_admin_config.sidebar_sections?
|
@@ -142,6 +102,14 @@ module ActiveAdmin
|
|
142
102
|
end
|
143
103
|
end
|
144
104
|
|
105
|
+
def action_items_for_action
|
106
|
+
if active_admin_config && active_admin_config.action_items?
|
107
|
+
active_admin_config.action_items_for(params[:action], self)
|
108
|
+
else
|
109
|
+
[]
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
145
113
|
# Renders the sidebar
|
146
114
|
def build_sidebar
|
147
115
|
div :id => "sidebar" do
|
@@ -157,9 +125,7 @@ module ActiveAdmin
|
|
157
125
|
|
158
126
|
# Renders the content for the footer
|
159
127
|
def build_footer
|
160
|
-
|
161
|
-
para "Powered by #{link_to("Active Admin", "http://www.activeadmin.info")} #{ActiveAdmin::VERSION}".html_safe
|
162
|
-
end
|
128
|
+
insert_tag view_factory.footer
|
163
129
|
end
|
164
130
|
|
165
131
|
end
|
@@ -6,7 +6,7 @@ module ActiveAdmin
|
|
6
6
|
|
7
7
|
def title
|
8
8
|
I18n.t("active_admin.#{params[:action]}_model",
|
9
|
-
:model => active_admin_config.
|
9
|
+
:model => active_admin_config.resource_label)
|
10
10
|
end
|
11
11
|
|
12
12
|
def form_presenter
|
@@ -30,7 +30,7 @@ module ActiveAdmin
|
|
30
30
|
def default_form_options
|
31
31
|
{
|
32
32
|
:url => default_form_path,
|
33
|
-
:as => active_admin_config.
|
33
|
+
:as => active_admin_config.resource_name.singular
|
34
34
|
}
|
35
35
|
end
|
36
36
|
|
@@ -41,7 +41,7 @@ module ActiveAdmin
|
|
41
41
|
def default_form_config
|
42
42
|
ActiveAdmin::PagePresenter.new do |f|
|
43
43
|
f.inputs
|
44
|
-
f.
|
44
|
+
f.actions
|
45
45
|
end
|
46
46
|
end
|
47
47
|
end
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'active_admin/helpers/collection'
|
2
|
+
|
1
3
|
module ActiveAdmin
|
2
4
|
module Views
|
3
5
|
module Pages
|
@@ -5,7 +7,11 @@ module ActiveAdmin
|
|
5
7
|
class Index < Base
|
6
8
|
|
7
9
|
def title
|
8
|
-
|
10
|
+
if config[:title].is_a? String
|
11
|
+
config[:title]
|
12
|
+
else
|
13
|
+
active_admin_config.plural_resource_label
|
14
|
+
end
|
9
15
|
end
|
10
16
|
|
11
17
|
def config
|
@@ -15,12 +21,33 @@ module ActiveAdmin
|
|
15
21
|
# Render's the index configuration that was set in the
|
16
22
|
# controller. Defaults to rendering the ActiveAdmin::Pages::Index::Table
|
17
23
|
def main_content
|
18
|
-
|
24
|
+
wrap_with_batch_action_form do
|
25
|
+
build_table_tools
|
26
|
+
build_collection
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
protected
|
31
|
+
|
32
|
+
def wrap_with_batch_action_form(&block)
|
33
|
+
if active_admin_config.batch_actions.any?
|
34
|
+
batch_action_form(&block)
|
35
|
+
else
|
36
|
+
block.call
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
include ::ActiveAdmin::Helpers::Collection
|
41
|
+
|
42
|
+
def items_in_collection?
|
43
|
+
!collection_is_empty?
|
44
|
+
end
|
19
45
|
|
46
|
+
def build_collection
|
20
47
|
if items_in_collection?
|
21
48
|
render_index
|
22
49
|
else
|
23
|
-
if params[:q]
|
50
|
+
if params[:q] || params[:scope]
|
24
51
|
render_empty_results
|
25
52
|
else
|
26
53
|
render_blank_slate
|
@@ -28,19 +55,6 @@ module ActiveAdmin
|
|
28
55
|
end
|
29
56
|
end
|
30
57
|
|
31
|
-
protected
|
32
|
-
|
33
|
-
def items_in_collection?
|
34
|
-
# Remove the order clause before limiting to 1. This ensures that
|
35
|
-
# any referenced columns in the order will not try to be accessed.
|
36
|
-
#
|
37
|
-
# When we call #exists?, the query's select statement is changed to "1".
|
38
|
-
#
|
39
|
-
# If we don't reorder, there may be some columns referenced in the order
|
40
|
-
# clause that requires the original select.
|
41
|
-
collection.reorder("").limit(1).exists?
|
42
|
-
end
|
43
|
-
|
44
58
|
# TODO: Refactor to new HTML DSL
|
45
59
|
def build_download_format_links(formats = [:csv, :xml, :json])
|
46
60
|
links = formats.collect do |format|
|
@@ -49,22 +63,40 @@ module ActiveAdmin
|
|
49
63
|
text_node [I18n.t('active_admin.download'), links].flatten.join(" ").html_safe
|
50
64
|
end
|
51
65
|
|
66
|
+
def build_table_tools
|
67
|
+
div :class => "table_tools" do
|
68
|
+
build_batch_actions_selector
|
69
|
+
build_scopes
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
def build_batch_actions_selector
|
74
|
+
if active_admin_config.batch_actions.any?
|
75
|
+
insert_tag view_factory.batch_action_selector, active_admin_config.batch_actions
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
52
79
|
def build_scopes
|
53
80
|
if active_admin_config.scopes.any?
|
54
81
|
scope_options = {
|
55
82
|
:scope_count => config[:scope_count].nil? ? true : config[:scope_count]
|
56
83
|
}
|
57
84
|
|
58
|
-
|
59
|
-
scopes_renderer active_admin_config.scopes, scope_options
|
60
|
-
end
|
85
|
+
scopes_renderer active_admin_config.scopes, scope_options
|
61
86
|
end
|
62
87
|
end
|
63
88
|
|
64
89
|
# Creates a default configuration for the resource class. This is a table
|
65
90
|
# with each column displayed as well as all the default actions
|
66
91
|
def default_index_config
|
67
|
-
@default_index_config ||= ::ActiveAdmin::PagePresenter.new(:as => :table)
|
92
|
+
@default_index_config ||= ::ActiveAdmin::PagePresenter.new(:as => :table) do |display|
|
93
|
+
selectable_column
|
94
|
+
id_column
|
95
|
+
resource_class.content_columns.each do |col|
|
96
|
+
column col.name.to_sym
|
97
|
+
end
|
98
|
+
default_actions
|
99
|
+
end
|
68
100
|
end
|
69
101
|
|
70
102
|
# Returns the actual class for renderering the main content on the index
|
@@ -81,7 +113,7 @@ module ActiveAdmin
|
|
81
113
|
end
|
82
114
|
|
83
115
|
def render_blank_slate
|
84
|
-
blank_slate_content = I18n.t("active_admin.blank_slate.content", :resource_name => active_admin_config.
|
116
|
+
blank_slate_content = I18n.t("active_admin.blank_slate.content", :resource_name => active_admin_config.plural_resource_label)
|
85
117
|
if controller.action_methods.include?('new')
|
86
118
|
blank_slate_content += " " + link_to(I18n.t("active_admin.blank_slate.link"), new_resource_path)
|
87
119
|
end
|
@@ -89,7 +121,7 @@ module ActiveAdmin
|
|
89
121
|
end
|
90
122
|
|
91
123
|
def render_empty_results
|
92
|
-
empty_results_content = I18n.t("active_admin.pagination.empty", :model => active_admin_config.
|
124
|
+
empty_results_content = I18n.t("active_admin.pagination.empty", :model => active_admin_config.plural_resource_label)
|
93
125
|
insert_tag(view_factory.blank_slate, empty_results_content)
|
94
126
|
end
|
95
127
|
|
@@ -98,8 +130,8 @@ module ActiveAdmin
|
|
98
130
|
paginator = config[:paginator].nil? ? true : config[:paginator]
|
99
131
|
download_links = config[:download_links].nil? ? true : config[:download_links]
|
100
132
|
|
101
|
-
paginated_collection(collection, :entry_name => active_admin_config.
|
102
|
-
:entries_name => active_admin_config.
|
133
|
+
paginated_collection(collection, :entry_name => active_admin_config.resource_label,
|
134
|
+
:entries_name => active_admin_config.plural_resource_label,
|
103
135
|
:download_links => download_links,
|
104
136
|
:paginator => paginator) do
|
105
137
|
div :class => 'index_content' do
|
@@ -13,8 +13,8 @@ module ActiveAdmin
|
|
13
13
|
# Render the content_for(:layout) into the main content area
|
14
14
|
def main_content
|
15
15
|
content_for_layout = content_for(:layout)
|
16
|
-
if content_for_layout.is_a?(Arbre::
|
17
|
-
|
16
|
+
if content_for_layout.is_a?(Arbre::Element)
|
17
|
+
current_arbre_element.add_child content_for_layout.children
|
18
18
|
else
|
19
19
|
text_node content_for_layout
|
20
20
|
end
|
@@ -4,9 +4,7 @@ module ActiveAdmin
|
|
4
4
|
class Page < Base
|
5
5
|
|
6
6
|
def main_content
|
7
|
-
page_presenter
|
8
|
-
|
9
|
-
if page_presenter && page_presenter.block
|
7
|
+
if page_presenter.block
|
10
8
|
instance_exec &page_presenter.block
|
11
9
|
else
|
12
10
|
nil
|
@@ -15,8 +13,16 @@ module ActiveAdmin
|
|
15
13
|
|
16
14
|
protected
|
17
15
|
|
16
|
+
def page_presenter
|
17
|
+
active_admin_config.get_page_presenter(:index) || ActiveAdmin::PagePresenter.new
|
18
|
+
end
|
19
|
+
|
18
20
|
def title
|
19
|
-
|
21
|
+
if page_presenter[:title]
|
22
|
+
render_or_call_method_or_proc_on self, page_presenter[:title]
|
23
|
+
else
|
24
|
+
active_admin_config.name
|
25
|
+
end
|
20
26
|
end
|
21
27
|
end
|
22
28
|
end
|
@@ -4,15 +4,12 @@ module ActiveAdmin
|
|
4
4
|
class Show < Base
|
5
5
|
|
6
6
|
def config
|
7
|
-
active_admin_config.get_page_presenter(:show) ||
|
7
|
+
active_admin_config.get_page_presenter(:show) || super
|
8
8
|
end
|
9
9
|
|
10
10
|
def title
|
11
|
-
|
12
|
-
|
13
|
-
call_method_or_proc_on(resource, config[:title])
|
14
|
-
when String
|
15
|
-
config[:title]
|
11
|
+
if config[:title]
|
12
|
+
render_or_call_method_or_proc_on(resource, config[:title])
|
16
13
|
else
|
17
14
|
default_title
|
18
15
|
end
|
@@ -28,7 +25,7 @@ module ActiveAdmin
|
|
28
25
|
end
|
29
26
|
|
30
27
|
def attributes_table(*args, &block)
|
31
|
-
panel(I18n.t('active_admin.details', :model => active_admin_config.
|
28
|
+
panel(I18n.t('active_admin.details', :model => active_admin_config.resource_label)) do
|
32
29
|
attributes_table_for resource, *args, &block
|
33
30
|
end
|
34
31
|
end
|
@@ -36,7 +33,13 @@ module ActiveAdmin
|
|
36
33
|
protected
|
37
34
|
|
38
35
|
def default_title
|
39
|
-
|
36
|
+
title = display_name(resource)
|
37
|
+
|
38
|
+
if title.nil? || title.empty? || title == resource.to_s
|
39
|
+
title = "#{active_admin_config.resource_label} ##{resource.id}"
|
40
|
+
end
|
41
|
+
|
42
|
+
title
|
40
43
|
end
|
41
44
|
|
42
45
|
module DefaultMainContent
|
@@ -46,10 +46,10 @@ module ActiveAdmin
|
|
46
46
|
|
47
47
|
if item.children.any?
|
48
48
|
li_element.add_class "has_nested"
|
49
|
-
text_node link_to(item.
|
49
|
+
text_node link_to(item.label, link_path)
|
50
50
|
render_nested_menu(item)
|
51
51
|
else
|
52
|
-
link_to item.
|
52
|
+
link_to item.label, link_path
|
53
53
|
end
|
54
54
|
end
|
55
55
|
end
|
@@ -79,7 +79,7 @@ module ActiveAdmin
|
|
79
79
|
|
80
80
|
# Returns true if the menu item name is @current_tab (set in controller)
|
81
81
|
def current?(menu_item)
|
82
|
-
assigns[:current_tab].
|
82
|
+
assigns[:current_tab] == menu_item || menu_item.children.include?(assigns[:current_tab])
|
83
83
|
end
|
84
84
|
|
85
85
|
# Returns an Array of items to display
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module Views
|
3
|
+
class TitleBar < Component
|
4
|
+
|
5
|
+
def build(title, action_items)
|
6
|
+
super(:id => "title_bar")
|
7
|
+
@title = title
|
8
|
+
@action_items = action_items
|
9
|
+
|
10
|
+
build_titlebar_left
|
11
|
+
build_titlebar_right
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def build_titlebar_left
|
17
|
+
div :id => "titlebar_left" do
|
18
|
+
build_breadcrumb
|
19
|
+
build_title_tag
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
def build_titlebar_right
|
24
|
+
div :id => "titlebar_right" do
|
25
|
+
build_action_items
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
def build_breadcrumb(separator = "/")
|
30
|
+
links = breadcrumb_links
|
31
|
+
return if links.empty?
|
32
|
+
span :class => "breadcrumb" do
|
33
|
+
links.each do |link|
|
34
|
+
text_node link
|
35
|
+
span(separator, :class => "breadcrumb_sep")
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def build_title_tag
|
41
|
+
h2(@title, :id => 'page_title')
|
42
|
+
end
|
43
|
+
|
44
|
+
def build_action_items
|
45
|
+
insert_tag(view_factory.action_items, @action_items) if @action_items.any?
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module ActiveAdmin
|
2
|
+
module Views
|
3
|
+
class UtilityNav < Component
|
4
|
+
def tag_name
|
5
|
+
"p"
|
6
|
+
end
|
7
|
+
|
8
|
+
def build(namespace)
|
9
|
+
super(:id => "utility_nav", :class => "header-item")
|
10
|
+
@namespace = namespace
|
11
|
+
|
12
|
+
if current_active_admin_user?
|
13
|
+
build_current_user
|
14
|
+
build_logout_link
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def build_current_user
|
21
|
+
span display_name(current_active_admin_user), :class => "current_user"
|
22
|
+
end
|
23
|
+
|
24
|
+
def build_logout_link
|
25
|
+
if @namespace.logout_link_path
|
26
|
+
text_node helpers.link_to(I18n.t('active_admin.logout'), active_admin_logout_path, :method => logout_method)
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# Returns the logout path from the application settings
|
31
|
+
def active_admin_logout_path
|
32
|
+
helpers.render_or_call_method_or_proc_on(self, @namespace.logout_link_path)
|
33
|
+
end
|
34
|
+
|
35
|
+
def logout_method
|
36
|
+
@namespace.logout_link_method || :get
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|