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
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ActiveAdmin::BatchActions::ResourceExtension do
|
4
|
+
|
5
|
+
let(:resource) do
|
6
|
+
namespace = ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin)
|
7
|
+
namespace.batch_actions = true
|
8
|
+
namespace.register(Post)
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "default action" do
|
12
|
+
|
13
|
+
it "should have the default action by default" do
|
14
|
+
resource.batch_actions.size.should == 1 and resource.batch_actions.first.sym == :destroy
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
describe "adding a new batch action" do
|
20
|
+
|
21
|
+
before do
|
22
|
+
resource.clear_batch_actions!
|
23
|
+
resource.add_batch_action :flag, "Flag" do
|
24
|
+
# Empty
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should add an batch action" do
|
29
|
+
resource.batch_actions.size.should == 1
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should store an instance of BatchAction" do
|
33
|
+
resource.batch_actions.first.should be_an_instance_of(ActiveAdmin::BatchAction)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should store the block in the batch action" do
|
37
|
+
resource.batch_actions.first.block.should_not be_nil
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "removing batch action" do
|
43
|
+
|
44
|
+
before do
|
45
|
+
resource.remove_batch_action :destroy
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should allow for batch action removal" do
|
49
|
+
resource.batch_actions.size.should == 0
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|
53
|
+
|
54
|
+
describe "#batch_action_path" do
|
55
|
+
|
56
|
+
it "returns the path as a symbol" do
|
57
|
+
resource.batch_action_path.should == :batch_action_admin_posts_path
|
58
|
+
end
|
59
|
+
|
60
|
+
end
|
61
|
+
|
62
|
+
describe "#display_if_block" do
|
63
|
+
|
64
|
+
it "should return true by default" do
|
65
|
+
action = ActiveAdmin::BatchAction.new :default, "Default"
|
66
|
+
action.display_if_block.call.should == true
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should return the :if block if set" do
|
70
|
+
action = ActiveAdmin::BatchAction.new :with_block, "With Block", :if => proc { false }
|
71
|
+
action.display_if_block.call.should == false
|
72
|
+
end
|
73
|
+
|
74
|
+
end
|
75
|
+
|
76
|
+
describe "batch action priority" do
|
77
|
+
|
78
|
+
it "should have a default priority" do
|
79
|
+
action = ActiveAdmin::BatchAction.new :default, "Default"
|
80
|
+
action.priority.should == 10
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should correctly order two actions" do
|
84
|
+
priority_one = ActiveAdmin::BatchAction.new :one, "One", :priority => 1
|
85
|
+
priority_ten = ActiveAdmin::BatchAction.new :ten, "Ten", :priority => 10
|
86
|
+
priority_one.should be < priority_ten
|
87
|
+
end
|
88
|
+
|
89
|
+
end
|
90
|
+
|
91
|
+
end
|
@@ -0,0 +1,61 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Batch Actions Settings" do
|
4
|
+
let(:app) { ActiveAdmin::Application.new }
|
5
|
+
let(:ns) { ActiveAdmin::Namespace.new(app, "Admin") }
|
6
|
+
let(:post_resource) { ns.register Post }
|
7
|
+
|
8
|
+
it "should be disabled globally by default" do
|
9
|
+
# Note: the default initializer would set it to true
|
10
|
+
|
11
|
+
app.batch_actions.should be_false
|
12
|
+
ns.batch_actions.should be_false
|
13
|
+
post_resource.batch_actions_enabled?.should be_false
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should be settable to true" do
|
17
|
+
app.batch_actions = true
|
18
|
+
app.batch_actions.should == true
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should be an inheritable_setting" do
|
22
|
+
app.batch_actions = true
|
23
|
+
ns.batch_actions.should == true
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should be settable at the namespace level" do
|
27
|
+
app.batch_actions = true
|
28
|
+
ns.batch_actions = false
|
29
|
+
|
30
|
+
app.batch_actions.should == true
|
31
|
+
ns.batch_actions.should == false
|
32
|
+
end
|
33
|
+
|
34
|
+
it "should be settable at the resource level" do
|
35
|
+
post_resource.batch_actions_enabled?.should == false
|
36
|
+
post_resource.batch_actions = true
|
37
|
+
post_resource.batch_actions_enabled?.should == true
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should inherit the setting on the resource from the namespace" do
|
41
|
+
ns.batch_actions = false
|
42
|
+
post_resource.batch_actions_enabled?.should == false
|
43
|
+
post_resource.batch_actions.should be_empty
|
44
|
+
|
45
|
+
post_resource.batch_actions = true
|
46
|
+
post_resource.batch_actions_enabled?.should == true
|
47
|
+
post_resource.batch_actions.should_not be_empty
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should inherit the setting from the namespace when set to nil" do
|
51
|
+
ns.batch_actions = true
|
52
|
+
|
53
|
+
post_resource.batch_actions = true
|
54
|
+
post_resource.batch_actions_enabled?.should == true
|
55
|
+
post_resource.batch_actions.should_not be_empty
|
56
|
+
|
57
|
+
post_resource.batch_actions = nil
|
58
|
+
post_resource.batch_actions_enabled?.should == true # inherited from namespace
|
59
|
+
post_resource.batch_actions.should_not be_empty
|
60
|
+
end
|
61
|
+
end
|
@@ -82,6 +82,39 @@ describe "Breadcrumbs" do
|
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
+
context "when path '/admin/posts/4e24d6249ccf967313000000/comments'" do
|
86
|
+
let(:path) { "/admin/posts/4e24d6249ccf967313000000/comments" }
|
87
|
+
|
88
|
+
it "should have 3 items" do
|
89
|
+
trail.size.should == 3
|
90
|
+
end
|
91
|
+
it "should have a link to /admin" do
|
92
|
+
trail[0][:name].should == "Admin"
|
93
|
+
trail[0][:path].should == "/admin"
|
94
|
+
end
|
95
|
+
it "should have a link to /admin/posts" do
|
96
|
+
trail[1][:name].should == "Posts"
|
97
|
+
trail[1][:path].should == "/admin/posts"
|
98
|
+
end
|
99
|
+
|
100
|
+
context "when Post.find(4e24d6249ccf967313000000) doesn't exist" do
|
101
|
+
it "should have a link to /admin/posts/4e24d6249ccf967313000000" do
|
102
|
+
trail[2][:name].should == "4e24d6249ccf967313000000"
|
103
|
+
trail[2][:path].should == "/admin/posts/4e24d6249ccf967313000000"
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
context "when Post.find(4e24d6249ccf967313000000) does exist" do
|
108
|
+
before do
|
109
|
+
Post.stub!(:find).with('4e24d6249ccf967313000000').and_return{ mock(:display_name => "Hello World") }
|
110
|
+
end
|
111
|
+
it "should have a link to /admin/posts/4e24d6249ccf967313000000 using display name" do
|
112
|
+
trail[2][:name].should == "Hello World"
|
113
|
+
trail[2][:path].should == "/admin/posts/4e24d6249ccf967313000000"
|
114
|
+
end
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
85
118
|
context "when path '/admin/posts/1/coments/1'" do
|
86
119
|
let(:path) { "/admin/posts/1/comments/1" }
|
87
120
|
|
data/spec/unit/comments_spec.rb
CHANGED
@@ -4,7 +4,13 @@ describe "Comments" do
|
|
4
4
|
let(:application){ ActiveAdmin::Application.new }
|
5
5
|
|
6
6
|
describe ActiveAdmin::Comment do
|
7
|
+
subject { ActiveAdmin::Comment }
|
8
|
+
|
7
9
|
describe "Associations and Validations" do
|
10
|
+
before do
|
11
|
+
pending "This is not passing on Travis-CI. See Issue #1273."
|
12
|
+
end
|
13
|
+
|
8
14
|
it { should belong_to :resource }
|
9
15
|
it { should belong_to :author }
|
10
16
|
|
@@ -21,56 +21,27 @@ shared_examples_for "ActiveAdmin::Config" do
|
|
21
21
|
it { respond_to :sidebar_sections? }
|
22
22
|
|
23
23
|
describe "Naming" do
|
24
|
-
it "implements #
|
25
|
-
expect { config.
|
24
|
+
it "implements #resource_label" do
|
25
|
+
expect { config.resource_label }.should_not raise_error
|
26
26
|
end
|
27
27
|
|
28
|
-
it "implements #
|
29
|
-
expect { config.
|
30
|
-
end
|
31
|
-
|
32
|
-
it "implements #safe_resource_name" do
|
33
|
-
expect { config.safe_resource_name }.should_not raise_error
|
34
|
-
end
|
35
|
-
|
36
|
-
describe "#camelized_resource_name" do
|
37
|
-
it "returns a camelized version of the safe_resource_name" do
|
38
|
-
config.should_receive(:safe_resource_name).and_return "My resource"
|
39
|
-
config.camelized_resource_name.should == "MyResource"
|
40
|
-
end
|
28
|
+
it "implements #plural_resource_label" do
|
29
|
+
expect { config.plural_resource_label }.should_not raise_error
|
41
30
|
end
|
31
|
+
end
|
42
32
|
|
43
|
-
|
44
|
-
|
45
|
-
config.should_receive(:safe_resource_name).and_return "My resource"
|
46
|
-
config.camelized_resource_name.should == "MyResource"
|
47
|
-
end
|
48
|
-
end
|
33
|
+
describe "Menu" do
|
34
|
+
describe "menu item" do
|
49
35
|
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
config.underscored_resource_name.should == "my_resource"
|
54
|
-
end
|
55
|
-
end
|
36
|
+
it "initializes a new menu item with defaults" do
|
37
|
+
config.menu_item.label.should == config.plural_resource_label
|
38
|
+
end
|
56
39
|
|
57
|
-
|
58
|
-
|
59
|
-
config.
|
60
|
-
config.plural_underscored_resource_name.should == "my_resources"
|
40
|
+
it "initialize a new menu item with custom options" do
|
41
|
+
config.menu :label => "Hello"
|
42
|
+
config.menu_item.label.should == "Hello"
|
61
43
|
end
|
62
|
-
end
|
63
|
-
end
|
64
44
|
|
65
|
-
describe "Menu" do
|
66
|
-
describe "menu item name" do
|
67
|
-
it "should be the plural resource name when not set" do
|
68
|
-
config.menu_item_name.should == config.plural_resource_name
|
69
|
-
end
|
70
|
-
it "should be settable" do
|
71
|
-
config.menu :label => "My Label"
|
72
|
-
config.menu_item_name.should == "My Label"
|
73
|
-
end
|
74
45
|
end
|
75
46
|
|
76
47
|
describe "#include_in_menu?" do
|
@@ -85,35 +56,17 @@ shared_examples_for "ActiveAdmin::Config" do
|
|
85
56
|
end
|
86
57
|
|
87
58
|
describe "parent menu item name" do
|
59
|
+
|
88
60
|
it "should be nil when not set" do
|
89
61
|
config.parent_menu_item_name.should == nil
|
90
62
|
end
|
63
|
+
|
91
64
|
it "should return the name if set" do
|
92
|
-
|
93
|
-
|
94
|
-
end.parent_menu_item_name.should == "Blog"
|
65
|
+
config.menu :parent => "Blog"
|
66
|
+
config.parent_menu_item_name.should == "Blog"
|
95
67
|
end
|
96
|
-
end
|
97
68
|
|
98
|
-
describe "menu item priority" do
|
99
|
-
it "should be 10 when not set" do
|
100
|
-
config.menu_item_priority.should == 10
|
101
|
-
end
|
102
|
-
it "should be settable" do
|
103
|
-
config.menu :priority => 2
|
104
|
-
config.menu_item_priority.should == 2
|
105
|
-
end
|
106
69
|
end
|
107
70
|
|
108
|
-
describe "menu item display if" do
|
109
|
-
it "should be a proc always returning true if not set" do
|
110
|
-
config.menu_item_display_if.should be_instance_of(Proc)
|
111
|
-
config.menu_item_display_if.call.should == true
|
112
|
-
end
|
113
|
-
it "should be settable" do
|
114
|
-
config.menu :if => proc { false }
|
115
|
-
config.menu_item_display_if.call.should == false
|
116
|
-
end
|
117
|
-
end
|
118
71
|
end
|
119
72
|
end
|
@@ -37,7 +37,7 @@ describe ActiveAdmin::CSVBuilder do
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
it "should have one
|
40
|
+
it "should have one column" do
|
41
41
|
builder.columns.size.should == 1
|
42
42
|
end
|
43
43
|
|
@@ -63,7 +63,7 @@ describe ActiveAdmin::CSVBuilder do
|
|
63
63
|
end
|
64
64
|
end
|
65
65
|
|
66
|
-
it "should have one
|
66
|
+
it "should have one column" do
|
67
67
|
builder.columns.size.should == 1
|
68
68
|
end
|
69
69
|
|
@@ -80,4 +80,14 @@ describe ActiveAdmin::CSVBuilder do
|
|
80
80
|
end
|
81
81
|
end
|
82
82
|
|
83
|
+
context "with a separator" do
|
84
|
+
let(:builder) do
|
85
|
+
ActiveAdmin::CSVBuilder.new :separator => ";"
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should have proper separator" do
|
89
|
+
builder.column_separator.should == ";"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
83
93
|
end
|
@@ -1,11 +1,17 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
|
+
require 'active_admin/dashboards/dashboard_controller'
|
4
|
+
require 'active_admin/dashboards/section'
|
3
5
|
|
4
6
|
module Admin
|
5
|
-
class
|
7
|
+
class TestDashboardController < ActiveAdmin::PageController
|
8
|
+
include ActiveAdmin::Dashboards::DashboardController
|
6
9
|
end
|
7
10
|
end
|
8
|
-
|
11
|
+
|
12
|
+
class TestDashboardController < ActiveAdmin::PageController
|
13
|
+
include ActiveAdmin::Dashboards::DashboardController
|
14
|
+
end
|
9
15
|
|
10
16
|
describe ActiveAdmin::Dashboards::DashboardController do
|
11
17
|
|
@@ -13,19 +19,19 @@ describe ActiveAdmin::Dashboards::DashboardController do
|
|
13
19
|
subject{ controller.send :namespace }
|
14
20
|
|
15
21
|
context "when admin namespace" do
|
16
|
-
let(:controller){ Admin::
|
22
|
+
let(:controller){ Admin::TestDashboardController.new }
|
17
23
|
it { should == :admin }
|
18
24
|
end
|
19
25
|
|
20
26
|
context "when root namespace" do
|
21
|
-
let(:controller){
|
27
|
+
let(:controller){ TestDashboardController.new }
|
22
28
|
it { should == :root }
|
23
29
|
end
|
24
30
|
end
|
25
31
|
|
26
32
|
describe "conditionally displaying sections" do
|
27
33
|
before { ActiveAdmin::Dashboards.clear_all_sections! }
|
28
|
-
let(:controller){ Admin::
|
34
|
+
let(:controller){ Admin::TestDashboardController.new }
|
29
35
|
|
30
36
|
context "when :if not specified" do
|
31
37
|
before do
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module MockModuleToInclude
|
4
|
+
def self.included(dsl)
|
5
|
+
end
|
6
|
+
end
|
7
|
+
|
8
|
+
|
9
|
+
describe ActiveAdmin::DSL, "#include" do
|
10
|
+
|
11
|
+
let(:dsl){ ActiveAdmin::DSL.new(mock) }
|
12
|
+
|
13
|
+
it "should call the included class method on the module that is included" do
|
14
|
+
MockModuleToInclude.should_receive(:included).with(dsl)
|
15
|
+
dsl.run_registration_block do
|
16
|
+
include MockModuleToInclude
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
@@ -1,9 +1,7 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
|
4
|
-
describe ActiveAdmin::
|
5
|
-
|
6
|
-
setup_arbre_context!
|
4
|
+
describe ActiveAdmin::Filters::ViewHelper do
|
7
5
|
|
8
6
|
# Setup an ActionView::Base object which can be used for
|
9
7
|
# generating the form for.
|
@@ -24,9 +22,14 @@ describe ActiveAdmin::ViewHelpers::FilterFormHelper do
|
|
24
22
|
view
|
25
23
|
end
|
26
24
|
|
25
|
+
def render_filter(search, name, options = {})
|
26
|
+
render_arbre_component({:filter_args => [search, [options.merge(:attribute => name)]]}, helpers) do
|
27
|
+
text_node active_admin_filters_form_for(*assigns[:filter_args])
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
27
31
|
def filter(name, options = {})
|
28
|
-
|
29
|
-
active_admin_filters_form_for(search, [options.merge(:attribute => name)])
|
32
|
+
render_filter Post.search, name, options
|
30
33
|
end
|
31
34
|
|
32
35
|
describe "the form in general" do
|
@@ -42,7 +45,7 @@ describe ActiveAdmin::ViewHelpers::FilterFormHelper do
|
|
42
45
|
end
|
43
46
|
|
44
47
|
it "should only generate the form once" do
|
45
|
-
body.scan(/q\[title_contains\]/).size.should == 1
|
48
|
+
body.to_s.scan(/q\[title_contains\]/).size.should == 1
|
46
49
|
end
|
47
50
|
|
48
51
|
it "should generate a clear filters link" do
|
@@ -190,7 +193,7 @@ describe ActiveAdmin::ViewHelpers::FilterFormHelper do
|
|
190
193
|
context "when polymorphic relationship" do
|
191
194
|
let(:body) do
|
192
195
|
search = ActiveAdmin::Comment.search
|
193
|
-
|
196
|
+
render_filter(search, :resource)
|
194
197
|
end
|
195
198
|
it "should not generate any field" do
|
196
199
|
body.should have_tag("form", :attributes => { :method => 'get' })
|