activeadmin 1.0.0 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of activeadmin might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/.github/ISSUE_TEMPLATE.md +20 -0
- data/.mdlrc +1 -0
- data/.rubocop.yml +52 -3
- data/.simplecov +13 -0
- data/.travis.yml +9 -24
- data/.yardopts +0 -1
- data/CHANGELOG.md +85 -4
- data/CONTRIBUTING.md +33 -57
- data/Gemfile +26 -17
- data/Rakefile +1 -12
- data/activeadmin.gemspec +9 -11
- data/app/assets/javascripts/active_admin/base.js.coffee +6 -2
- data/app/assets/javascripts/active_admin/initializers/batch_actions.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/initializers/datepicker.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/initializers/filters.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/initializers/tabs.js.coffee +5 -1
- data/app/assets/javascripts/active_admin/lib/batch_actions.js.coffee +6 -3
- data/app/assets/javascripts/active_admin/lib/checkbox-toggler.js.coffee +9 -7
- data/app/assets/javascripts/active_admin/lib/dropdown-menu.js.coffee +5 -2
- data/app/assets/javascripts/active_admin/lib/per_page.js.coffee +6 -2
- data/app/assets/javascripts/active_admin/lib/table-checkbox-toggler.js.coffee +3 -5
- data/app/assets/stylesheets/active_admin/_base.scss +2 -2
- data/app/assets/stylesheets/active_admin/_forms.scss +6 -12
- data/app/assets/stylesheets/active_admin/components/_batch_actions.scss +0 -5
- data/app/assets/stylesheets/active_admin/components/_pagination.scss +11 -0
- data/app/assets/stylesheets/active_admin/components/_status_tags.scss +1 -0
- data/app/assets/stylesheets/active_admin/components/_tables.scss +4 -1
- data/app/assets/stylesheets/active_admin/mixins/_all.scss +0 -2
- data/app/assets/stylesheets/active_admin/print.scss +2 -3
- data/app/views/active_admin/devise/sessions/new.html.erb +1 -1
- data/app/views/active_admin/devise/shared/_links.erb +12 -6
- data/app/views/kaminari/active_admin/_first_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_gap.html.erb +8 -0
- data/app/views/kaminari/active_admin/_last_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_next_page.html.erb +11 -0
- data/app/views/kaminari/active_admin/_page.html.erb +12 -0
- data/app/views/kaminari/active_admin/_paginator.html.erb +25 -0
- data/app/views/kaminari/active_admin/_prev_page.html.erb +11 -0
- data/codecov.yml +14 -12
- data/config/i18n-tasks.yml +26 -0
- data/config/locales/ar.yml +1 -3
- data/config/locales/bg.yml +0 -2
- data/config/locales/bs.yml +0 -2
- data/config/locales/ca.yml +0 -2
- data/config/locales/cs.yml +0 -2
- data/config/locales/da.yml +1 -3
- data/config/locales/de-CH.yml +1 -3
- data/config/locales/de.yml +1 -3
- data/config/locales/el.yml +1 -3
- data/config/locales/en-CA.yml +138 -0
- data/config/locales/en-GB.yml +43 -3
- data/config/locales/en.yml +8 -4
- data/config/locales/es-MX.yml +3 -2
- data/config/locales/es.yml +10 -4
- data/config/locales/fa.yml +0 -2
- data/config/locales/fi.yml +0 -2
- data/config/locales/fr.yml +9 -2
- data/config/locales/he.yml +53 -7
- data/config/locales/hr.yml +0 -2
- data/config/locales/hu.yml +0 -2
- data/config/locales/id.yml +1 -3
- data/config/locales/it.yml +2 -4
- data/config/locales/ja.yml +1 -3
- data/config/locales/ko.yml +0 -2
- data/config/locales/lt.yml +24 -4
- data/config/locales/lv.yml +0 -2
- data/config/locales/nb.yml +0 -2
- data/config/locales/nl.yml +1 -3
- data/config/locales/pl.yml +3 -2
- data/config/locales/pt-BR.yml +1 -3
- data/config/locales/pt-PT.yml +0 -2
- data/config/locales/ro.yml +0 -2
- data/config/locales/ru.yml +1 -3
- data/config/locales/sk.yml +0 -2
- data/config/locales/sv-SE.yml +1 -3
- data/config/locales/tr.yml +0 -2
- data/config/locales/uk.yml +1 -3
- data/config/locales/vi.yml +0 -2
- data/config/locales/zh-CN.yml +0 -2
- data/config/locales/zh-TW.yml +1 -3
- data/config/mdl_style.rb +9 -0
- data/cucumber.yml +3 -3
- data/docs/0-installation.md +15 -12
- data/docs/1-general-configuration.md +10 -3
- data/docs/10-custom-pages.md +10 -5
- data/docs/11-decorators.md +1 -0
- data/docs/12-arbre-components.md +7 -9
- data/docs/13-authorization-adapter.md +39 -24
- data/docs/14-gotchas.md +41 -22
- data/docs/2-resource-customization.md +41 -18
- data/docs/3-index-pages.md +30 -12
- data/docs/3-index-pages/custom-index.md +1 -0
- data/docs/3-index-pages/index-as-block.md +0 -5
- data/docs/3-index-pages/index-as-blog.md +0 -5
- data/docs/3-index-pages/index-as-grid.md +0 -5
- data/docs/3-index-pages/index-as-table.md +1 -9
- data/docs/4-csv-format.md +2 -1
- data/docs/5-forms.md +45 -21
- data/docs/6-show-pages.md +2 -1
- data/docs/7-sidebars.md +2 -1
- data/docs/8-custom-actions.md +4 -1
- data/docs/9-batch-actions.md +4 -2
- data/docs/documentation.md +19 -21
- data/features/comments/commenting.feature +20 -0
- data/features/index/filters.feature +41 -1
- data/features/index/format_as_csv.feature +17 -0
- data/features/index/index_scopes.feature +15 -0
- data/features/registering_assets.feature +8 -4
- data/features/show/attributes_table_title.feature +54 -0
- data/features/show/tabs.feature +10 -4
- data/features/step_definitions/action_link_steps.rb +0 -1
- data/features/step_definitions/attributes_table_title_steps.rb +11 -0
- data/features/step_definitions/batch_action_steps.rb +2 -2
- data/features/step_definitions/comment_steps.rb +21 -1
- data/features/step_definitions/configuration_steps.rb +1 -1
- data/features/step_definitions/filter_steps.rb +9 -0
- data/features/step_definitions/format_steps.rb +1 -1
- data/features/step_definitions/index_scope_steps.rb +4 -0
- data/features/support/env.rb +5 -4
- data/features/support/regular_env.rb +7 -0
- data/features/support/reload_env.rb +7 -0
- data/gemfiles/rails_42.gemfile +2 -37
- data/gemfiles/rails_50.gemfile +5 -40
- data/gemfiles/rails_51.gemfile +5 -40
- data/lib/active_admin.rb +0 -3
- data/lib/active_admin/application.rb +6 -4
- data/lib/active_admin/asset_registration.rb +8 -0
- data/lib/active_admin/authorization_adapter.rb +0 -3
- data/lib/active_admin/base_controller.rb +1 -2
- data/lib/active_admin/base_controller/authorization.rb +0 -1
- data/lib/active_admin/base_controller/menu.rb +9 -9
- data/lib/active_admin/batch_actions/controller.rb +1 -1
- data/lib/active_admin/batch_actions/views/selection_cells.rb +6 -5
- data/lib/active_admin/csv_builder.rb +3 -3
- data/lib/active_admin/dependency.rb +1 -1
- data/lib/active_admin/devise.rb +2 -2
- data/lib/active_admin/dsl.rb +2 -2
- data/lib/active_admin/filters.rb +2 -0
- data/lib/active_admin/filters/active.rb +13 -14
- data/lib/active_admin/filters/active_filter.rb +87 -0
- data/lib/active_admin/filters/active_sidebar.rb +50 -0
- data/lib/active_admin/filters/forms.rb +1 -2
- data/lib/active_admin/filters/resource_extension.rb +2 -30
- data/lib/active_admin/helpers/settings.rb +0 -1
- data/lib/active_admin/inputs/datepicker_input.rb +5 -5
- data/lib/active_admin/inputs/filters/date_range_input.rb +12 -4
- data/lib/active_admin/inputs/filters/text_input.rb +0 -1
- data/lib/active_admin/menu.rb +4 -4
- data/lib/active_admin/menu_collection.rb +0 -2
- data/lib/active_admin/namespace.rb +1 -1
- data/lib/active_admin/orm/active_record/comments/comment.rb +1 -5
- data/lib/active_admin/orm/active_record/comments/views/active_admin_comments.rb +4 -2
- data/lib/active_admin/page_controller.rb +1 -1
- data/lib/active_admin/resource/action_items.rb +4 -0
- data/lib/active_admin/resource/attributes.rb +1 -1
- data/lib/active_admin/resource/page_presenters.rb +1 -1
- data/lib/active_admin/resource/routes.rb +0 -1
- data/lib/active_admin/resource/scopes.rb +2 -1
- data/lib/active_admin/resource_controller.rb +1 -1
- data/lib/active_admin/resource_controller/data_access.rb +8 -9
- data/lib/active_admin/resource_dsl.rb +10 -10
- data/lib/active_admin/router.rb +1 -1
- data/lib/active_admin/scope.rb +3 -3
- data/lib/active_admin/version.rb +1 -1
- data/lib/active_admin/view_helpers.rb +1 -0
- data/lib/active_admin/view_helpers/display_helper.rb +1 -1
- data/lib/active_admin/view_helpers/form_helper.rb +1 -1
- data/lib/active_admin/view_helpers/scope_name_helper.rb +16 -0
- data/lib/active_admin/views/action_items.rb +1 -1
- data/lib/active_admin/views/components/active_admin_form.rb +1 -1
- data/lib/active_admin/views/components/dropdown_menu.rb +2 -2
- data/lib/active_admin/views/components/index_list.rb +0 -2
- data/lib/active_admin/views/components/paginated_collection.rb +1 -1
- data/lib/active_admin/views/components/scopes.rb +2 -10
- data/lib/active_admin/views/components/status_tag.rb +19 -11
- data/lib/active_admin/views/components/tabs.rb +2 -2
- data/lib/active_admin/views/header.rb +0 -1
- data/lib/active_admin/views/index_as_blog.rb +1 -2
- data/lib/active_admin/views/index_as_grid.rb +2 -2
- data/lib/active_admin/views/index_as_table.rb +19 -1
- data/lib/active_admin/views/pages/base.rb +4 -4
- data/lib/active_admin/views/pages/show.rb +6 -1
- data/lib/active_admin/views/title_bar.rb +4 -4
- data/lib/bug_report_templates/{rails_5_master.rb → active_admin_master.rb} +35 -40
- data/lib/generators/active_admin/devise/devise_generator.rb +1 -1
- data/lib/generators/active_admin/install/templates/admin_user.rb.erb +1 -1
- data/spec/bug_report_templates_spec.rb +2 -3
- data/spec/rails_helper.rb +0 -3
- data/spec/spec_helper.rb +1 -12
- data/spec/support/active_admin_integration_spec_helper.rb +1 -1
- data/spec/support/rails_template.rb +5 -37
- data/spec/support/rails_template_with_data.rb +262 -3
- data/spec/support/templates/policies/active_admin/comment_policy.rb +1 -1
- data/spec/support/templates/policies/active_admin/page_policy.rb +1 -1
- data/spec/support/templates/policies/application_policy.rb +1 -2
- data/spec/support/templates/post_decorator.rb +0 -1
- data/spec/unit/abstract_view_factory_spec.rb +0 -1
- data/spec/unit/application_spec.rb +4 -0
- data/spec/unit/asset_registration_spec.rb +29 -0
- data/spec/unit/belongs_to_spec.rb +1 -2
- data/spec/unit/config_shared_examples.rb +1 -1
- data/spec/unit/csv_builder_spec.rb +2 -4
- data/spec/unit/dependency_spec.rb +7 -7
- data/spec/unit/dsl_spec.rb +0 -2
- data/spec/unit/filters/active_filter_spec.rb +135 -0
- data/spec/unit/filters/active_spec.rb +11 -1
- data/spec/unit/filters/filter_form_builder_spec.rb +9 -7
- data/spec/unit/form_builder_spec.rb +14 -14
- data/spec/unit/helpers/scope_chain_spec.rb +0 -1
- data/spec/unit/i18n_spec.rb +17 -0
- data/spec/unit/menu_item_spec.rb +1 -3
- data/spec/unit/namespace/register_page_spec.rb +1 -1
- data/spec/unit/namespace_spec.rb +0 -1
- data/spec/unit/page_spec.rb +0 -3
- data/spec/unit/resource/action_items_spec.rb +5 -1
- data/spec/unit/resource/attributes_spec.rb +1 -2
- data/spec/unit/resource/ordering_spec.rb +0 -3
- data/spec/unit/resource/scopes_spec.rb +1 -1
- data/spec/unit/resource_controller/data_access_spec.rb +2 -2
- data/spec/unit/resource_controller_spec.rb +1 -2
- data/spec/unit/resource_spec.rb +9 -2
- data/spec/unit/routing_spec.rb +0 -2
- data/spec/unit/scope_spec.rb +3 -3
- data/spec/unit/settings_spec.rb +0 -1
- data/spec/unit/view_factory_spec.rb +1 -1
- data/spec/unit/view_helpers/flash_helper_spec.rb +0 -1
- data/spec/unit/view_helpers/form_helper_spec.rb +3 -4
- data/spec/unit/view_helpers/method_or_proc_helper_spec.rb +0 -1
- data/spec/unit/views/components/attributes_table_spec.rb +0 -1
- data/spec/unit/views/components/columns_spec.rb +0 -2
- data/spec/unit/views/components/site_title_spec.rb +0 -2
- data/spec/unit/views/components/status_tag_spec.rb +23 -7
- data/spec/unit/views/components/tabs_spec.rb +29 -1
- data/spec/unit/views/pages/index_spec.rb +1 -1
- data/tasks/docs.rake +37 -10
- data/tasks/lint.rake +14 -1
- data/tasks/local.rake +2 -2
- data/tasks/test.rake +8 -25
- data/vendor/assets/javascripts/jquery-ui/data.js +41 -0
- data/vendor/assets/javascripts/jquery-ui/disable-selection.js +48 -0
- data/vendor/assets/javascripts/jquery-ui/escape-selector.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/focusable.js +86 -0
- data/vendor/assets/javascripts/jquery-ui/ie.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/keycode.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/plugin.js +46 -0
- data/vendor/assets/javascripts/jquery-ui/position.js +500 -0
- data/vendor/assets/javascripts/jquery-ui/safe-active-element.js +42 -0
- data/vendor/assets/javascripts/jquery-ui/safe-blur.js +23 -0
- data/vendor/assets/javascripts/jquery-ui/scroll-parent.js +47 -0
- data/vendor/assets/javascripts/jquery-ui/tabbable.js +38 -0
- data/vendor/assets/javascripts/jquery-ui/unique-id.js +51 -0
- data/vendor/assets/javascripts/jquery-ui/version.js +17 -0
- data/vendor/assets/javascripts/jquery-ui/widget.js +735 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/button.js +391 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/checkboxradio.js +300 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/controlgroup.js +300 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/datepicker.js +2123 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/dialog.js +954 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/draggable.js +1259 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/mouse.js +230 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/resizable.js +1207 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/sortable.js +1561 -0
- data/vendor/assets/javascripts/jquery-ui/widgets/tabs.js +931 -0
- data/vendor/assets/stylesheets/active_admin/_normalize.scss +447 -0
- metadata +62 -51
- data/.hound.yml +0 -14
- data/Appraisals +0 -41
- data/app/assets/images/active_admin/datepicker/datepicker-input-icon.png +0 -0
- data/app/assets/javascripts/active_admin/jquery_ui.js.erb +0 -18
- data/app/assets/stylesheets/active_admin/mixins/_reset.scss +0 -165
- data/lib/active_admin/filters/humanized.rb +0 -68
- data/spec/requests/javascript_spec.rb +0 -22
- data/spec/support/jslint.yml +0 -80
- data/spec/unit/filters/humanized_spec.rb +0 -64
- data/tasks/yard.rake +0 -9
@@ -100,6 +100,10 @@ RSpec.describe ActiveAdmin::Application do
|
|
100
100
|
expect(application.order_clause).to eq ActiveAdmin::OrderClause
|
101
101
|
end
|
102
102
|
|
103
|
+
it "should have default show_count for scopes" do
|
104
|
+
expect(application.scopes_show_count).to eq true
|
105
|
+
end
|
106
|
+
|
103
107
|
describe "authentication settings" do
|
104
108
|
|
105
109
|
it "should have no default current_user_method" do
|
@@ -8,13 +8,37 @@ RSpec.describe ActiveAdmin::AssetRegistration do
|
|
8
8
|
clear_javascripts!
|
9
9
|
end
|
10
10
|
|
11
|
+
it "is deprecated" do
|
12
|
+
expect(ActiveAdmin::Deprecation)
|
13
|
+
.to receive(:warn)
|
14
|
+
.with(<<-MSG.strip_heredoc
|
15
|
+
The `register_stylesheet` config is deprecated and will be removed
|
16
|
+
in v2. Import your "sample_styles.css" stylesheet in the active_admin.scss.
|
17
|
+
MSG
|
18
|
+
)
|
19
|
+
|
20
|
+
register_stylesheet "sample_styles.css"
|
21
|
+
|
22
|
+
expect(ActiveAdmin::Deprecation)
|
23
|
+
.to receive(:warn)
|
24
|
+
.with(<<-MSG.strip_heredoc
|
25
|
+
The `register_javascript` config is deprecated and will be removed
|
26
|
+
in v2. Import your "sample_scripts.js" javascript in the active_admin.js.
|
27
|
+
MSG
|
28
|
+
)
|
29
|
+
|
30
|
+
register_javascript "sample_scripts.js"
|
31
|
+
end
|
32
|
+
|
11
33
|
it "should register a stylesheet file" do
|
34
|
+
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
12
35
|
register_stylesheet "active_admin.css"
|
13
36
|
expect(stylesheets.length).to eq 1
|
14
37
|
expect(stylesheets.keys.first).to eq "active_admin.css"
|
15
38
|
end
|
16
39
|
|
17
40
|
it "should clear all existing stylesheets" do
|
41
|
+
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
18
42
|
register_stylesheet "active_admin.css"
|
19
43
|
expect(stylesheets.length).to eq 1
|
20
44
|
clear_stylesheets!
|
@@ -22,22 +46,26 @@ RSpec.describe ActiveAdmin::AssetRegistration do
|
|
22
46
|
end
|
23
47
|
|
24
48
|
it "should allow media option when registering stylesheet" do
|
49
|
+
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
25
50
|
register_stylesheet "active_admin.css", media: :print
|
26
51
|
expect(stylesheets.values.first[:media]).to eq :print
|
27
52
|
end
|
28
53
|
|
29
54
|
it "shouldn't register a stylesheet twice" do
|
55
|
+
expect(ActiveAdmin::Deprecation).to receive(:warn).twice
|
30
56
|
register_stylesheet "active_admin.css"
|
31
57
|
register_stylesheet "active_admin.css"
|
32
58
|
expect(stylesheets.length).to eq 1
|
33
59
|
end
|
34
60
|
|
35
61
|
it "should register a javascript file" do
|
62
|
+
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
36
63
|
register_javascript "active_admin.js"
|
37
64
|
expect(javascripts).to eq ["active_admin.js"].to_set
|
38
65
|
end
|
39
66
|
|
40
67
|
it "should clear all existing javascripts" do
|
68
|
+
expect(ActiveAdmin::Deprecation).to receive(:warn).once
|
41
69
|
register_javascript "active_admin.js"
|
42
70
|
expect(javascripts).to eq ["active_admin.js"].to_set
|
43
71
|
clear_javascripts!
|
@@ -45,6 +73,7 @@ RSpec.describe ActiveAdmin::AssetRegistration do
|
|
45
73
|
end
|
46
74
|
|
47
75
|
it "shouldn't register a javascript twice" do
|
76
|
+
expect(ActiveAdmin::Deprecation).to receive(:warn).twice
|
48
77
|
register_javascript "active_admin.js"
|
49
78
|
register_javascript "active_admin.js"
|
50
79
|
expect(javascripts.length).to eq 1
|
@@ -13,7 +13,6 @@ RSpec.describe ActiveAdmin::Resource::BelongsTo do
|
|
13
13
|
let(:post_config){ ActiveAdmin.register Post do belongs_to :user end }
|
14
14
|
let(:belongs_to){ post_config.belongs_to_config }
|
15
15
|
|
16
|
-
|
17
16
|
it "should have an owner" do
|
18
17
|
expect(belongs_to.owner).to eq post_config
|
19
18
|
end
|
@@ -57,7 +56,7 @@ RSpec.describe ActiveAdmin::Resource::BelongsTo do
|
|
57
56
|
|
58
57
|
describe "controller" do
|
59
58
|
let(:controller) { post_config.controller.new }
|
60
|
-
let(:http_params) { {user_id: user.id}
|
59
|
+
let(:http_params) { {user_id: user.id} }
|
61
60
|
let(:user) { User.create! }
|
62
61
|
|
63
62
|
before do
|
@@ -34,7 +34,7 @@ RSpec.shared_examples_for "ActiveAdmin::Resource" do
|
|
34
34
|
describe "#menu_item_options" do
|
35
35
|
|
36
36
|
it "initializes a new menu item with defaults" do
|
37
|
-
|
37
|
+
expect(config.menu_item_options[:label].call).to eq(config.plural_resource_label)
|
38
38
|
end
|
39
39
|
|
40
40
|
it "initialize a new menu item with custom options" do
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# Encoding: UTF-8
|
2
|
-
|
3
1
|
require 'rails_helper'
|
4
2
|
|
5
3
|
RSpec.describe ActiveAdmin::CSVBuilder do
|
@@ -192,8 +190,8 @@ RSpec.describe ActiveAdmin::CSVBuilder do
|
|
192
190
|
|
193
191
|
context "build csv using the supplied order" do
|
194
192
|
before do
|
195
|
-
@post1 = Post.create!(title: "Hello1", published_date: Date.today - 2.day
|
196
|
-
@post2 = Post.create!(title: "Hello2", published_date: Date.today - 1.day
|
193
|
+
@post1 = Post.create!(title: "Hello1", published_date: Date.today - 2.day)
|
194
|
+
@post2 = Post.create!(title: "Hello2", published_date: Date.today - 1.day)
|
197
195
|
end
|
198
196
|
let(:dummy_controller) {
|
199
197
|
class DummyController
|
@@ -23,7 +23,7 @@ RSpec.describe ActiveAdmin::Dependency do
|
|
23
23
|
end
|
24
24
|
it '=' do
|
25
25
|
expect(k.foo? '= 1.2.3').to eq true
|
26
|
-
expect(k.foo? '= 1'
|
26
|
+
expect(k.foo? '= 1').to eq false
|
27
27
|
end
|
28
28
|
it '>' do
|
29
29
|
expect(k.foo? '> 1').to eq true
|
@@ -45,7 +45,7 @@ RSpec.describe ActiveAdmin::Dependency do
|
|
45
45
|
end
|
46
46
|
it '~>' do
|
47
47
|
expect(k.foo? '~> 1.2.0').to eq true
|
48
|
-
expect(k.foo? '~> 1.1'
|
48
|
+
expect(k.foo? '~> 1.1').to eq true
|
49
49
|
expect(k.foo? '~> 1.2.4').to eq false
|
50
50
|
end
|
51
51
|
end
|
@@ -81,13 +81,13 @@ RSpec.describe ActiveAdmin::Dependency do
|
|
81
81
|
# Note: more extensive tests for match? and match! are above.
|
82
82
|
|
83
83
|
it 'match?' do
|
84
|
-
expect(k['a-b'].match?
|
84
|
+
expect(k['a-b'].match?).to eq true
|
85
85
|
expect(k['a-b'].match? '1.2.3').to eq true
|
86
|
-
expect(k['b-c'].match?
|
86
|
+
expect(k['b-c'].match?).to eq false
|
87
87
|
end
|
88
88
|
|
89
89
|
it 'match!' do
|
90
|
-
expect(k['a-b'].match!
|
90
|
+
expect(k['a-b'].match!).to eq nil
|
91
91
|
expect(k['a-b'].match! '1.2.3').to eq nil
|
92
92
|
|
93
93
|
expect{ k['a-b'].match! '2.5' }.to raise_error ActiveAdmin::DependencyError,
|
@@ -103,8 +103,8 @@ RSpec.describe ActiveAdmin::Dependency do
|
|
103
103
|
|
104
104
|
it '==' do
|
105
105
|
expect(k['a-b'] == '1.2.3').to eq true
|
106
|
-
expect(k['a-b'] == '1.2'
|
107
|
-
expect(k['a-b'] == 1
|
106
|
+
expect(k['a-b'] == '1.2').to eq false
|
107
|
+
expect(k['a-b'] == 1).to eq false
|
108
108
|
end
|
109
109
|
it '>' do
|
110
110
|
expect(k['a-b'] > 1).to eq true
|
data/spec/unit/dsl_spec.rb
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
|
-
|
4
3
|
module MockModuleToInclude
|
5
4
|
def self.included(dsl)
|
6
5
|
end
|
@@ -24,7 +23,6 @@ RSpec.describe ActiveAdmin::DSL do
|
|
24
23
|
|
25
24
|
end
|
26
25
|
|
27
|
-
|
28
26
|
describe '#action_item' do
|
29
27
|
before do
|
30
28
|
@default_items_count = resource_config.action_items.size
|
@@ -0,0 +1,135 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
RSpec.describe ActiveAdmin::Filters::ActiveFilter do
|
4
|
+
|
5
|
+
let(:namespace) do
|
6
|
+
ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin)
|
7
|
+
end
|
8
|
+
|
9
|
+
let(:resource) do
|
10
|
+
namespace.register(Post)
|
11
|
+
end
|
12
|
+
|
13
|
+
let(:user){ User.create! first_name: "John", last_name: "Doe" }
|
14
|
+
let(:category){ Category.create! name: "Category" }
|
15
|
+
let(:post){ Post.create! title: "Hello World", category: category, author: user }
|
16
|
+
|
17
|
+
let(:search) do
|
18
|
+
Post.ransack(title_equals: post.title)
|
19
|
+
end
|
20
|
+
|
21
|
+
let(:condition) do
|
22
|
+
search.conditions[0]
|
23
|
+
end
|
24
|
+
|
25
|
+
subject do
|
26
|
+
ActiveAdmin::Filters::ActiveFilter.new(resource, condition)
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'should have valid values' do
|
30
|
+
expect(subject.values).to eq([post.title])
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'should have valid label' do
|
34
|
+
expect(subject.label).to eq("Title equals")
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'should pick predicate name translation' do
|
38
|
+
expect(subject.predicate_name).to eq(I18n.t("active_admin.filters.predicates.equals"))
|
39
|
+
end
|
40
|
+
|
41
|
+
context 'search by belongs_to association' do
|
42
|
+
let(:search) do
|
43
|
+
Post.ransack(custom_category_id_eq: category.id)
|
44
|
+
end
|
45
|
+
|
46
|
+
it 'should have valid values' do
|
47
|
+
expect(subject.values[0]).to be_a(Category)
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'should have valid label' do
|
51
|
+
expect(subject.label).to eq("Category equals")
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should pick predicate name translation' do
|
55
|
+
expect(subject.predicate_name).to eq(Ransack::Translate.predicate('eq'))
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
|
60
|
+
context 'search by polymorphic association' do
|
61
|
+
let(:resource) do
|
62
|
+
namespace.register(ActiveAdmin::Comment)
|
63
|
+
end
|
64
|
+
|
65
|
+
let(:search) do
|
66
|
+
ActiveAdmin::Comment.ransack(resource_id_eq: post.id, resource_type_eq: post.class.to_s)
|
67
|
+
end
|
68
|
+
|
69
|
+
context 'id filter' do
|
70
|
+
let(:condition) do
|
71
|
+
search.conditions[0]
|
72
|
+
end
|
73
|
+
it 'should have valid values' do
|
74
|
+
expect(subject.values[0]).to eq(post.id)
|
75
|
+
end
|
76
|
+
|
77
|
+
it 'should have valid label' do
|
78
|
+
expect(subject.label).to eq("Resource equals")
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
context 'type filter' do
|
83
|
+
let(:condition) do
|
84
|
+
search.conditions[1]
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'should have valid values' do
|
88
|
+
expect(subject.values[0]).to eq(post.class.to_s)
|
89
|
+
end
|
90
|
+
|
91
|
+
it 'should have valid label' do
|
92
|
+
expect(subject.label).to eq("Resource type equals")
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
context 'search by has many association' do
|
98
|
+
let(:resource) do
|
99
|
+
namespace.register(Category)
|
100
|
+
end
|
101
|
+
|
102
|
+
let(:search) do
|
103
|
+
Category.ransack(posts_id_eq: post.id)
|
104
|
+
end
|
105
|
+
|
106
|
+
it 'should have valid values' do
|
107
|
+
expect(subject.values[0]).to be_a(Post)
|
108
|
+
end
|
109
|
+
|
110
|
+
it 'should have valid label' do
|
111
|
+
expect(subject.label).to eq("Post equals")
|
112
|
+
end
|
113
|
+
|
114
|
+
context 'search by has many through association' do
|
115
|
+
let(:resource) do
|
116
|
+
namespace.register(User)
|
117
|
+
end
|
118
|
+
|
119
|
+
let(:search) do
|
120
|
+
User.ransack(posts_category_id_eq: category.id)
|
121
|
+
end
|
122
|
+
|
123
|
+
it 'should have valid values' do
|
124
|
+
expect(subject.values[0]).to be_a(Category)
|
125
|
+
end
|
126
|
+
|
127
|
+
it 'should have valid label' do
|
128
|
+
expect(subject.label).to eq("Category equals")
|
129
|
+
end
|
130
|
+
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
134
|
+
|
135
|
+
end
|
@@ -1,12 +1,22 @@
|
|
1
1
|
require 'rails_helper'
|
2
2
|
|
3
3
|
RSpec.describe ActiveAdmin::Filters::Active do
|
4
|
-
|
4
|
+
|
5
|
+
let(:resource) do
|
6
|
+
namespace = ActiveAdmin::Namespace.new(ActiveAdmin::Application.new, :admin)
|
7
|
+
namespace.register(Post)
|
8
|
+
end
|
9
|
+
|
10
|
+
subject { described_class.new(resource, search) }
|
5
11
|
|
6
12
|
let(:params) do
|
7
13
|
::ActionController::Parameters.new(q: {author_id_eq: 1})
|
8
14
|
end
|
9
15
|
|
16
|
+
let(:search) do
|
17
|
+
Post.ransack(params[:q])
|
18
|
+
end
|
19
|
+
|
10
20
|
it 'should have filters' do
|
11
21
|
expect(subject.filters.size).to eq(1)
|
12
22
|
end
|
@@ -59,6 +59,14 @@ RSpec.describe ActiveAdmin::Filters::ViewHelper do
|
|
59
59
|
expect(body).to have_selector("label", text: "Title from proc")
|
60
60
|
end
|
61
61
|
end
|
62
|
+
|
63
|
+
describe "input html as proc" do
|
64
|
+
let(:body) { Capybara.string(filter :title, as: :select, input_html: proc{ {'data-ajax-url': '/'} }) }
|
65
|
+
|
66
|
+
it "should render proper label" do
|
67
|
+
expect(body).to have_selector('select[data-ajax-url="/"]')
|
68
|
+
end
|
69
|
+
end
|
62
70
|
end
|
63
71
|
|
64
72
|
describe "string attribute" do
|
@@ -165,9 +173,6 @@ RSpec.describe ActiveAdmin::Filters::ViewHelper do
|
|
165
173
|
it "should generate a date greater than" do
|
166
174
|
expect(body).to have_selector("input.datepicker[name='q[published_date_gteq]']")
|
167
175
|
end
|
168
|
-
it "should generate a seperator" do
|
169
|
-
expect(body).to have_selector("span.seperator")
|
170
|
-
end
|
171
176
|
it "should generate a date less than" do
|
172
177
|
expect(body).to have_selector("input.datepicker[name='q[published_date_lteq]']")
|
173
178
|
end
|
@@ -179,9 +184,6 @@ RSpec.describe ActiveAdmin::Filters::ViewHelper do
|
|
179
184
|
it "should generate a date greater than" do
|
180
185
|
expect(body).to have_selector("input.datepicker[name='q[created_at_gteq_datetime]']")
|
181
186
|
end
|
182
|
-
it "should generate a seperator" do
|
183
|
-
expect(body).to have_selector("span.seperator")
|
184
|
-
end
|
185
187
|
it "should generate a date less than" do
|
186
188
|
expect(body).to have_selector("input.datepicker[name='q[created_at_lteq_datetime]']")
|
187
189
|
end
|
@@ -399,7 +401,7 @@ RSpec.describe ActiveAdmin::Filters::ViewHelper do
|
|
399
401
|
context "with #{verb.inspect} proc" do
|
400
402
|
it "#{should} be displayed if true" do
|
401
403
|
body = Capybara.string(filter :body, verb => proc{ true })
|
402
|
-
expect(body).send if_true,
|
404
|
+
expect(body).send if_true, have_selector("input[name='q[body_contains]']")
|
403
405
|
end
|
404
406
|
it "#{should} be displayed if false" do
|
405
407
|
body = Capybara.string(filter :body, verb => proc{ false })
|
@@ -101,9 +101,9 @@ RSpec.describe ActiveAdmin::FormBuilder do
|
|
101
101
|
end
|
102
102
|
end
|
103
103
|
|
104
|
-
|
105
|
-
|
106
|
-
|
104
|
+
it "should generate a text input" do
|
105
|
+
expect(body).to have_selector("input[type=text][name='post[title]']")
|
106
|
+
end
|
107
107
|
it "should generate a textarea" do
|
108
108
|
expect(body).to have_selector("textarea[name='post[body]']")
|
109
109
|
end
|
@@ -637,7 +637,7 @@ RSpec.describe ActiveAdmin::FormBuilder do
|
|
637
637
|
end
|
638
638
|
|
639
639
|
it "should wrap the destroy field in an li with class 'has_many_delete'" do
|
640
|
-
expect(body).to have_selector(".has_many_container > fieldset > ol > li.has_many_delete > input", count: 1)
|
640
|
+
expect(body).to have_selector(".has_many_container > fieldset > ol > li.has_many_delete > input", count: 1, visible: false)
|
641
641
|
end
|
642
642
|
end
|
643
643
|
|
@@ -647,7 +647,7 @@ RSpec.describe ActiveAdmin::FormBuilder do
|
|
647
647
|
end
|
648
648
|
|
649
649
|
it "should not have a boolean field for _destroy" do
|
650
|
-
expect(body).not_to have_selector("input[name='category[posts_attributes][#{child_num}][_destroy]']")
|
650
|
+
expect(body).not_to have_selector("input[name='category[posts_attributes][#{child_num}][_destroy]']", visible: :all)
|
651
651
|
end
|
652
652
|
|
653
653
|
it "should not have a check box with 'Remove' as its label" do
|
@@ -943,15 +943,15 @@ RSpec.describe ActiveAdmin::FormBuilder do
|
|
943
943
|
"[:title].each{ |r| f.input r }" => "post_title",
|
944
944
|
"[:title].map { |r| f.input r }" => "post_title",
|
945
945
|
}.each do |source, selector|
|
946
|
-
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
|
952
|
-
|
953
|
-
|
954
|
-
|
946
|
+
it "should properly buffer `#{source}`" do
|
947
|
+
body = build_form do |f|
|
948
|
+
f.inputs do
|
949
|
+
eval source
|
950
|
+
eval source
|
951
|
+
end
|
952
|
+
end
|
953
|
+
expect(body).to have_selector("[id=#{selector}]", count: 2, visible: :all)
|
954
|
+
end
|
955
955
|
end
|
956
956
|
|
957
957
|
describe "datepicker input" do
|