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
@@ -2,8 +2,6 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ActiveAdmin::Views::AttributesTable do
|
4
4
|
|
5
|
-
setup_arbre_context!
|
6
|
-
|
7
5
|
describe "creating with the dsl" do
|
8
6
|
let(:helpers) { action_view }
|
9
7
|
|
@@ -14,31 +12,40 @@ describe ActiveAdmin::Views::AttributesTable do
|
|
14
12
|
post
|
15
13
|
end
|
16
14
|
|
15
|
+
let(:assigns){ { :post => post } }
|
17
16
|
|
18
17
|
# Loop through a few different ways to make the same table
|
19
18
|
# and ensure that they produce the same results
|
20
19
|
{
|
21
20
|
"when attributes are passed in to the builder methods" => proc {
|
22
|
-
|
21
|
+
render_arbre_component(assigns) {
|
22
|
+
attributes_table_for post, :id, :title, :body
|
23
|
+
}
|
23
24
|
},
|
24
25
|
"when attributes are built using the block" => proc {
|
25
|
-
|
26
|
-
|
27
|
-
|
26
|
+
render_arbre_component(assigns) {
|
27
|
+
attributes_table_for post do
|
28
|
+
rows :id, :title, :body
|
29
|
+
end
|
30
|
+
}
|
28
31
|
},
|
29
32
|
"when each attribute is passed in by itself" => proc {
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
33
|
+
render_arbre_component(assigns) {
|
34
|
+
attributes_table_for post do
|
35
|
+
row :id
|
36
|
+
row :title
|
37
|
+
row :body
|
38
|
+
end
|
39
|
+
}
|
35
40
|
},
|
36
41
|
"when you create each row with a custom block" => proc {
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
+
render_arbre_component(assigns) {
|
43
|
+
attributes_table_for post do
|
44
|
+
row("Id") { post.id }
|
45
|
+
row("Title"){ post.title }
|
46
|
+
row("Body") { post.body }
|
47
|
+
end
|
48
|
+
}
|
42
49
|
}
|
43
50
|
|
44
51
|
}.each do |context_title, table_decleration|
|
@@ -49,6 +56,7 @@ describe ActiveAdmin::Views::AttributesTable do
|
|
49
56
|
table.tag_name.should == 'div'
|
50
57
|
table.attr(:class).should include('attributes_table')
|
51
58
|
end
|
59
|
+
|
52
60
|
it "should add id and type class" do
|
53
61
|
table.class_names.should include("post")
|
54
62
|
table.id.should == "attributes_table_post_1"
|
@@ -83,15 +91,19 @@ describe ActiveAdmin::Views::AttributesTable do
|
|
83
91
|
end # describe dsl styles
|
84
92
|
|
85
93
|
it "should allow html content inside the attributes table" do
|
86
|
-
table =
|
87
|
-
|
88
|
-
|
94
|
+
table = render_arbre_component(assigns) {
|
95
|
+
attributes_table_for(post) do
|
96
|
+
row("ID"){ span(post.id, :class => 'id') }
|
97
|
+
end
|
98
|
+
}
|
89
99
|
table.find_by_tag("td").first.content.chomp.strip.should == "<span class=\"id\">1</span>"
|
90
100
|
end
|
91
101
|
|
92
102
|
it "should check if an association exists when an attribute has id in it" do
|
93
103
|
post.author = User.new(:username => "john_doe")
|
94
|
-
table =
|
104
|
+
table = render_arbre_component(assigns) {
|
105
|
+
attributes_table_for post, :author_id
|
106
|
+
}
|
95
107
|
table.find_by_tag("td").first.content.should == "john_doe"
|
96
108
|
end
|
97
109
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
require 'active_admin/batch_actions/views/batch_action_popover'
|
3
|
+
|
4
|
+
describe ActiveAdmin::BatchActions::BatchActionPopover do
|
5
|
+
|
6
|
+
let(:the_popover) do
|
7
|
+
render_arbre_component do
|
8
|
+
batch_action_popover do
|
9
|
+
action ActiveAdmin::BatchAction.new( :action_1, "Action 1" )
|
10
|
+
action ActiveAdmin::BatchAction.new( :action_2, "Action 2" )
|
11
|
+
action ActiveAdmin::BatchAction.new( :action_3, "Action 3" )
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should have an id" do
|
17
|
+
the_popover.id.should == "batch_actions_popover"
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "the action list" do
|
21
|
+
subject do
|
22
|
+
the_popover.find_by_class("popover_contents").first
|
23
|
+
end
|
24
|
+
|
25
|
+
its(:tag_name) { should eql("ul") }
|
26
|
+
|
27
|
+
its(:content){ should include("<li><a href=\"#\" class=\"batch_action\" data-action=\"action_1\">Action 1 Selected</a></li>") }
|
28
|
+
its(:content){ should include("<li><a href=\"#\" class=\"batch_action\" data-action=\"action_2\">Action 2 Selected</a></li>") }
|
29
|
+
its(:content){ should include("<li><a href=\"#\" class=\"batch_action\" data-action=\"action_3\">Action 3 Selected</a></li>") }
|
30
|
+
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -2,10 +2,12 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ActiveAdmin::Views::BlankSlate do
|
4
4
|
|
5
|
-
setup_arbre_context!
|
6
|
-
|
7
5
|
describe "#blank_slate" do
|
8
|
-
subject
|
6
|
+
subject do
|
7
|
+
render_arbre_component do
|
8
|
+
blank_slate("There are no Posts yet. <a href=\"/posts/new\">Create one</a></span>")
|
9
|
+
end
|
10
|
+
end
|
9
11
|
|
10
12
|
its(:tag_name) { should eql 'div' }
|
11
13
|
its(:class_list) { should include('blank_slate_container') }
|
@@ -2,12 +2,12 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ActiveAdmin::Views::Columns do
|
4
4
|
|
5
|
-
setup_arbre_context!
|
6
|
-
|
7
5
|
describe "Rendering one column" do
|
8
6
|
let(:cols) do
|
9
|
-
|
10
|
-
|
7
|
+
render_arbre_component do
|
8
|
+
columns do
|
9
|
+
column { span "Hello World" }
|
10
|
+
end
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -27,9 +27,11 @@ describe ActiveAdmin::Views::Columns do
|
|
27
27
|
|
28
28
|
describe "Rendering two columns" do
|
29
29
|
let(:cols) do
|
30
|
-
|
31
|
-
|
32
|
-
|
30
|
+
render_arbre_component do
|
31
|
+
columns do
|
32
|
+
column { span "Hello World" }
|
33
|
+
column { span "Hello World" }
|
34
|
+
end
|
33
35
|
end
|
34
36
|
end
|
35
37
|
|
@@ -48,11 +50,13 @@ describe ActiveAdmin::Views::Columns do
|
|
48
50
|
|
49
51
|
describe "Rendering four columns" do
|
50
52
|
let(:cols) do
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
53
|
+
render_arbre_component do
|
54
|
+
columns do
|
55
|
+
column { span "Hello World" }
|
56
|
+
column { span "Hello World" }
|
57
|
+
column { span "Hello World" }
|
58
|
+
column { span "Hello World" }
|
59
|
+
end
|
56
60
|
end
|
57
61
|
end
|
58
62
|
|
@@ -75,10 +79,12 @@ describe ActiveAdmin::Views::Columns do
|
|
75
79
|
|
76
80
|
describe "Column Spans" do
|
77
81
|
let(:cols) do
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
+
render_arbre_component do
|
83
|
+
columns do
|
84
|
+
column(:span => 2){ "Hello World" }
|
85
|
+
column(){ "Hello World" }
|
86
|
+
column(){ "Hello World" }
|
87
|
+
end
|
82
88
|
end
|
83
89
|
end
|
84
90
|
|
@@ -94,9 +100,11 @@ describe ActiveAdmin::Views::Columns do
|
|
94
100
|
describe "Column max width" do
|
95
101
|
|
96
102
|
let(:cols) do
|
97
|
-
|
98
|
-
|
99
|
-
|
103
|
+
render_arbre_component do
|
104
|
+
columns do
|
105
|
+
column(:max_width => "100px"){ "Hello World" }
|
106
|
+
column(){ "Hello World" }
|
107
|
+
end
|
100
108
|
end
|
101
109
|
end
|
102
110
|
|
@@ -113,9 +121,11 @@ describe ActiveAdmin::Views::Columns do
|
|
113
121
|
describe "Column min width" do
|
114
122
|
|
115
123
|
let(:cols) do
|
116
|
-
|
117
|
-
|
118
|
-
|
124
|
+
render_arbre_component do
|
125
|
+
columns do
|
126
|
+
column(:min_width => "100px"){ "Hello World" }
|
127
|
+
column(){ "Hello World" }
|
128
|
+
end
|
119
129
|
end
|
120
130
|
end
|
121
131
|
|
@@ -2,21 +2,33 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ActiveAdmin::Views::PaginatedCollection do
|
4
4
|
describe "creating with the dsl" do
|
5
|
-
setup_arbre_context!
|
6
|
-
|
7
|
-
let(:collection) do
|
8
|
-
posts = [Post.new(:title => "First Post"), Post.new(:title => "Second Post"), Post.new(:title => "Third Post")]
|
9
|
-
Kaminari.paginate_array(posts).page(1).per(5)
|
10
|
-
end
|
11
5
|
|
12
6
|
before :all do
|
13
7
|
load_defaults!
|
14
8
|
reload_routes!
|
15
9
|
end
|
16
10
|
|
11
|
+
let(:view) do
|
12
|
+
view = mock_action_view
|
13
|
+
view.request.stub!(:query_parameters).and_return({:controller => 'admin/posts', :action => 'index', :page => '1'})
|
14
|
+
view.controller.params = {:controller => 'admin/posts', :action => 'index'}
|
15
|
+
view
|
16
|
+
end
|
17
|
+
|
18
|
+
# Helper to render paginated collections within an arbre context
|
19
|
+
def paginated_collection(*args)
|
20
|
+
render_arbre_component({:paginated_collection_args => args}, view) do
|
21
|
+
paginated_collection(*paginated_collection_args)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
let(:collection) do
|
26
|
+
posts = [Post.new(:title => "First Post"), Post.new(:title => "Second Post"), Post.new(:title => "Third Post")]
|
27
|
+
Kaminari.paginate_array(posts).page(1).per(5)
|
28
|
+
end
|
29
|
+
|
17
30
|
before do
|
18
|
-
|
19
|
-
controller.params = {:controller => 'admin/posts', :action => 'index'}
|
31
|
+
collection.stub!(:reorder) { collection }
|
20
32
|
end
|
21
33
|
|
22
34
|
context "when specifying collection" do
|
@@ -44,7 +56,7 @@ describe ActiveAdmin::Views::PaginatedCollection do
|
|
44
56
|
let(:pagination) { paginated_collection(collection, :param_name => :post_page) }
|
45
57
|
|
46
58
|
it "should customize the page number parameter in pagination links" do
|
47
|
-
pagination.
|
59
|
+
pagination.children.last.content.should match(/\/admin\/posts\?post_page=2/)
|
48
60
|
end
|
49
61
|
end
|
50
62
|
|
@@ -116,7 +128,7 @@ describe ActiveAdmin::Views::PaginatedCollection do
|
|
116
128
|
end
|
117
129
|
|
118
130
|
it "should use 'Singular' as the collection name when there is an I18n translation" do
|
119
|
-
I18n.stub(:translate
|
131
|
+
I18n.stub(:translate) { "Singular" }
|
120
132
|
pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>1</b> Singular"
|
121
133
|
end
|
122
134
|
end
|
@@ -129,7 +141,7 @@ describe ActiveAdmin::Views::PaginatedCollection do
|
|
129
141
|
end
|
130
142
|
|
131
143
|
it "should use 'Plural' as the collection name when there is an I18n translation" do
|
132
|
-
I18n.stub(:translate
|
144
|
+
I18n.stub(:translate) { "Plural" }
|
133
145
|
pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>all 3</b> Plural"
|
134
146
|
end
|
135
147
|
end
|
@@ -150,7 +162,7 @@ describe ActiveAdmin::Views::PaginatedCollection do
|
|
150
162
|
context "when collection comes from find with GROUP BY" do
|
151
163
|
let(:collection) do
|
152
164
|
%w{Foo Foo Bar}.each {|title| Post.create(:title => title) }
|
153
|
-
Post.group(:title).page(1).per(5)
|
165
|
+
Post.select(:title).group(:title).page(1).per(5)
|
154
166
|
end
|
155
167
|
|
156
168
|
let(:pagination) { paginated_collection(collection) }
|
@@ -159,5 +171,35 @@ describe ActiveAdmin::Views::PaginatedCollection do
|
|
159
171
|
pagination.find_by_class('pagination_information').first.content.should == "Displaying <b>all 2</b> posts"
|
160
172
|
end
|
161
173
|
end
|
174
|
+
|
175
|
+
context "when collection with many pages comes from find with GROUP BY" do
|
176
|
+
let(:collection) do
|
177
|
+
%w{Foo Foo Bar Baz}.each {|title| Post.create(:title => title) }
|
178
|
+
Post.select(:title).group(:title).page(1).per(2)
|
179
|
+
end
|
180
|
+
|
181
|
+
let(:pagination) { paginated_collection(collection) }
|
182
|
+
|
183
|
+
it "should display proper message (including number and not hash)" do
|
184
|
+
pagination.find_by_class('pagination_information').first.content.
|
185
|
+
gsub(' ',' ').should == "Displaying posts <b>1 - 2</b> of <b>3</b> in total"
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
189
|
+
context "when viewing the last page of a collection that has multiple pages" do
|
190
|
+
let(:collection) do
|
191
|
+
posts = [Post.new] * 81
|
192
|
+
Kaminari.paginate_array(posts).page(3).per(30)
|
193
|
+
end
|
194
|
+
|
195
|
+
let(:pagination) { paginated_collection(collection) }
|
196
|
+
|
197
|
+
it "should show the proper item counts" do
|
198
|
+
pagination.find_by_class('pagination_information').first.content.
|
199
|
+
gsub(' ',' ').should == "Displaying posts <b>61 - 81</b> of <b>81</b> in total"
|
200
|
+
end
|
201
|
+
end
|
202
|
+
|
203
|
+
|
162
204
|
end
|
163
205
|
end
|
@@ -2,11 +2,11 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ActiveAdmin::Views::Panel do
|
4
4
|
|
5
|
-
setup_arbre_context!
|
6
|
-
|
7
5
|
let(:the_panel) do
|
8
|
-
|
9
|
-
|
6
|
+
render_arbre_component do
|
7
|
+
panel "My Title" do
|
8
|
+
span("Hello World")
|
9
|
+
end
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
@@ -23,13 +23,18 @@ describe ActiveAdmin::Views::Panel do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should set the icon" do
|
26
|
-
|
26
|
+
the_panel = render_arbre_component do
|
27
|
+
panel("Title", :icon => :arrow_down)
|
28
|
+
end
|
29
|
+
the_panel.find_by_tag("h3").first.content.should include("span class=\"icon")
|
27
30
|
end
|
28
31
|
|
29
32
|
describe "#children?" do
|
30
33
|
|
31
34
|
it "returns false if no children have been added to the panel" do
|
32
|
-
the_panel =
|
35
|
+
the_panel = render_arbre_component do
|
36
|
+
panel("A Panel")
|
37
|
+
end
|
33
38
|
the_panel.children?.should == false
|
34
39
|
end
|
35
40
|
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ActiveAdmin::Views::Popover do
|
4
|
+
|
5
|
+
let(:the_popover) do
|
6
|
+
render_arbre_component do
|
7
|
+
popover :id => "my_awesome_popover" do
|
8
|
+
para "Hello World, this is popover content baby."
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should have the class of 'sidebar_section'" do
|
14
|
+
the_popover.class_list.should include("popover")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should have an inner content element class of 'popover_contents'" do
|
18
|
+
the_popover.find_by_tag("div").first.class_list.should include("popover_contents")
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should have the popover content in the inner content element" do
|
22
|
+
the_popover.find_by_class("popover_contents").first.content.should include("Hello World, this is popover content baby.")
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should have an id" do
|
26
|
+
the_popover.id.should == "my_awesome_popover"
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should be hidden" do
|
30
|
+
the_popover.attributes.should include(:style => "display: none");
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -2,20 +2,20 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe ActiveAdmin::Views::SidebarSection do
|
4
4
|
|
5
|
-
setup_arbre_context!
|
6
|
-
|
7
5
|
let(:section) do
|
8
|
-
ActiveAdmin::SidebarSection.new(
|
6
|
+
ActiveAdmin::SidebarSection.new("Help Section") do
|
9
7
|
span "Help Me"
|
10
8
|
end
|
11
9
|
end
|
12
10
|
|
13
11
|
let(:html) do
|
14
|
-
|
12
|
+
render_arbre_component :section => section do
|
13
|
+
sidebar_section(assigns[:section])
|
14
|
+
end
|
15
15
|
end
|
16
16
|
|
17
17
|
it "should have a title h3" do
|
18
|
-
html.find_by_tag("h3").first.content.should == "Help"
|
18
|
+
html.find_by_tag("h3").first.content.should == "Help Section"
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should have the class of 'sidebar_section'" do
|
@@ -23,7 +23,7 @@ describe ActiveAdmin::Views::SidebarSection do
|
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should have an id based on the title" do
|
26
|
-
html.id.should == "
|
26
|
+
html.id.should == "help-section_sidebar_section"
|
27
27
|
end
|
28
28
|
|
29
29
|
it "should have a contents div" do
|